2012-04-06 27 views
5

ヘッダリンク内で変数を渡そうとしています。私はコードの下で試しましたPHPがヘッダリダイレクトで変数を渡す

$name = "mike"; 

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

このページは、場所にリダイレクトされますが、メッセージを含む変数を渡しません。しかし、私はこのような値を持つ単純なリンクを作成するとき:

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

それはちょうどそれを渡します。

私が間違っていることは何ですか?または私はヘッダーで情報を渡すことができませんか?

+1

URLに$文字は必要ありません – GordonM

答えて

11

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

とエラー-page.phpでは、あなたが(urldecodeする必要が)それを得るべきではない:

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

Lols、リンクに「$」を付けていない限りこれはヘッダーですか?なぜなら、私はそれとの定期的なリンクをしたときに、それはちょうどうまくいった。 – somdow

+2

URLに引数を渡すときに '$'は必要ありません。 'http://example.com?foo = bar&baz = baz'のように、パラメータの先頭を示すには'? '、それぞれの間には '&'が必要です。これを '$'で始まるPHP変数と混同しないでください。 –

5

errorMssgとの前に$を削除してください。あなたはこのようurlencode使用する必要が

1

ますので、それができます$errorMsgの代わりに$errorMssgがありますか?また有効なURLを作成しようとすると、たとえば ""を%20などに置き換えると、urlencode()がこれを手伝ってくれます。

関連する問題