سؤال

لدي هيكل مثل هذا:

/home
/home/dir1
/home/dir2

الآن عندما يذهب شخص ما إلى / إلى المنزل، يطلب من اسم المستخدم وكلمة المرور (في نموذج) ووضع معلومات الجلسة في PHP لملفات / المنزل المتبقية. الآن / الصفحة الرئيسية / DIR1 و / HOME / DIR2 محمي بواسطة HTPassWD ولكن نفس اسم المستخدم وكلمة المرور. لا أريد أن أعيد المستخدم إعادة إدخال اسم المستخدم وكلمة المرور مرة أخرى عندما يذهبون إلى / home / dir1 ... أيضا عندما أقوم بالتسجيل من / إلى المنزل، أريد تسجيل الخروج من / home / dir1 أيضا. هل يمكن أن يرجى تقديم المشورة حول كيفية تحقيق هذا؟

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

المحلول

يجب أن يكون هذا السلوك الافتراضي.

وهذا هو، إذا كنت تستخدم ملفات Apache و. HTACCESS لإعداد مصادقة HTTP، فستقوم أيضا بأي قواعد تقوم بها على الدليل، وسوف تنطبق أيضا على أدلة الأطفال، وسيتم التعامل معها بواسطة المتصفح كجميع تسجيل دخول واحد.

إذا كنت تريد أن تتصرف بشكل مختلف، أي إذا كنت تريد أن تعامل بعض أقسام الموقع على أنها تتطلب تسجيل دخول منفصل تماما، فستحدد "عالم" لكل قسم باستخدام توجيه AuthName في .htaccess. مزيد من المعلومات هنا. وبعد ومع ذلك، إذا لم تفعل ذلك، فسيتم التعامل معها دائما ككل جزء من نفس تسجيل الدخول.

الشيء الذي يتعلق بمصادقة HTTP هو أنه لا توجد وسيلة "تسجيل الخروج"، على الأقل ليس فقط ما لم ينص المتصفح هذه الميزة. الطريقة الوحيدة سيسمح لك معظم المتصفحات بتسجيل الدخول إليك هي إنهاء جلسة المتصفح (أي إغلاق المتصفح). ونعم، بمجرد القيام بذلك، سيتم تسجيل الدخول / الصفحة الرئيسية، / الصفحة الرئيسية / DIR1، / HOME / DIR2 وكل الدلائل على جميع المواقع / العوالم.

نصائح أخرى

في أباتشي طالما كلا المجلدين لديهم نفس الشيء authname. وهي في نفس الموقع، يجب عليهم مشاركة كلمة مرور.

قد يكون لدى كلا الدلأين ملف .htaccess مثل ذلك:

AuthName "My Protect Folder"
AuthType basic
AuthUserFile /somewhere/htusers
require valid-user
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top