exit(),返回make post数据消失

时间:2016-05-08 09:16:46

标签: php forms exit

我的代码如下所示:

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

}

消息是弹出警报的功能。

然而,整个表格将被清空"一旦错误弹出(由于"返回")。我有点新意,所以我该如何预防呢?

此致

1 个答案:

答案 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;会话变量中先前步骤的数据,用于最后处理。这是因为您将在提交时验证用户输入 - 将其发送回客户端进行存储可能不值得信任 - 将其保存在服务器上是安全的。

希望有所帮助

相关问题