0

3 つの PHP ページがある場合、それらを one.php、two.php、three.php と呼び、最初のページで次のようなものを使用します。

<form name = "one" action = "two.php" onsubmit="return validateForm();" method ="post">

one.php から単独で渡した変数を two.php で使用できるようになったことは理解しています...

私の質問は、one.php の変数を three.php でどのように使用するのですか?

two.php の場合と同様に、それらを呼び出そうとするたびに「未定義のインデックス」エラーが発生し続けます。

ご助力ありがとうございます!

編集:セッションも使用していることに言及する必要がありました。

2 ページ目では、次のようなことを行います。

$_SESSION['名前'] = $_POST['名前'];

その最初のページから収集した名前を2番目のページに渡すことができますが、3番目のページでこれを実行しようとすると、「未定義のインデックス」と表示されます。

4

4 に答える 4

2

post を使用する代わりに、 $_SESSION を使用する必要があります

たとえば、次のようになります。

one.php

session_start();
$_SESSION["mypostvalue"] = $_POST["mypostvalue"];
$_SESSION["mypostvalue1"] = $_POST["mypostvalue1"];

three.php

session_start();
echo $_SESSION["mypostvalue"];
echo "<br />";
echo $_SESSION["mypostvalue1"];

次に、セッション データの処理が完了したら、次のように削除する必要があります。

session_start();
$_SESSION = null;
session_destory();

session_start() は、ページごとに 1 回だけ使用し、html や空白などのデータがブラウザーに送信される前に使用してください。

于 2012-11-16T20:14:47.360 に答える
1

one.php から単独で渡した変数を two.php で使用できるようになったことは理解しています...

そうではありません。

フォーム内のフォーム コントロールが成功すると、その値が に送信されtwo.phpます。その後、 からアクセスできます$_POST['name_of_control']

PHP 変数から作成された値を使用してフォーム コントロール (おそらく非表示のタイプ) を生成すると (XSS 攻撃を防ぐためにそれらをエスケープするようにしてください)、それらはフォームに表示され、送信されます。

私の質問は、one.php の変数を three.php でどのように使用するのですか?

それは、ブラウザーが three.php に到達する方法によって異なります。別のフォームを生成し、非表示の入力に値を再度入れることができます。

于 2012-11-16T20:16:39.817 に答える
0

入力要素の名前が正しいことを確認してください。two.phpで使用する場合は$_POST["myvar"]one.phpの属性を「myvar」にする必要があります。name

<form action="two.php" method="post">
    <input type='text' value='test myvar' name='myvar' />
    <input type='submit' value='go to 2' />
</form>

one.phpの変数をthree.phpで使用するには、非表示の入力として渡すだけです。つまり、それらをtwo.phpのフォームにエコー バックします。

<form action="three.php" method="post">
    <input type='text' value='test var 2' name='myvar2' />

    <?php echo "<input type='hidden' name='myvar' value='" . $_POST["myvar"] . "' />"; ?>

    <input type='submit' value='go to 3' />
</form>
于 2012-11-16T20:15:13.190 に答える
0

$_POST はリクエストごとです $_SESSION または $_GET を使用して 3 番目のファイルに渡す必要があります。

于 2012-11-16T20:14:31.437 に答える