2012-04-06 7 views
5

Ich versuche, eine Variable innerhalb einer Header-Link übergeben. Ich habe versucht, CodePHP übergibt eine Variable mit Header-Weiterleitung

$name = "mike"; 

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

Diese Seite Redirect an Ort, aber nicht die Variable, die die Nachricht enthält. Aber wenn ich eine einfache Verbindung mit Werten wie folgt erstellen:

es passiert es einfach gut.

Irgendwelche Ideen, was ich falsch mache? Oder ich kann keine Informationen mit Kopfzeilen übergeben?

+1

Sie brauchen nicht das $ -Zeichen in der URL – GordonM

Antwort

11

Sie benötigen urlencode wie folgt zu verwenden:

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

Und in fehler page.php, sollten Sie es bekommen (keine Notwendigkeit, urldecode):

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

Lols, ist das eine Header-Sache, soweit nicht das "$" in den Link oder ??? weil, als ich eine regelmäßige Verbindung mit ihm hatte, ging es gut. – somdow

+2

Sie benötigen keine '$' s beim Übergeben von Argumenten in URLs. Sie benötigen ein '?', Um den Anfang der Parameter anzugeben, und ein '&' zwischen jedem, wie folgt: 'http: //example.com? Foo = bar & baz = baz'. Verwechseln Sie das nicht mit den PHP-Variablen, die mit einem '$' beginnen. –

5

Entfernen Sie die $ vor errorMssg und urlencode die Nachricht.

1

konnte es, weil Sie sein haben $errorMssg anstelle von $errorMsg? versuchen Sie auch, eine gültige URL zu machen, zum Beispiel ersetzen Sie "" durch% 20 etc, Funktion urlencode() könnte Ihnen dabei helfen.

Verwandte Themen