0

ユーザーが情報を入力するためのフォームがあり、ユーザーがページにリダイレクトした場合に以前に入力した情報を保持する方法を考えています。

だから、私は2つのファイルを持っています、

  • form.html
  • validate.php

form.html

<form id="regForm" action="index.php?validate" method="post" onsubmit="return regValidation();" >

<tr>
  <td width="150px" >First Name: <font color="red">*</font> </td>
  <td><input type="text" name="firstNameField" id="firstNameField" value/ ></td>
</tr>

の下validate.phpに、$_SESSION で情報を保存しました。

<?php
    session_start();

    $_SESSION['first'] = $_POST['firstNameField'];
?>

しかし、次のfirstNameFieldよう$_SESSION['first']

<td><input type="text" name="firstNameField" id="firstNameField" value="<?php echo isset($_SESSION['first']) ? $_SESSION['first'] : NULL; ?>" /></td>

フィールドは文字通り置き換えられます<?php echo isset($_SESSION['first']) ? $_SESSION['first'] : NULL; ?>

誰かが理由とそれを適切に修正する方法を教えてもらえますか?

ありがとう。

4

4 に答える 4

0

ファイル名をphpタグのようにform.htmlではなくform.phpに変更します

または.htmlハンドラーを追加します

于 2012-11-08T03:44:53.560 に答える
0

Apache がそのファイル内の PHP を解析することを認識できるように、ファイル名をform.phpの代わりに に変更します。form.html

または、ファイルを変更して.htaccess、次のような行を追加することもできます。

AddType application/x-httpd-php .html

これは、PHP を使用して HTML で終わるすべてのファイルをレンダリングするように Apache に指示します。

于 2012-11-08T02:12:21.097 に答える
0

2 つのファイルがあることで、なぜこれが複雑になるのでしょうか。

持っているだけです。

$_POST には何も含まれていないため、初めて nowt が入力されます。その後、その変数には適切な値が設定されます。

これにより、2 つのファイルを順番に保持する必要がないため、将来的に多くの手間が省けます。

また、セッションを使用する複雑さを取り除きます。

于 2012-11-08T02:23:54.137 に答える
0

デフォルトでは、ファイル拡張子が .html のファイルは解析されないため、<?php $yourCode->exposed = true; ?>

同じファイルの名前を変更し、ファイル拡張子を .html から .php に変更する <?php echo 'HelloWorld'; ?>と、解析され、最終結果は次のようになります。HelloWorld

このデフォルトの動作は、Tim によって上記のようにオーバーライドできます。

于 2012-11-08T02:28:08.660 に答える