在PHP中验证失败后保留输入数据

hfyxw5xn  于 2022-11-21  发布在  PHP
关注(0)|答案(2)|浏览(142)

情况是这样的:registration.php(输入名、姓、密码等)和registrationErrors.php(自行编写错误检查,并将错误类型返回给初始registration.php,然后显示给用户)。
万一我自己写的错误发生了,我想保存用户已经完成的输入(registration.php),只清除有错误的输入。
我已经看到了一对夫妇的职位有同样的问题-但我的略有不同。

<form action="registrationErrors.php" method="post" ...>

,建议

value="<?php echo isset($_POST["firstname"]) ? $_POST["firstname"] : ''; ?>"

不起作用,因为它必须发送到:

<form action="registration.php"...>

你知道如何保持我的两个php文件的结构,同时仍然保存已经输入的数据吗?

f4t66c6m

f4t66c6m1#

您可以将会话中的数据保存在registrationErrors.php文件中,然后在registration.php中检索它。您也可以使用GET参数将数据发送到registration.php。

value="<?php echo isset($_SESSION["firstname"]) ? $_SESSION["firstname"] : ''; ?>"

这会有用的。
OR偶数

value="<?php echo isset($_GET["firstname"]) ? $_GET["firstname"] : ''; ?>"

这将起作用

tcbh2hod

tcbh2hod2#

请使用会话变量执行所需操作
PHP(提交表单)

<?php session_start(); ?>

<!-- other statements -->

<form action="registrationErrors.php" method="post" ...>
<!-- other inputs -->
<input name=firstname value="<?= $_SESSION['firstname']  ?? '' ?>"
<input type=submit>
</form>

registrationErrors.php

<?php session_start();

$_SESSION["firstname"]=$_POST["firstname"]) ?? '';

// the above is equivalent to:
// $_SESSION["firstname"] = isset($_POST['firstname']) ? $_POST['firstname'] : '';

// other statements , error checking, etc

?>
  • 确保你已经把session_start();放在所有相关php脚本的开头
  • 请对姓等执行相同的操作。

相关问题