صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 16

الموضوع: مشكلة وسؤال في الجلسات ،،،

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    174

    مشكلة وسؤال في الجلسات ،،،



    السلام عليكم

    أخواني لدي استفسار في الجلسات ..

    ألاحظ في بعض المواقع كـ php-ar ونسخ vb2

    أثناء تصفح الموقع في شريط المتصفح عنوان طويل وهو الـ $PHPSESSID
    آي دي الجلسة

    ما الفائدة من وضعه في المتصفح ؟
    وهل يمكن إستبداله بالكوكيز مع الجلسات ؟؟

    ---------------------

    مشكلتي :eek3:

    لدي ملف admin.php

    لعمل لوحة التحكم تعتمد على الكوكيز مع الجلسات
    المشكلة إن أي كود تحت الجلسة ما ينفذه !!

    هذا محتوى الملف

    كود PHP:
    session_start();

    print 
    "<div align=\"center\"><b>لم تقم بتسجيل الدخول</b></div>";
    echo 
    '
    <form action="admin.php?admin=log" method="post">
    <div align="center">
    <b>اسم المشرف العام
    <br>
    <input type="text" name = "admin" >
    <br>
    كلمة مرور المشرف العا
    <br>
    <input type="password" name = "pass">
    <br><br>
    <input type="submit" value = "دخول"></div>
    </form>
    '
    ;

    if (
    $admin == "log")
    {
    session_register("admin");
    echo 
    "تم تسجيل الدخول";

    الآن الكود اللي في
    if ($admin == "log")

    لا يتم تنفيذه أي لا يتم تخزين الاسم في كوكيز الجلسة ولا تظهر تم تسجيل الدخول بنجاح
    وإنما تظهر صفحة ناصعة البيضاء

    أيضاً إذا استخدمت الدالة session_is_registered
    أي كود يقع تحت الدالة لا يتم تنفيذه ..

    يا ليت تشوفوا لي حل للمشكلة .. والاجابة على السؤال ..شكرا







  2. #2
    عضو فعال
    تاريخ التسجيل
    Jun 2002
    المشاركات
    1,346


    جرب هذا الكود

    كود PHP:
    session_start();
    if(!isset(
    $admin) or !isset($pass)){ 

    print 
    "<div align=\"center\"><b>لم تقم بتسجيل الدخول</b></div>"
    echo 

    <form action="admin.php" method="post"> 
    <div align="center"> 
    <b>اسم المشرف العام 
    <br> 
    <input type="text" name = "admin" > 
    <br> 
    كلمة مرور المشرف العا 
    <br> 
    <input type="password" name = "pass"> 
    <br><br> 
    <input type="submit" value = "دخول"></div> 
    </form> 
    '

    }else{
    echo 
    "تم تسجيل الدخول يا $admin"
    }

    if (
    $admin == "admin" && $pass == "pas123s")  // هنا كلمة المرور واسم المستخدم

    session_register("pass"); 
    session_register("admin"); 
    echo 
    "تم تسجيل الدخول يا $admin"








  3. #3
    عضو نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    174


    يعطيك العافية يا PHP-Master02

    الكود الذي عرضته أنت صحيح ، لكني أضفت إلى الملف صفحة جديدة وهي admin.php?admin=1
    وجعلتها لحذف المواضيع
    بداية هذه الصفحة شرط إذا لم يجد الجلسة في جهاز العضو ينقله إلى admin.php وهي صفحة الدخول )

    هذه الصفحة لتسجيل الدخول وتنقله إلى admin.php?admin=login لحفظ متغير الجلسة session_register
    ولكن صفحة الدخول لا يظهر منها شئ أبداًَ لا يتم التدخول ولا يظهر تم تسجيل الدخول تظهر صفحة بيضاء
    ولم يسجل الجلسة لاني دخلت بالمتصفح على العنوان admin.php?admin=1 ونقنلي إلى صفحة الدخول
    وقمت بتجربة الكود نفسه بدلاً من الجلسات وضعت الكوكيز setcookie
    واشتغل الكود تمام التمام ولكن ما مشكلته مع الجلسات ؟

    هذا محتوى الملف الأخير بعد الاضافة وكل شئ شكراً لك

    كود PHP:
    session_start();

    if (
    $admin =="")
    {

    print 
    "<div align=\"center\"><b>لم تقم بتسجيل الدخول</b></div>";
    echo 
    '
    <form action="admin.php?admin=login" method="post">
    <div align="center">
    <b>اسم المشرف العام
    <br>
    <input type="text" name = "admin" >
    <br>
    كلمة مرور المشرف العام
    <br>
    <input type="password" name = "pass">
    <br><br>
    <input type="submit" value = "دخول"></div>
    </form>
    '
    ;
    exit;
    }

    if (
    $admin == "login")
    {
    // لايظهر شئ من هذه الصفحة أبداً
    session_register("admin");
    echo 
    "تم تسجيل الدخول";
    print
    "  <meta http-equiv = refresh content=1;url=admin.php?admin=1>";
    }

    if (
    $admin == "1")
    {

    if (! (
    $_SESSION['admin']))
    {
    print 
    "<meta http-equiv = refresh content=1;url=admin.php>";
    exit;
    }

    echo 
    "أهلاً وسهلاً بك يا ".$_SESSION['admin']."<br>حذف كل المواضيع ؟؟؟<br>
    <a href='123.php?admin=out'>تسجيل خروج "
    .$_SESSION['admin']."</a>";
    exit;
    }

    if (
    $admin == "out")
    {
    session_unset("admin");
    echo 
    "تم تسجيل الخروج";
    print
    "  <meta http-equiv = refresh content=1;url=admin.php>";
    exit;








  4. #4
    عضو فعال
    تاريخ التسجيل
    Jun 2002
    المشاركات
    1,346


    جرب هذا

    بالتوفيق
    كود PHP:
    session_start(); 
    if (!isset(
    $admin) or $admin =="") { 
    print 
    "<div align=\"center\"><b>لم تقم بتسجيل الدخول</b></div>"
    echo 

    <form action=\"admin.php?admin=login\" method=\"post\"> 
    <div align=\"center\"> 
    <b>اسم المشرف العام 
    <br> 
    <input type=\"text\" name=\"admin"> 
    <br> 
    كلمة مرور المشرف العام 
    <br> 
    <input type=\"password\" name=\"pass\"> 
    <br><br> 
    <input type=\"submit"\ value=\"دخول\"></div> 
    </form>'

    exit; 
    }elseif (
    $admin == "login"){ 
    session_register("admin"); 
    echo 
    "تم تسجيل الدخول"
    print
    "  <meta http-equiv = refresh content=1;url=admin.php?admin=1>";
    }elseif(
    $admin == "out") { 
    session_unset("admin"); 
    echo 
    "تم تسجيل الخروج"
    print
    "  <meta http-equiv = refresh content=1;url=admin.php>"
    exit;  
    }else{ 

      if (! (
    $_SESSION['admin'])) { 
       print 
    "<meta http-equiv = refresh content=1;url=admin.php>"
       exit; 
      } 

    echo 
    "أهلاً وسهلاً بك يا ".$_SESSION['admin']."<br>حذف كل المواضيع ؟؟؟<br> 
    <a href='123.php?admin=out'>تسجيل خروج "
    .$_SESSION['admin']."</a>"
    exit;  








  5. #5
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2003
    المشاركات
    669


    وعليكم السلام ورحمة الله وبركاته

    كود الحاير الولهان صحيح 100% ..
    أيضاً كود PHP-Master02 صحيح ..

    لكن كود PHP-Master02 منظم ومرتب يعني أفضل

    لكن أين المشكلة ؟

    المشكلة يا عزيزي الحاير الولهان لو أنك قرأت الملف 10 مرات أو 20 مرة عرفت الخطأ أين ..

    لما لا تستعمل بقية دوالات الجلسة مثل session_encode() ؟
    ما فائدة دالة session_encode() ؟
    هذه الدالة تقوم بعرض جميع الكوكيز المخزن لديك ( كوكيز الجلسات فقط )

    لو مثلاً سجلت الدخول باسم الحاير الولهان ..
    استخدمت الدالة session_encode() .. ستجد أنه يطبع لك اسم مسجل الدخول login !!!
    أنت أدخلت الحاير الولهان والدالة طبعة لك login .. أين المشكلة ؟

    اقرا الملف ورح تعرف المشكلة .. في السطر هذا الموجود في فورم تسجيل الدخول

    <input type="text" name = "admin" >
    لاحظ الاسم الخاص بتسجيل الدخول admin !!

    هذا كود صفحة تسجيل المتغير في الجلسة

    كود PHP:
    if ($admin == "login"

    // لايظهر شئ من هذه الصفحة أبداً 
    session_register("admin"); 
    echo 
    "تم تسجيل الدخول"
    print
    "  <meta http-equiv = refresh content=1;url=admin.php?admin=1>"

    هنا المشكلة !! ..
    الآن سيسجل الجلسة بالدالة هذه
    session_register("admin");
    كل شئ تمام .. خذ المثال التالي

    كود PHP:
    $a=10;
    $a=15;
    $a=3.9;
    $a=3;

    // الأن ما ذا سيطبع ؟
    echo $a
    بالتأكيد سيطبع 3 لانه آخر متغير ..

    تماماً في الكود الخاص بك .. لو تلاحظ أعلى دالة session_register هذا الشرط
    if ($admin == "login" )
    هنا أسندنا للمتغير $admin القيمة login .. وطبيعي إن الدالة session_register ستحفظ قيمة آخر متغير أي يتحفظ القيمة login
    لان القيمة الأولى في الفروم هي $admin ، والقيمة الاخيرة هي login ..

    أتمنى أن تكون المعلومة قد وصلتك .. حل مشكلتك في الفروم الكود هذا
    <input type="text" name = "admin" >
    استبدل اسم admin بأي اسم آخر وليكن sari هكذا
    <input type="text" name = "sari" >
    الآن صفحة تسجيل المتغير في الجلسة تكون الدالة كهذه
    session_register("sari");
    الآن شغل الصفحة وسجّل الدخول ستجد كل شئ تمام والحمد لله ..

    آسف على الإطالة ولكن تعتمدت أن أشرح بشكل مفصّل لتصلك ولتصل لغيرك المعلومة

    تقبلوا تحياتي واحترامي ،،،،





    __________________
    الإستضافات :

    http://www.ala7lam.net/host.html

    موضوع الإستضافات وخدماتنا :

    إستضافات وخدمات شبكة الأحلام التطويرية ...

  6. #6
    عضو فعال
    تاريخ التسجيل
    Jun 2002
    المشاركات
    1,346



    لا تعليق






  7. #7
    عضو نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    244


    والله اني مثله انا اواجه نفس المشكله ..
    تدرون ليه ...
    بقولكم انا استخدم ملف واحد لمجلد الآدمن ..
    يعني تحرير وتعديل وحذف ملف واحد بإستخدام
    switch

    يعني التحرير مخليه
    case edit:

    وملف الحذف مخليه
    case delete:

    السؤال ..
    هل في كل case احط session_start()

    ثم ياليت تدعمونا بمثال session_encode()

    جزاكم الله كل خير





    __________________
    °ˆ~*¤®§(*§ الله يرحمك يا ترٍكي اخوٍوٍي§*)§®¤*~ˆ°

  8. #8
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2003
    المشاركات
    669


    السلام عليكم

    هلابك شفاف

    تعدد الصفحات بـ switch صحيح وما فيه اي مشكلة

    وبالنسبة لـ session_start() ضعها أول الصفحة فقط تحت وسم الphp
    <?php

    أما دالة session_encode .. جرب عندك ضع الكود التالي

    كود PHP:
    echo session_encode(); 
    وشوف وش يطلع لك ..

    رح يطلع لك جميع قيم كوكيز الجلسات الموجود بجهازك .. (( هذا فقط إن استخدمت الجلسات ))

    تحياتي ،،،





    __________________
    الإستضافات :

    http://www.ala7lam.net/host.html

    موضوع الإستضافات وخدماتنا :

    إستضافات وخدمات شبكة الأحلام التطويرية ...

  9. #9
    عضو نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    244


    طيب اخوي ساري فيه مشكله

    الحين الصفحه الرئيسيه للأدمن بتكون
    mysaite.com/none/admin.php

    هنا بيطلب الباسوورد

    لكن لمن اكتب
    mysite.com/none/admin.php?action=edit
    بيفتحها عادي حتى لو ماسجلت .. هنا المشكله

    وحتى بعد كل الصفحات اللي admin.php هنا عد مشكله .
    يعني بدل مايدخل بباسوورد بيكتب
    mysite.com/none/admin.php?action=delete

    وبيطلع له صفحة الحذف ..

    هنا مشكله .. وش الحل ؟؟

    جزاك الله خير





    __________________
    °ˆ~*¤®§(*§ الله يرحمك يا ترٍكي اخوٍوٍي§*)§®¤*~ˆ°

  10. #10
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2003
    المشاركات
    669


    ضع بداية action=edit الكود التالي

    كود PHP:
    if (! $_SESSION['VarName'])
    {
    // هنا ضع كود فورم تسجيل الدخول 

    هذا الشرط يتحقق من وجود الجلسة بجهاز المستخدم ..

    لكن استبدل VarName باسم متغير الجلسة !!

    بالتوفيق ،،،





    __________________
    الإستضافات :

    http://www.ala7lam.net/host.html

    موضوع الإستضافات وخدماتنا :

    إستضافات وخدمات شبكة الأحلام التطويرية ...

  11. #11
    عضو نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    244


    يامال العافيه شف بجرب وأرجع لك ..
    لكن على فكره جربتها بالدوام هالطريقه وتلطع صفحه بيضاء لكن بجربها على جهازي هذا ..

    ماقصرت





    __________________
    °ˆ~*¤®§(*§ الله يرحمك يا ترٍكي اخوٍوٍي§*)§®¤*~ˆ°

  12. #12
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2003
    المشاركات
    669


    يا الغالي جرب هذا الكود .. نسيت أضع exit

    كود PHP:
    if (! $_SESSION['VarName']) 

    // هنا ضع كود فورم تسجيل الدخول 
    exit;







    __________________
    الإستضافات :

    http://www.ala7lam.net/host.html

    موضوع الإستضافات وخدماتنا :

    إستضافات وخدمات شبكة الأحلام التطويرية ...

  13. #13
    عضو نشيط
    تاريخ التسجيل
    Dec 2004
    المشاركات
    290


    الأخ ساري ..
    شكراً لكل الأعضاء ولكن جربت الطريقه الأخيره ويبدو انها غير نافعه .. لأني استخدم نفس فكرة الأخ شفاف ..

    هل من حل آخر ..
    الصفحه تطلع بيضاء ..






  14. #14
    عضو سوبر نشيط
    تاريخ التسجيل
    Nov 2003
    المشاركات
    669


    هلابك off

    قد يكون إصدار الاباتشي او الموقع الـ PHP لا يدعم الجلسات !!

    أو أن السيرفر لا يدعم خاصية Register globals !!

    ركز في الأخيرة .. لحفظ متغيرات في جلسة وكانت خاصية Register globals غير مفعلة خذ المثال التالي :-

    كود PHP:
    $_SESSION['abdullah']="عبدالله"
    الآن تم حفظ متغير اسمه $abdullah وهو جلسة .. لا تنسى عند التنقل من صفحة لاخرى تستخدم الـ $PHPSESSID
    إذا كان الكوكيز غير مدعوم لديك

    للاستزاده عن الجلسات عليك بدرس الجلسات في كتابة قرية البي اتش بي

    بالتوفيق ،،،





    __________________
    الإستضافات :

    http://www.ala7lam.net/host.html

    موضوع الإستضافات وخدماتنا :

    إستضافات وخدمات شبكة الأحلام التطويرية ...

  15. #15
    عضو نشيط
    تاريخ التسجيل
    Dec 2004
    المشاركات
    290


    هلا اخ ساري ..
    سؤال

    كيف يتم معرفة ان كانت خاصية Register globals غير مفعله ؟؟
    انا استخدمه على سيرفر شخصي على جهازي ..










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض