1

私がこのスクリプトを持っているとしましょう:

http://www.example.com/profile.php?uid=12345

このスクリプトの中には、sendmessage.phpによって処理されるメッセージ送信機能があります。sendmessage.phpが実際に行うことは、データベースに何かを挿入してから、ユーザーが開始した場所(profile.php?uid = 12345)にリダイレクトすることです。

header( "Location:profile.php")を使おうとしました。

しかし、profile.phpはURLに?uid = 12345を必要とするため[そしてそれは動的です]、私のリダイレクトプランは機能していません。

現在のURLを「渡す」にはどうすればよいですか。私の場合、GETメソッドを使用してsendmessage.phpに「profile.php?uid=12345」を送信します。そして、sendmessage.phpの処理が完了したら、ユーザーを自分の画面(profile.php?uid = 12345)に戻しますか?

前もって感謝します。

4

6 に答える 6

2

これを試して:

header("Location: " . $_SERVER['HTTP_REFERER']);

PHP.netからのメモ:

The address of the page (if any) which referred the user agent to the current page. This is set by the user agent. Not all user agents will set this, and some provide the ability to modify HTTP_REFERER as a feature. In short, it cannot really be trusted.

于 2012-08-06T16:57:38.343 に答える
1

profile.php?uid=12345フォームを使用してデータを送信している場合は、sendmessage.php 次のような非表示フィールドを使用できます-

<input type="hidden" name="redirect_to" value="<?=$_SERVER['REQUEST_URI']?>">

その後、sendmessage.phpあなたはheader("Location: ".$_REQUEST['redirect_to']);'を使用することができます

于 2012-08-06T17:14:02.303 に答える
0

1つのトリックは、リンク自体に情報を入力することです。そうすれば、別のページに移動しても、それらのパラメーターは引き続き存在します...必要に応じて、パラメーターを前のURLとして使用できます。

于 2012-08-06T16:57:48.037 に答える
0

もう1つのオプションは、フォーム送信データの一部としてuidを送信することを確認することです。

次に、渡された値を使用してURLを再構築できます。

header( "Location:profile.php?uid="。$_ GET ["uid"]);

または、ユーザーIDをセッションに保存します。そうすれば、$ _ SESSION ["uid"]で常に利用可能であり、フォームに無関係なフィールドを作成することを覚えておく必要はありません。

于 2012-08-06T17:10:44.620 に答える
0

次のように変数をsendmessage.phpに渡す必要があります

sendmessage.php?uid=<?php echo (isset($_GET['uid']) ? (INT)$_GET['uid'] : 'default') ?>

次に、sendmessage.phpで。次のようなものを使用します

header("Location: profile.php?uid=" . (isset($_GET['uid']) ? (INT)$_GET['uid'] : 'default') ); 
于 2012-08-06T17:12:13.267 に答える
0

GETといくつかのjavascriptを使用できます。このメソッドを使用すると、PHPのヘッダー関数の使用に関する問題を回避できます。

echo "<script type=\"text/javascript\"> window.location = \"profile.php?uid=" . $_GET["uid"] .    "\"</script>";

「uid」が実際に渡されていることを確認してください。また、ユーザーが最初にログオンしたときにuidをセッション変数に格納し、それを私の例で使用して、GETを使用する必要をなくすこともできます。どちらの方法でも機能します。

于 2012-08-06T19:42:02.270 に答える