2012-04-06 8 views
5

Próbuję przekazać zmienną w łączu nagłówka. Próbowałem poniżej kod:PHP przekazujące zmienną z przekierowaniem nagłówka

$name = "mike"; 

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

Ta strona przekierowuje do lokalizacji, ale nie przekazuje zmiennej zawierającej wiadomość. Ale gdy utworzę prosty link z wartościami takimi jak ta:

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

to wszystko dobrze.

Jakieś pomysły, co robię źle? lub nie mogę przekazywać informacji z nagłówkami?

+1

Nie potrzebujesz znaku $ w adresie URL – GordonM

Odpowiedz

11

Trzeba użyć urlencode takiego:

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

I BŁĘDÓW page.php, należy go (nie trzeba urldecode) otrzymujemy:

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

Lols, czy to jest nagłówek, o ile nie dodajesz "$" w linku lub ??? ponieważ kiedy zrobiłem regularne połączenie z nim, minęło dobrze. – somdow

+2

Nie potrzebujesz żadnych '$' s podczas przekazywania argumentów w adresach URL. Potrzebujesz '?', Aby wskazać początek parametrów, i '&' między nimi, tak: http: //example.com? Foo = bar & baz = baz'. Nie myl tego ze zmiennymi PHP zaczynającymi się od '$'. –

5

Usuń wiadomość $ przed errorMssg i urlencode.

1

może to być spowodowane mieć $errorMssg zamiast $errorMsg? również spróbuj zrobić poprawny URL, na przykład zamień "" na% 20 itd., funkcja urlencode() może ci w tym pomóc.

Powiązane problemy