ما هو الاستخدام الصحيح لـ session.save_path الخاص بـ php.ini؟

StackOverflow https://stackoverflow.com/questions/180464

سؤال

أقوم بتشغيل PHP على Windows/IIS.

يبدو أن متغيرات الجلسة الخاصة بي لا يتم حفظها من صفحة إلى أخرى.

هذا الكود…

//echos out the session variables in a nice format for inspection
echo "<p><pre>";
print_r($_SESSION);
echo "</pre></p>";

...إخراج قيم فارغة، مثل هذا...

    Array  
    (  
        [s_firstvar] =>  
        [s_var2] =>  
        [s_third] =>  
        [s_numberfour] =>  
        [s_youget] =>  
        [s_thepoint] =>  
        [] =>  
    )

وجدت اقتراحات في أحد المنتديات..

لقد واجهت مشكلة مماثلة مؤخرًا (Win2000 ، IIS) ، واتضح أن PHP لم يكن لديه الوصول إلى أي دليل تم تخزين بيانات الجلسة.قد ترغب في النظر في هذا.

و

هل قمت بتعيين session.save_path؟

ما هو الاستخدام الصحيح لـ session.save_path الخاص بـ php.ini؟وهل هذه مشكلتي؟

هل كانت مفيدة؟

المحلول 2

وعذرا. وجدت أنني لم باستخدام بناء الجملة الصحيح عند تعيين القيم:

ولا يعمل:

$_SESSION['$s_firstvar'] = 3;

هل العمل:

$_SESSION['s_firstvar'] = 3;

نصائح أخرى

هل يمكنك نشر المزيد من رمز الجلسة الخاصة بك؟بعض الأساسيات:

  • هل بدأت جلستك؟(session_start() )
  • هل قمت بالتحقق مما إذا كان مسار الحفظ الخاص بك لديه الأذونات المناسبة (غير مذكورة في OP)
  • session.save_path هو في الحقيقة مجرد دليل سيتم حفظ الجلسات فيه.إذا كنت تستخدم خدمة مشتركة، فقد يكون من الأفضل تعيينها إلى دليل مختلف عن الدليل المؤقت الافتراضي (حيث ستتداخل جلساتك مع جلسات التطبيق الأخرى أيضًا، وقد تؤدي إلى فرصة أكبر لتضارب الجلسة)
  • إذا كنت تقوم بتغيير تكوينات الجلسة (مثل save_path, ، يجب ضبطها قبل الاتصال session_start().
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top