2014-10-02 4 views
5

मेरे पास एक लॉगिन पृष्ठ है जो उपयोगकर्ता के पहले से लॉग इन होने पर पहुंच योग्य नहीं होगा। इसलिए लॉगिन पृष्ठ उन उपयोगकर्ताओं को लॉग इन करने का प्रयास करता है जहां से वे आए थे।यदि पृष्ठ यूआरएल के माध्यम से पृष्ठ तक पहुंचने का प्रयास करता है तो पृष्ठ एक पृष्ठ को पिछले पृष्ठ पर कैसे रीडायरेक्ट कर सकता है?

यदि उपयोगकर्ता किसी पृष्ठ पर जाने के लिए लिंक पर क्लिक करते हैं तो रीडायरेक्ट काम करता है। समस्या यह है कि यदि उपयोगकर्ता About पृष्ठ में हैं, तो url के माध्यम से लॉगिन पृष्ठ तक पहुंचने का प्रयास करें, तो referrer agent सेट नहीं किया जाएगा, इसलिए लॉगिन पृष्ठ उपयोगकर्ताओं को About पृष्ठ पर रीडायरेक्ट नहीं कर रहा है, इसके बजाय यह base url पर रीडायरेक्ट कर रहा है (मैं कोडनिर्देशक का उपयोग कर रहा हूं और आयन ऑथ लाइब्रेरी)। नीचे के रूप में प्रवेश पृष्ठ के रीडायरेक्ट कोड:

if($this->ion_auth->logged_in()) 
{ 
    redirect($this->agent->referrer(), 'refresh'); 
} 

यह इस कोड को चलाने के लिए और अनुप्रेषित ठीक से करने के बजाय हमेशा आधार यूआरएल के लिए पुनः निर्देशित करना संभव है? जब उपयोगकर्ता लॉग इन हैं मैं लॉगिन पेज का लिंक नहीं दिखा रहा हूं। इसलिए उपयोगकर्ता में लॉग इन केवल यूआरएल टाइपिंग का उपयोग कर लॉगिन पेज पर जा सकता है, और जो मैं चाहता हूं वह है यदि वे ऐसा करते हैं तो उन्हें उस पृष्ठ पर रीडायरेक्ट किया जाएगा जहां से वे आए थे।

उत्तर

0

अगर कोई बेहतर तरीका है मैं नहीं जानता, लेकिन मैं हमेशा ऐसा करते हैं:

जब उपयोगकर्ता पर प्रवेश पर पेज और क्लिक के बारे में है, के बारे में पेज यूआरएल पता, ले इस पर शायद base64_encode करते हैं और फिर इसे पैरामीटर के रूप में जीईटी के माध्यम से लॉगिन पेज पर भेजें। लॉगिन पेज पर, यदि प्रमाण-पत्र मान्य हैं, तो आप उस पैरामीटर को GET, base64_decode से ले जाएं और वहां रीडायरेक्ट करें।

यदि आप केवल मुख्य पृष्ठों के लिए ऐसा कर रहे हैं, तो आप केवल यूआरएल से नियंत्रक प्राप्त कर सकते हैं, लेकिन यदि आप इसे प्रत्येक पृष्ठ (/controller/method/var1/var2) पर लागू करना चाहते हैं तो संपूर्ण यूआरएल या संपूर्ण यूआरएल माइनस बेस यूआरएल लें।

मुझे यह बताएं कि क्या इस टिप ने मदद की है।

8

पेज जो आप कर सकते वापस आप के लिए जाना चाहते हैं:

$this->session->set_userdata('referred_from', current_url()); 

तो उस पृष्ठ

$referred_from = $this->session->userdata('referred_from'); 
redirect($referred_from, 'refresh'); 
4

वापस करने के लिए पुन: निर्देशित इस प्रयास करें:

$this->load->library('user_agent'); redirect($this->agent->referrer());

अन्य

लॉगिन और लॉगआउट के लिए

SESSION का उपयोग करें। यदि सत्र ब्लॉक लॉगिन पृष्ठ मौजूद है तो if कथन का उपयोग करके लॉगिन पृष्ठ को अनुमति दें।

1

मैं इस तरह से कर रहा हूं।

रीडायरेक्ट ($ _ सर्वर ['HTTP_REFERER']);

संबंधित मुद्दे