5

ページをリダイレクトする方法としてヘッダー関数を使用して、URL を介して変数を渡そうとしています。ただし、ページがリダイレクトされると、変数に関連付けられた値ではなく、実際の変数名が渡されます。私は PHP を初めて使用し、構文を完全には理解していないため、これを行う適切な方法についてさらに説明をいただければ幸いです。

header('location: index.php?id=".$_POST[ac_id]."&err=".$login."');
4

7 に答える 7

18

あなたがしたい:

header("Location: index.php?id=".$_POST['ac_id']."&err=".$login);

'この文字列でandを組み合わせ"ていたため、変数を適切に補間できませんでした。上記の例では、文字列を厳密に開き、"変数を文字列と連結しています。

于 2011-04-26T02:32:31.017 に答える
2

引用符内に引用符があります。代わりにこれを試してください:

header('location: index.php?id=' . urlencode($_POST['ac_id']) . '&err=' . urlencode($login));

urlencode()関数は、URL 内の予約文字を処理します。

http_build_query()URL に 1 つまたは 2 つ以上の変数があると思われる場合は、代わりに を使用します。

header('Location: index.php?' . http_build_query(array(
    'id' => $_POST['ac_id'],
    'err' => $login
)));

また、技術的には、ロケーション ヘッダーで相対パスを使用することはできません。ほとんどのブラウザで動作しますが、RFC によれば有効ではありません。完全な URL を含める必要があります。

于 2011-04-26T02:33:17.753 に答える
1

SESSION ストレージを試してください。ヘッダーは、ページをリダイレクトするために使用されます。本当にヘッダーのみを介して値を渡したい場合は、生成された URL があります。header('location:destination.php? value1=1&value2=3'); しかし、これは vars の良い習慣ではありません。SESSION グローバル変数に値を格納するだけです。B4 header() リダイレクト呼び出し。@テストする必要がある受信ページ。セッション val が set() n !empty() の場合は ... またはそうでない場合は ...

これが役立つことを願っています。

于 2014-02-06T11:41:22.793 に答える
0

これを試すことができます

header("Location:abc.html?id=".$_POST['id']."id_2=".$var['id_2']);

それが機能する場合は、私に知らせてください。これはほんの一例です。

于 2013-04-17T11:22:14.660 に答える
-2

これを試して:

header("location: index.php?id=$_POST[ac_id]&err=$login");

PHP 変数は、二重引用符で囲まれた文字列内で展開されます。

于 2011-04-26T02:34:53.360 に答える
-2
header('location: index.php?id='.$_POST['ac_id'].'&err='.$login);
于 2011-04-26T02:32:58.067 に答える