somdow
somdow

Reputation: 6318

PHP passing a variable with header redirect

I am trying to pass a variable within a header link. I have tried below code

$name = "mike";

if($name != "lopan"){
        header("Location:error-page.php?$errorMssg=Please enter information?");
}

This page redirect to location but doesn't pass the variable that contains the message. But when i create a simple link with values like this:

<a href="error-page.php?$errorMssg=so what happened there buddy?">link</a>

it passes it just fine.

Any ideas what i am doing wrong? or i can not pass information with headers?

Upvotes: 6

Views: 37355

Answers (3)

mkk
mkk

Reputation: 7693

could it be because you have $errorMssg instead of $errorMsg ? also try to make a valid url, for example replace " " with %20 etc, function urlencode() could help you with this.

Upvotes: 1

Benjamin Crouzier
Benjamin Crouzier

Reputation: 41895

You need to use urlencode like this:

if($name != "lopan"){
        header("Location:error-page.php?errorMssg=".urlencode("Waoo so your not EVEN going to try to enter information huh?"));
}

And in error-page.php, you should get it (no need to urldecode):

<?php
$errorMssg = $_GET['errorMssg'];

Upvotes: 13

kontur
kontur

Reputation: 5219

Remove the $ before errorMssg and urlencode the message.

Upvotes: 5

Related Questions