छानने, इस स्क्रिप्ट में मैं एक इनकमिंग $ _GET चर के मूल्य की जाँच करें और मान्य है कि यह एक पूर्णांक है, मैं तो करने के लिए एक $ _SESSION मूल्य के खिलाफ इस मूल्य को मान्य पुष्टि करें कि वे केवल अपने खाते तक पहुंच सकते हैं।
// validate $_GET field
if(isset($_GET['identity']) && filter_var($_GET['identity'], FILTER_VALIDATE_INT, array('min_range' => 1))) {
if(isset($_SESSION['user_identity']) && ((int)$_SESSION['user_identity'] === (int)$_GET['identity'])) { // if session exists and is === $_GET['identity']
// Proceed with code
यह उदाहरण के लिए ठीक काम करता है अगर मैं पारित करने के लिए कोशिश '0', '2-2', 'एबीसी' या $ _GET मूल्य के रूप में कोई मूल्य नहीं क्वेरी सही ढंग से विफल रहता है और पुनः निर्देश: कोड इस तरह दिखता है उन्हें होम पेज पर।
क्या मैं तो करने की कोशिश की थी मेरी .htaccess फाइल को बदलने बस इसे साफ करने के लिए '/ 1 प्रोफाइल' के लिए यूआरएल मैप करने के लिए।
RewriteRule ^profile$ profile.php
RewriteRule ^profile/([0-9]+)$ profile.php?identity=$1 [NC,L]
मैं अब क्या पाया गया कि अब किसी पृष्ठ से अधिक आयु वालों अमान्य $ _GET मानकों का प्रयोग करके रीडायरेक्ट नहीं करता है। यह सिर्फ 'प्रोफाइल/एबीसी' खोजने की कोशिश करता है।
क्या किसी को पता है क्यों?
धन्यवाद, मैं अपने नियमों की कोशिश करेगा। मुझे नहीं पता, यह मेरे .htacces नियमों के साथ कुछ करना होगा क्योंकि php विवरण स्पष्ट रूप से किसी भी चीज़ को अस्वीकार करते हैं जो === एक पूर्णांक नहीं है और यूआरएल में $ _GET को गुजरने से अनचाहे अन्य सभी को फेंकता है। – Jonnny
ठीक है मुझे बताएं कि आपको अतिरिक्त सहायता –
की आवश्यकता है, मैंने अभी कोशिश की है, मुझे अभी भी वही परिणाम मिल रहा है। कितना अजीब, शायद यह मेरे सिस्टम में कुछ quirk है। आपकी सहायता की सराहना करें हालांकि – Jonnny