我的代码如下所示:
if(!filter_var($Email, FILTER_VALIDATE_EMAIL))
{
message("Invalid Mail!", "error"); return;
}
消息是弹出警报的功能。
然而,整个表格将被清空"一旦错误弹出(由于"返回")。我有点新意,所以我该如何预防呢?
此致
答案 0 :(得分:0)
Web服务器通常是无状态。当您的脚本完成执行时,它将忘记有关请求的所有内容,包括提交的表单数据。
PHP中保存状态的两种常用方法是使用session variables(在请求之间在服务器上存储用户信息),或者将数据输出到隐藏表单字段以便在下一个请求中重新提交(在请求之间在客户端存储信息)。两者都是暂时的。
一个非常简单的会话变量,可以记住您之前是否访问过:
<?php
// Tell PHP to use sessions
session_start();
// If the variable is not set
if (!isset($_SESSION['returning_user'])) {
// They are a new user
echo 'Welcome first-timer!';
$_SESSION['returning_user'] = true;
// Otherwise the variable is set
} else {
// They are a returning user
echo 'Hello again :)';
}
如果用户填写表单时出错或验证失败等,建议的方法是在表单字段中再次输出数据以供用户进行更正,并在准备好后重新提交。
如果您正在制作多步骤表单向导,则可以“捕获”#34;会话变量中先前步骤的数据,用于最后处理。这是因为您将在提交时验证用户输入 - 将其发送回客户端进行存储可能不值得信任 - 将其保存在服务器上是安全的。
希望有所帮助