このコードを複数回実行すると、URLにサブ文字列?val=1
を追加する理由を説明できますか?
例:私のスクリプトはindex.phpの中に位置しており、私はそれを3回実行した場合、私は私のブラウザでこのURLを持っています:http://localhost/index.php?val=1?val=1?val=1
私はhttp://localhost/index.php?val=1
を持っていると思います。 。 。
<?php
if(isset($_POST['hidden']) && $_POST['hidden'] == 2){
$page = $_SERVER['HTTP_REFERER'];
header("location: $page?val=1");
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<input name ="hidden" value="2">
<input type="submit">
</form>
追記を追加する前にテストを追加:あなたは '$ _SERVER [ 'HTTP_REFERER']' http://stackoverflow.com/a/6023980/1415724に頼るべきではありません –
同じファイルを使用しているため、同じファイルにリダイレクトされ、GETメソッドが使用され、 '$ page?val = 1'が追加されます。それはかなり自明である。代わりに別のページにリダイレクトしてください。 –
情報ありがとうございました。 – zm455