4

私はこのコードを使用しています...

<?php
if (isset($_POST['submitButton'])) { 
mysql_query("UPDATE notes SET Note=('$_POST[note]')
WHERE UserID='19'");

mysql_close($con);
header('Location: editrem3.htm'); //clears POST
}
?>

ユーザーが送信をクリックしてデータが投稿された後、ページをリダイレクトするにはどうすればよいですか?

4

3 に答える 3

2

まず、ブロック内に何かを入れて、if()状態に入っていることを確認します。echoif()

正しく機能している場合は、header()が実行される前に何も送信していないことを確認してください。PHPファイルで使用する場合header()、その前に他の出力ステートメントがあってはならないためです。したがって、その前にHTMLコードまたはechosがないか確認してください。

次に、それheader()が実行されていることを確認しても、リダイレクトされていない場合は、ターゲットファイルが存在することを確認してください。

追加:常にリダイレクトのexit()直後に追加します。header()それ以外の場合、コードは実行を継続し、機密データを明らかにする可能性があります。

于 2012-04-11T18:08:31.407 に答える
1

ファイルへの相対パスを使用すると、おそらく問題が発生します。フルパスを使用して試してください(おそらくif {}の外でも意味があります)。

PHPは相対パスを解析できる可能性がありますが、w3仕様では絶対URIを使用するように明示的に規定されています

編集:詳しく説明すると、リダイレクトのためにブラウザに相対パスを渡すことは、火遊びです。ブラウザは、サイトの階層のどこにあるかを認識していると考えるかもしれませんが、実際には別の場所にある可能性があります。

また、404ページなどが表示されない場合は、相対パス問題にならない可能性がありますが、後で役立つ可能性があります。

于 2012-04-11T17:49:50.037 に答える
0

メタリダイレクトを使用する

<meta http-equiv="refresh" content="0; url=http://example.com/">

しかし、あなたは次のようなことをすることができます

<meta http-equiv="refresh" content="0; url=index.php">

私と一緒にうまくいく

于 2012-04-11T18:08:22.103 に答える