php - PHP 中的自动返回命令

标签 php javascript html css

我的网站上有一个表格,其中有一系列框。单击提交按钮时,它会使用 PHP 检查以确保所有部分都是相关的。 (IE 如果电子邮件是电子邮件,如果名称没有无效字符等)

如果发生这种情况,在 PHP 脚本中,它当前会:

function died($error) {
    // your error code can go here
    header( "refresh:0;url=construction.html" );
    echo $error;
    die();

现在它刷新页面。所以如果你做错了一件事,它会清除表格。在 PHP 中有没有一种方法可以让这个而不是返回(从而保留填写的表格)。

它当前所在的网站是here .我相信它可能是 JavaScript 的某种实现,但我不知道这是什么以及如何格式化它。

感谢您的帮助!

最佳答案

  1. 您所谓的“确保是否相关”称为验证,是提交表单时的正常且必要的步骤

  2. 您总是需要服务器端验证(在您的情况下是 PHP),这意味着您可以为了可用性和速度添加客户端验证(Javascript)但您永远不能省略服务器端验证因为安全原因

  3. 将有效数据反馈给表单也是一种常见做法,因为不这样做对用户不友好

  4. 你的函数 died($error) 看起来很奇怪而且没有必要,验证失败不是死亡的理由。


播种你应该怎么做?

Javascript(客户端)

使用 Javascript,您可以预先验证表单以避免不必要的服务器往返,并立即向用户提供反馈。有很多使用 jQuery、dojo、MooTools 等实现的表单验证。但不要忘记,Javascript 可以关闭,因此您也必须在服务器端验证所有内容!

PHP(服务器端)

一个好方法是使用现有的验证类,如 Zend_Validate 或什至 Zend_Form。 Zend_Form 使得将经过验证的发布数据反馈回表单变得非常容易,例如$form->populate($data).

任何其他支持表单的框架或库也会有所帮助。当然,您不需要一个库,因此您需要阅读有关如何使用原始有效发布数据填充表单的信息。如果这样做,请确保您可以将 $_POST 数组的副本发送回客户端,如果原始值有效,则在客户端存储原始值,并为无效的字段发送标志/消息。将其集成到标记中的基本方法如下所示:

<input type="text" value="<?php echo ($validatedPost['email']['isValid']) ? $validatedPost['email']['value']: '' ?>" name="email" />
<?php if ($isPostBack && !$validatedPost['email']['isValid']) : ?>
    <p class="invalid"><?php echo $validatedPost['email']['message']; ?></p>
<?php endif; ?>

关于php - PHP 中的自动返回命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7049892/

相关文章:

php - Try-Catch 未捕获自定义异常类型

php - INSERT INTO 从 HTML 表单和 INSERT FROM 数据库 TABLE

javascript - 动态加载 javascript 文件

html - 创建一个vbs/批处理文件来编辑文本文件并创建一个新的文本文件

html - 如何在 div 上创建不均匀的圆边?

javascript - 获取 Canvas 内的相对触摸坐标

javascript - 发送邮件时$_POST有时为空

php - 参数绑定(bind)必须更安全(PDO)

javascript - 弹出窗口 react 不够灵敏

javascript - 为什么 .html 有效而不是 innerHTML 或 appendChild