2010-08-25 10 views
6

जब कोई उपयोगकर्ता किसी लिंक के माध्यम से हमारी वेबसाइट तक पहुंचने का प्रयास करता है (उदाहरण के लिए www.website.com/privatepage पर जा रहा है) तो उसे लॉगिन पृष्ठ पर रीडायरेक्ट किया जाता है। एक बार लॉगिन करने के बाद, हम उन्हें उस इच्छित यूआरएल पर रीडायरेक्ट करना चाहते हैं - आप यह कैसे करते हैं?इरादा यूआरएल रीडायरेक्ट + लॉगिन के बाद डिफ़ॉल्ट रीडायरेक्ट?

इसके अलावा हमारे पास एक उपयोग केस है जहां कोई उपयोगकर्ता मुखपृष्ठ से लॉग इन करता है, या सीधे इच्छित पृष्ठ पर लॉगिन पृष्ठ पर जाता है - इस मामले में हम उन्हें डिफ़ॉल्ट पृष्ठ पर रीडायरेक्ट करना चाहते हैं।

क्या कोई इसे समझने में मेरी सहायता कर सकता है?

+0

आप यह कह कर अधिक विशिष्ट हो सकते थे कि कौन सा ते आप उपयोग कर रहे हैं chnology। लेकिन मौलिक बात यह है कि जब आप उपयोगकर्ता को लॉगिन करने के लिए रीडायरेक्ट कर रहे हों तो पेज के उस यूआरएल को भेजना होगा। इस तरह आप अंतिम यूआरएल प्राप्त कर सकते हैं और सफल लॉगिन के बाद इसे रीडायरेक्ट कर सकते हैं। अधिक जानकारी के लिए request.referer के बारे में कुछ पढ़ें। – AMIT

+0

हाँ, जैसे अमित ने कहा, हम आपके द्वारा उपयोग की जाने वाली विधियों को जानने के बिना बहुत मदद नहीं कर सकते हैं। मेरा जवाब सिर्फ एक सामान्य मदद है। – palswim

उत्तर

4

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

तो, उपयोगकर्ता www.example.com/privatepage तक पहुंचना चाहता है, लेकिन आपको पहले www.example.com/login पर लॉगिन करने की आवश्यकता है। उन्हें www.example.com/login?targetpage=/privatepage पर रीडायरेक्ट करें, फिर अपने लॉगिन पेज के कोड में, आप targetpage चर का उपयोग कर सकते हैं।

3

मैं लॉगिन पृष्ठ पर रीडायरेक्ट करने से पहले आमतौर पर पृष्ठ को PHP सत्र में संग्रहीत करता हूं। लॉग इन करने के बाद, देखें कि सत्र मान सेट है या नहीं, यदि उसे फिर उस पृष्ठ पर रीडायरेक्ट किया गया है।

5

इस फैशन में रीडायरेक्ट करते समय स्वीकृत यूआरएल की श्वेतसूची रखने का अच्छा विचार हो सकता है - अन्यथा, हमलावर किसी को example.com/login?attacker.com/fake_examplecom जैसे लिंक भेज सकता है और उपयोगकर्ता को रीडायरेक्ट किया जाएगा हमलावर की साइट पर सोचते हुए कि वे सिर्फ आपकी साइट पर लॉग इन हैं। मूल यूआरएल आपकी साइट पर इंगित करता है, इसलिए यह भरोसेमंद दिखता है। जैसा कि आप कल्पना कर सकते हैं, वहां बहुत सारी ग़लत चीजें हैं जिनके साथ किया जा सकता है।

6
अपने प्रवेश पृष्ठ में

:

अगर आप (निजी पृष्ठ पर)

// if user is not logged in... 
$_SESSION['redirect'] = $this->uri->segment(1); 
redirect('login'); 
प्रवेश पृष्ठ

पर

CodeIgniter का उपयोग कर www.example.com/private_page

करने के लिए जाना

// successfully logged in.. 
if (isset($_SESSION['redirect'])) { 
    redirect($_SESSION['redirect']); 
} else { 
    // redirect to default page 
} 
संबंधित मुद्दे