मैं इसे सेट अप करना चाहता हूं, जहां कोई अनुरोध "लॉगआउट" में भेजता है, तो यह स्वचालित रूप से उन्हें "सफल लॉग आउट" कहकर एक पृष्ठ पर ले जाएगा। यदि ग्राहक बैक बटन दबाकर या प्रतिबंधित क्षेत्र में जाने का प्रयास करता है, तो वह फिर से HTTP ऑथ मांगेगा।PHP: HTTP बेसिक - लॉग ऑफ
example.com/restricted/index.php:
<?php
session_start();
if(isset($_GET['logout']))
{
unset($_SESSION["login"]);
header("location: ../logout.php");
exit;
}
if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) || !isset($_SESSION["login"]))
{
header("HTTP/1.0 401 Unauthorized");
header("WWW-authenticate: Basic realm=\"Tets\"");
header("Content-type: text/html");
$_SESSION["login"] = true;
// Print HTML that a password is required
exit;
}
?>
// The rest of the page is then displayed like normal
उपयोगकर्ता सफल दौरा example.com/logout.php अगर उदाहरण
यह क्या मैं अब तक है। com/प्रतिबंधित/index.php? लॉगआउट एक्सेस किया गया है। जब उपयोगकर्ता वापस जाने की कोशिश करता है हालांकि यादृच्छिक चीजें होती हैं, कभी-कभी यह दो बार HTTP प्रमाणीकरण के लिए पूछेगी (???), कभी-कभी यह लूप (?) में प्रमाणीकरण मांगना जारी रखेगी और कभी-कभी यह मुझे वापस जाने देगी मैंने कभी लॉग आउट नहीं किया।
मैं सत्रों के काम के लिए नया हूं लेकिन मेरी समझ यह है: अगर/जब व्यक्ति मान्य है, तो यह सत्य के मूल्य के साथ लॉगिन नामक सत्र में एक चर को संग्रहीत करता है ... यदि यह हर किसी के साथ एक GET अनुरोध प्राप्त करता है लॉगआउट, फिर वह उस सत्र चर को हटा देगा और logout.php पर वापस जायेगा ... फिर जब मैं इंडेक्स पर वापस क्लिक करता हूं तो यह मुझे प्रमाणीकरण के बिना वापस आने देगा, जब सत्र [लॉगिन] माना जाता है ।
इस PHP कोड में कोई भी सुधार की सराहना की जाती है। मुझे पता है कि मुझे HTTP बेसिक का उपयोग नहीं करना चाहिए और एसक्यूएल को शामिल करना चाहिए, लेकिन मेह। यह एक अस्थायी समाधान है।
संपादित करें: यदि निर्देशों के साथ एक उदाहरण शामिल है तो मैं MySQL के साथ एक समाधान स्वीकार करूंगा। मेरे पास कोई MySQL या PHP डेटाबेस ज्ञान है (अभी तक)
सत्रों के बिना, आपकी सबसे अच्छी शर्त बुनियादी क्षेत्र स्ट्रिंग को बदलना है। – stillstanding
क्या यह केवल एक अस्थायी समाधान के लिए इतना प्रयास नहीं है? –
@ मुख्य समस्या को बरकरार रखना कब इसे भेजना है। किसी लॉग इन उपयोगकर्ता से कॉल को अलग करने और लॉग आउट से कॉल करने के लिए कैसे करें :) –