if (isset($_SESSION['last_ip']) === false) {
$_SESSION['last_ip'] = $_SERVER['REMOTE_ADDR'];
}
कोड से ऊपर का मतलब है अगर सत्र "last_ip" अभी तक नहीं बनाया गया है, यह बनाया जाएगा और उपयोगकर्ता की वर्तमान आईपी के भंडार मूल्यों।
if ($_SESSION['last_ip'] != $_SERVER['REMOTE_ADDR']){
session_unset();
session_destroy();
}
कोड से ऊपर इंगित करता है कि अगर "last_ip" के सत्र मूल्य अपने वर्तमान आईपी के बराबर नहीं है, यह सब सत्र चर (session_unset) मुक्त और एक सत्र (session_destroy) के लिए पंजीकृत सभी डेटा को नष्ट कर देगा।
चलिए वास्तविक परिदृश्य का वर्णन करते हैं।
उदा। मैं आपकी वेबसाइट तक पहुंचता हूं इसलिए पहले कोड का ब्लॉक मेरे वर्तमान आईपी स्टोर करता है। अब मेरा इंटरनेट डिस्कनेक्ट हो गया है और मैं अपने आईएसपी से पुनः कनेक्ट हूं जिसमें dhcp सक्षम है और पर नया आईपी देता है। तो यदि आपकी वेबसाइट पर फिर से जाएं, तो कोड का दूसरा ब्लॉक चेक करता है कि मेरे पास अलग-अलग आईपी है, इसलिए यह मुझे लॉग आउट करेगा।
कोड के दूसरे ब्लॉक को भी संपादित करें ताकि अगर सत्र "last_ip" अभी तक नहीं बनाया गया है, तो यह php नोटिस नहीं फेंक देगा।
if (isset($_SESSION['last_ip']) && $_SESSION['last_ip'] != $_SERVER['REMOTE_ADDR']){
session_unset();
session_destroy();
}
स्रोत
2016-01-27 06:28:55
अगर सत्र नष्ट कर दिया, उपयोगकर्ता नया आईपी से नया सत्र पाने के लिए अगर वे –
हाँ, होगा में लॉग इन करने में सक्षम हो जाएगा। – Halcyon
मैंने session_regenerate_id (सत्य) जोड़ दिया है; तो ये 2 कैसे मिलकर काम करते हैं? –