2012-08-16 26 views
7

साथ पृष्ठ पर रीडायरेक्ट मैं एक पृष्ठ पर रीडायरेक्ट करने के लिए और फिर एक संदेश प्रदर्शित करना चाहते हैं:php संदेश

मैं क्या है:

if (mysqli_affected_rows($link) == 1) 
{ 
    //succes   
    $message = 'succes'; 
    redirect_to('index.php'); 
} 
अनुक्रमणिका पृष्ठ पर

मेरे पास है:

if (!empty($message)) { 
    echo '<p class="message"> '.$message.'</p>'; 
} 

रीडायरेक्ट फ़ंक्शन ठीक काम कर रहा है:

function redirect_to($location = NULL) { 
     if ($location != NULL) { 
      header("Location: {$location}"); 
      exit; 
     } 
    } 

लेकिन यह मेरा संदेश प्रदर्शित नहीं करेगा। यह खाली है।

उत्तर

16

जब तक रीडायरेक्ट होता है और $location द्वारा चित्रित PHP स्क्रिप्ट निष्पादित की जाती है, $message चर लंबे समय से चला गया होता।

इस से निपटने के लिए, यदि आप अपने स्थान शीर्ष लेख में अपने संदेश पारित करने के लिए GET चर का उपयोग कर की जरूरत है:

header("Location: $location?message=success");

और

if(!empty($_GET['message'])) { 
    $message = $_GET['message']; 
// rest of your code 

तुम भी sessions

में एक नज़र हो सकता था
session_start(); 
$_SESSION['message'] = 'success'; 
header("Location: $location"); 

तो गंतव्य स्क्रिप्ट में: सत्र

session_start(); 
if(!empty($_SESSION['messsage'])) { 
    $message = $_SESSION['message']; 
    // rest of your code 
+0

अब मैं समझता हूं। आपके सहयोग के लिए धन्यवाद। – user1386906

+0

यदि आप अपने संदेश को पता बार पर नहीं दिखाना चाहते हैं, तो सत्रों का उपयोग करना एक अच्छा विकल्प होगा, उदाहरण के लिए आप सत्र में अपना संदेश लिखते हैं, उदाहरण के लिए $ _SESSION ['message'] = "कुछ संदेश" इसे दिखाने के बाद इसे अनसेट करें ($ _SESSION [ 'संदेश']); – alpera

3

स्क्रिप्ट समाप्त होने के बाद चर मौजूद हैं। प्रत्येक अलग अनुरोध, प्रत्येक अलग PHP स्क्रिप्ट आमंत्रण किसी अन्य आमंत्रण से कोई डेटा नहीं होने वाला एक बिल्कुल नया संदर्भ है।

डेटा जारी रखने के लिए sessions का उपयोग करें।

3

आप उपयोग कर सकते

if (mysqli_affected_rows($link) == 1) 
{ 
    //succes   
    $_SESSION['message'] = 'succes'; 
    redirect_to('index.php'); 
} 

और सूचकांक

if (!empty($_SESSION['message'])) { 
    echo '<p class="message"> '.$_SESSION['message'].'</p>'; 
    unset($_SESSION['message']); 
} 
2

पर जब से तुम header("Location: {$location}"); द्वारा चलाए जा रहे पहले फ़ाइल में $location (समूह के मूल्य) index.php लोड होने पर खो जाता है।

1

निम्नलिखित कोड का उपयोग ....

header("Location: index.php?message=success"); 

index.php

$msg=$_GET['message']; 
echo $msg; 
0

आप रीडायरेक्ट समारोह से बचने और पेज

header("Location: $locationpage?message=success") 

सूचकांक में इस कोड का उपयोग कर सकते हैं में .php

if(!empty($_GET['message'])) { 
$message = $_GET['message']; 
echo '<p class="message"> '.$message.'</p>'; 
} 

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

  • कोई संबंधित समस्या नहीं^_^