Our World عالمنا نشر 13 سبتمبر 2022 أرسل تقرير نشر 13 سبتمبر 2022 (معدل) كيف احافظ على جلسة المستخدمين مستمرة حتى يقوموا بتسجيل الخروج بأنفسهم؟ جربت هذه الدالة ولم تأتي بنتيجة session_set_cookie_params('3600*24*7'); session_start(); تم التعديل في 16 سبتمبر 2022 بواسطة عبد الحميد حمشو عنوان غير واضح 1 اقتباس
0 Adnane Kadri نشر 13 سبتمبر 2022 أرسل تقرير نشر 13 سبتمبر 2022 يمكنك الاكتفاء باستخدام session_start في كل صفحة من صفحات التطبيق على نحو: <?php session_start(); ?> <!DOCTYPE html> <html> <body> <?php print_r($_SESSION); ?> </body> </html> سيحافظ هذا على جلسة المستخدم خلال تصفحه الموقع. ثم استعمال session_unset و session_destroy لمحو الجلسة. <?php session_start(); session_unset(); session_destroy(); ?> هل تواجه مشكلة بذلك؟ 1 اقتباس
0 Our World عالمنا نشر 13 سبتمبر 2022 الكاتب أرسل تقرير نشر 13 سبتمبر 2022 أعلم هذا؛ ولكن الجلسة تنتهي تلقائيا باغلاق المتصفح حتى دون تسجيل خروج؛ أريدها مستمرة حتى لا يضطر المستخدم تسجيل دخول كل مرة 1 اقتباس
0 Kais Hasan نشر 13 سبتمبر 2022 أرسل تقرير نشر 13 سبتمبر 2022 يمكنك القيام بإنشاء cookie تساعد على القيام بذلك، عندما يقوم المستخدم بالدخول لأول مرة تقوم بإنشاءها و وضع مدة زمينة طويلة جداً. و كلما قام المستخدم بعمليات معينة تقوم بتجديد ال cookie، يمكن القيام بذلك بالشكل التالي: setcookie( "CookieName", "CookieValue", time() + (10 * 365 * 24 * 60 * 60) ); و في كل مرة تتحقق بأن ال cookie موجودة، في حال كانت موجودة تقوم بتسجيل الدخول بشكل تلقائي و تحديث المدة الزمنية مرة أخرى، أما في حال كانت غير موجودة تقوم بتوجيه المستخدم إلى صفحة تسجيل الدخول. يمكن القيام بذلك بالشكل التالي: if(isset($_COOKIE['CookieName'])){ $cookie = $_COOKIE['CookieName']; } else{ // No Cookie found - Redirect to Login } 1 اقتباس
0 Adnane Kadri نشر 13 سبتمبر 2022 أرسل تقرير نشر 13 سبتمبر 2022 بتاريخ 3 دقائق مضت قال Our World عالمنا: أعلم هذا؛ ولكن الجلسة تنتهي تلقائيا باغلاق المتصفح حتى دون تسجيل خروج؛ أريدها مستمرة حتى لا يضطر المستخدم تسجيل دخول كل مرة تقوم PHP بالحفاظ على الجلسة بشكل افتراضي حتى يقوم المستخدم بإغلاق المتصفح. يمكنك تجاوز القيمة التي تتحكم في هذا الافتراض عن طريق التعديل على ملف اعداد PHP او باستعمال الوظيفة ini_set: ini_set('session.cookie_lifetime', 60 * 60 * 24 * 365); session_start(); اقتباس
0 Our World عالمنا نشر 13 سبتمبر 2022 الكاتب أرسل تقرير نشر 13 سبتمبر 2022 ماذا بعد if(isset($_COOKIE['CookieName'])){ $cookie = $_COOKIE['CookieName']; } اقتباس
0 Kais Hasan نشر 13 سبتمبر 2022 أرسل تقرير نشر 13 سبتمبر 2022 بتاريخ 2 دقائق مضت قال Our World عالمنا: ماذا بعد if(isset($_COOKIE['CookieName'])){ $cookie = $_COOKIE['CookieName']; } هل تقصد ما الذي يجب تنفيذه في قسم ال else ؟ اقتباس
0 Our World عالمنا نشر 13 سبتمبر 2022 الكاتب أرسل تقرير نشر 13 سبتمبر 2022 بتاريخ الآن قال Kais Hasan: هل تقصد ما الذي يجب تنفيذه في قسم ال else ؟ لا ..أقصد ما أقوم بتنفيذه بعد الشرط بـ if ؛ بعد التأكد من وجود cookie 1 اقتباس
0 Kais Hasan نشر 13 سبتمبر 2022 أرسل تقرير نشر 13 سبتمبر 2022 بتاريخ 2 دقائق مضت قال Our World عالمنا: لا ..أقصد ما أقوم بتنفيذه بعد الشرط بـ if ؛ بعد التأكد من وجود cookie يجب أن تكون معلومات الجلسة موجودة لديك في هذه ال cookie و تقوم باستعمالها للقيام بتسجيل الدخول بشكل تلقائي للمستخدم. هذا يعتمد على طريقة تسجيل الدخول التي تقوم بها، و لكن يفترض أنه يجب عليك تخزين token معينة تدل على جلسة المستخدم. اقتباس
0 Our World عالمنا نشر 13 سبتمبر 2022 الكاتب أرسل تقرير نشر 13 سبتمبر 2022 أخزن في الجلسة رقم user_id من قاعدة البيانات؛ أما ال cookie أخزن فيه البريد الالكتروني وكلمة السر للمساعدة على تذكرهما وقت الدخول.. تقصد يحب تخزن بيانلت الجلسة (user_id) فى ال cookie ؟ اقتباس
0 Kais Hasan نشر 13 سبتمبر 2022 أرسل تقرير نشر 13 سبتمبر 2022 بتاريخ 9 دقائق مضت قال Our World عالمنا: أخزن في الجلسة رقم user_id من قاعدة البيانات؛ أما ال cookie أخزن فيه البريد الالكتروني وكلمة السر للمساعدة على تذكرهما وقت الدخول.. تقصد يحب تخزن بيانلت الجلسة (user_id) فى ال cookie ؟ لا يجب تخزين كلمة السر في ال cookie أنها طريقة غير جيدة. يجب عليك تخزين ال sessionId بشكل عام، و لكن هناك حالات خاصة أخرى، لا أستطيع التحديد بدون معرفة كامل تفاصيل الموقع، و لكن يبدو أنك لم تقم بالتعديل على شيء فيفترض أن تخزين ال sessionId كاف. اقتباس
0 Our World عالمنا نشر 13 سبتمبر 2022 الكاتب أرسل تقرير نشر 13 سبتمبر 2022 بتاريخ 1 دقيقة مضت قال Kais Hasan: لا يجب تخزين كلمة السر في ال cookie أنها طريقة غير جيدة. يجب عليك تخزين ال sessionId بشكل عام، و لكن هناك حالات خاصة أخرى، لا أستطيع التحديد بدون معرفة كامل تفاصيل الموقع، و لكن يبدو أنك لم تقم بالتعديل على شيء فيفترض أن تخزين ال sessionId كاف. بعض المواقع تضع عبارة (تذكر كلمة السر) وتقوم بتخزين كلمة السر من خلالها.. هل هذه الطريقة غير امنه؟ 1 اقتباس
0 Kais Hasan نشر 13 سبتمبر 2022 أرسل تقرير نشر 13 سبتمبر 2022 بتاريخ 1 ساعة قال Our World عالمنا: بعض المواقع تضع عبارة (تذكر كلمة السر) وتقوم بتخزين كلمة السر من خلالها.. هل هذه الطريقة غير امنه؟ كلامك صحيح و بالطبع هذه الميزة مهمة حتى لا يضطر المستخدم إلى كتابة كلمة السر في كل مرة، و لكن لا يتم تخزين كلمة السر في ال cookie إنما يتم تخزين token مولد بشكل عشوائي هو عبارة عن مفتاح يمكن من خلاله الوصول إلى معلومات معينة في السيرفر و هذا طبعاً كله في السيرفر، أي أن المستخدم لن يتم تخزين كلمة السر لديه فقط على السيرفر و بطريقة مشفرة أيضاً لضمان الأمان. يمكنك الإطلاع على هذا الرابط لمزيد من المعلومات عن هذه الأمور. اقتباس
0 Our World عالمنا نشر 15 سبتمبر 2022 الكاتب أرسل تقرير نشر 15 سبتمبر 2022 بتاريخ On 9/13/2022 at 18:57 قال Kais Hasan: كلامك صحيح و بالطبع هذه الميزة مهمة حتى لا يضطر المستخدم إلى كتابة كلمة السر في كل مرة، و لكن لا يتم تخزين كلمة السر في ال cookie إنما يتم تخزين token مولد بشكل عشوائي هو عبارة عن مفتاح يمكن من خلاله الوصول إلى معلومات معينة في السيرفر و هذا طبعاً كله في السيرفر، أي أن المستخدم لن يتم تخزين كلمة السر لديه فقط على السيرفر و بطريقة مشفرة أيضاً لضمان الأمان. يمكنك الإطلاع على هذا الرابط لمزيد من المعلومات عن هذه الأمور. هل هذه طريقة صحيحة للابقاء على تسجيل الدخول بشكل مستمر //set cookies to continue sessions $_SESSION['user']=$fetched['username']; $_SESSION['userid']=$fetched['user_id']; setcookie('SESS_user',$_SESSION['user'],time()+ 60*60*24*365*15,'/','localhost',true,true); setcookie('SESS_userid',$_SESSION['userid'],time()+ 60*60*24*365*15,'/','localhost',true,true); اقتباس
السؤال
Our World عالمنا
كيف احافظ على جلسة المستخدمين مستمرة حتى يقوموا بتسجيل الخروج بأنفسهم؟ جربت هذه الدالة ولم تأتي بنتيجة
session_set_cookie_params('3600*24*7');
session_start();
عنوان غير واضح
13 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.