exit(), return 使 post 数据消失

exit(), return make post data gone

我的代码如下所示:

if(!filter_var($Email, FILTER_VALIDATE_EMAIL))
{
    message("Invalid Mail!", "error"); return;

}

message 是弹出提示的功能。

但是,一旦错误弹出(由于"return"),整个表格将"emptied"。我是新手,如何防止这种情况发生?

此致

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 :)';
}

如果用户在填写表单时出现错误,或者验证失败等,推荐的方法是将表单域中的数据重新输出,供用户修改,待用户修改后重新提交准备好了。

如果您正在制作一个多步骤表单向导,您可以 "capture" 会话变量中先前步骤的数据,以便在最后处理。这是因为您将在提交时验证用户输入 - 将其发送回客户端进行存储可能不可信 - 将其保存在服务器上是安全的。

希望对您有所帮助