i want to redirect to a page and then display a message:
what i have is:
if (mysqli_affected_rows($link) == 1)
{
//succes
$message = 'succes';
redirect_to('index.php');
}
on the index page i have:
if (!empty($message)) {
echo '<p class="message"> '.$message.'</p>';
}
The redirect function is working fine:
function redirect_to( $location = NULL ) {
if ($location != NULL) {
header("Location: {$location}");
exit;
}
}
But it won't display my message. Its empty.
By the time the redirect happens and the PHP script depicted by $location
is executed, $message
variable would have been long gone.
To tackle this, you need to pass your message in your location header, using GET
variable:
header("Location: $location?message=success");
And
if(!empty($_GET['message'])) {
$message = $_GET['message'];
// rest of your code
You could also have a look into sessions
session_start();
$_SESSION['message'] = 'success';
header("Location: $location");
then in the destination script:
session_start();
if(!empty($_SESSION['message'])) {
$message = $_SESSION['message'];
// rest of your code
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With