0

私はphpフォーム送信に取り組んでおり、フォームのphp検証を行っています。

登録ページ名は「page1.php」、他のページのフィールド値の取得は「page2.php」となります。検証でエラーが発生した場合。「page3.php」のリンクをクリックすると、「page3.php」などの他のページにリダイレクトされます。登録ページ、つまり「page1.php」にリダイレクトされますが、ユーザーが入力した値を保存または保持することはできません。誰かがこれを克服する方法を提案または案内してくれますか?

以下は私が使用したコードです。

Page2.php

$name = $_POST['txtname'];
$_SESSION['txtname'] = $name;

page1.php

<input type='text' name="txtname" id="txtname" value="<?php echo $_SESSION['txtname']; ?>"/>
4

3 に答える 3

2

これは、実行して配列session_start()にアクセスしたい任意のphpファイルにある必要があるためです。SESSION

## Top of the file
<?php session_start(); ?>

## Content
<input type='text' name="txtname" id="txtname" value="<?php echo (isset($_SESSION['txtname']) ? $_SESSION['txtname'] : ''); ?>" />
于 2012-12-26T09:39:38.770 に答える
2
your fields in first page should be like this.

<input type='text' name="txtname" id="txtname" <?php if(isset($_SESSION['txtname'])){?> value="<?php echo $_SESSION['txtname']; ?>" <?Php }?>/>

2 番目のページで検証が失敗した場合は、リダイレクトするロジックを記述し、3 番目のページでリンクを作成します。 session_start()である必要がpage1.phpありますpage2.php

検証後にこれらの変数が必要ない場合、またはしばらくの間、これらのセッション変数の設定を解除できます。

また

以下のようにテキストフィールドを設計できます

<input type='text' name="txtname" id="txtname" <?php if($_SESSION['txtname']!=""){?> value="<?php echo $_SESSION['txtname']; ?>" <?Php }?>/>
于 2012-12-26T09:35:56.947 に答える
1

これを試して

<input type='text' name="txtname" placeholder="<?php echo $_SESSION['txtname']; ?>" id="txtname" value="<?php echo $_SESSION['txtname']; ?>"/>  

ファイルの先頭に session_start() を追加しましたか?

于 2012-12-26T09:34:42.517 に答える