PHP में रीडायरेक्ट कैसे करें?



Answers

function Redirect($url, $permanent = false)
{
    if (headers_sent() === false)
    {
        header('Location: ' . $url, true, ($permanent === true) ? 301 : 302);
    }

    exit();
}

Redirect('http://www.google.com/', false);

मरने के लिए मत भूलना () / निकास ()!

Question

क्या PHP के उपयोग के माध्यम से किसी उपयोगकर्ता को किसी भिन्न पृष्ठ पर रीडायरेक्ट करना संभव है?

मान लें कि उपयोगकर्ता www.example.com/page.php जाता है और मैं उन्हें www.example.com/index.php पर रीडायरेक्ट करना चाहता हूं, मेटा रीफ्रेश के उपयोग के बिना मैं ऐसा कैसे करूं? मुमकिन?

यह अनधिकृत उपयोगकर्ताओं से भी मेरे पृष्ठों को सुरक्षित रख सकता है।




अर्थात् वेब की पूर्व संध्या में, शुद्धता पर विचार करने के लिए कुछ है। दुर्भाग्यवश, PHP का "स्थान" -हेडर अभी भी HTTP 302- डायरेक्ट कोड का उपयोग करता है, जो कड़ाई से, पुनर्निर्देशन के लिए सबसे अच्छा नहीं है। इसे इसके बजाय उपयोग करना चाहिए, 303 एक है।

डब्ल्यू 3 सी यह उल्लेख करने के लिए काफी दयालु है कि 303-हेडर "कई पूर्व-HTTP / 1.1 उपयोगकर्ता एजेंट" के साथ असंगत है, जो वर्तमान उपयोग में कोई ब्राउज़र नहीं होगा। तो, 302 एक अवशेष है, जिसका उपयोग नहीं किया जाना चाहिए

... या आप इसे अनदेखा कर सकते हैं, हर किसी के रूप में ...




हम दो तरीकों से कर सकते हैं

  1. जब उपयोगकर्ता https://bskud.com/PINCODE/BIHAR/index.php पर आते हैं तो https://bskud.com/PINCODE/BIHAR/index.php पर रीडायरेक्ट https://bskud.com/PINCODE/BIHAR.php

नीचे PHP कोड से

<?php header("Location: https://bskud.com/PINCODE/BIHAR.php"); exit; ?>

https://bskud.com/PINCODE/BIHAR/index.php में कोड ऊपर सेव https://bskud.com/PINCODE/BIHAR/index.php

2. जब कोई शर्त सही होती है तो दूसरे पेज पर रीडायरेक्ट करें

<?php  $myVar = "bskud";   if ($myVar == "bskud") { ?>  <script> window.location.href="https://bskud.com";  </script> <?php  } else {  echo "<b>Check Website Name Again</b>"; } ?>

`




<?php
$url = "targetpage"
Function redirect$url(){
   If (headers_sent()) == false{
      Echo '<script>window.location.href="' . $url . '";</script>';
}}
?>



आप नीचे कुछ जावा स्क्रिप्ट विधियों का उपयोग कर सकते हैं

 1)self.location="http://www.example.com/index.php";

 2)window.location.href="http://www.example.com/index.php";

 3)document.location.href = 'http://www.example.com/index.php';  

 4)window.location.replace("http://www.example.com/index.php");



इनमें से कई उत्तर सही हैं, लेकिन वे मानते हैं कि आपके पास एक पूर्ण यूआरएल है, जो मामला नहीं हो सकता है। यदि आप एक सापेक्ष यूआरएल का उपयोग करना चाहते हैं और शेष उत्पन्न करना चाहते हैं, तो आप ऐसा कुछ कर सकते हैं ...

$url = 'http://' . $_SERVER['HTTP_HOST'];            // Get the server
$url .= rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); // Get the current directory
$url .= '/your-relative/path-goes/here/';            // <-- Your relative path
header('Location: ' . $url, true, 302);              // Use either 301 or 302



इनमें से अधिकतर जवाब एक बहुत ही महत्वपूर्ण कदम भूल रहे हैं!

header("Location: myOtherPage.php");
die();

उस महत्वपूर्ण दूसरी लाइन को छोड़कर आप thedailywtf.com/Articles/WellIntentioned-Destruction.aspx पर समाप्त हो सकते हैं। समस्या यह है कि ब्राउज़र को आपके पृष्ठ पर वापस आने वाले शीर्षकों का सम्मान नहीं करना पड़ता है, इसलिए हेडर को अनदेखा किया जा रहा है, शेष पृष्ठ को रीडायरेक्ट के बिना निष्पादित किया जाएगा।




HTTP Location शीर्षलेख भेजने के लिए header() फ़ंक्शन का उपयोग करें:

header('Location: '.$newURL);

कुछ सोचने के विपरीत, die() पास पुनर्निर्देशन के साथ कुछ लेना देना नहीं है। इसका उपयोग केवल तभी करें जब आप सामान्य निष्पादन के बजाय रीडायरेक्ट करना चाहते हैं।

example.php:

<?php 
header('Location: static.html');
$fh = fopen('/tmp/track.txt','a');
fwrite($fh, $_SERVER['REMOTE_ADDR'].' '.date('c')."\n");
fclose($fh);
?>

परिणाम या 3 निष्पादन:

bart@hal9k:~> cat /tmp/track.txt
127.0.0.1 2009-04-21T09:50:02+02:00
127.0.0.1 2009-04-21T09:50:05+02:00
127.0.0.1 2009-04-21T09:50:08+02:00

फिर से शुरू करना - अनिवार्य die() / exit() कुछ शहरी किंवदंती है, जिसका वास्तविक PHP से कोई लेना देना नहीं है। क्लाइंट "सम्मान" Location: साथ कुछ भी नहीं है Location: हेडर। हेडर भेजना क्लाइंट का उपयोग किए बिना, PHP निष्पादन को रोकता नहीं है।




हां PHP का उपयोग करना संभव है, हम दूसरे पृष्ठ पर रीडायरेक्ट करेंगे, इसे आजमाएं:

<?php
header("location:./");//redirect to index file
header("location:index.php");//redirect to index file
header("location:example.php");
?>



आप रीडायरेक्ट करने के लिए php हेडर फ़ंक्शन का उपयोग करने का प्रयास कर सकते हैं। आप आउटपुट बफर सेट करना चाहते हैं ताकि आपका ब्राउज़र स्क्रीन पर रीडायरेक्ट चेतावनी फेंक न सके।

ob_start();
header("Location: ".$website);
ob_end_flush();



<?php 
header('Location: redirectpage.php');
header('Location: redirectpage.php');exit();
echo "<script>location.href='redirectpage.php';</script>";
?>

यह नियमित और सामान्य PHP रीडायरेक्ट है लेकिन आप कोड के नीचे कुछ सेकंड प्रतीक्षा के साथ एक पृष्ठ को रीडायरेक्ट कर सकते हैं:

<?php
header('refresh:5;url=redirectpage.php '); //Note: here 5 means 5 seconds wait for redirect.
?>



header( 'Location: http://www.yoursite.com/new_page.html' );




हां, आप header() फ़ंक्शन का उपयोग कर सकते हैं,

header("Location: http://www.yourwebsite.com/user.php"); /* Redirect browser */
exit();

और कोड निष्पादन से बचने के लिए header() फ़ंक्शन के ठीक बाद exit() फ़ंक्शन को कॉल करना सबसे अच्छा अभ्यास है।

प्रलेखन के अनुसार, किसी वास्तविक आउटपुट को भेजने से पहले header() को कॉल किया जाना चाहिए।




Links



Tags

php php   redirect