Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中的自动后退命令_Php_Javascript_Html_Css - Fatal编程技术网

PHP中的自动后退命令

PHP中的自动后退命令,php,javascript,html,css,Php,Javascript,Html,Css,我在我的网站上有一个表格,里面有一系列的方框。单击submit按钮时,它会检查以确保所有部分都与PHP相关。(即如果电子邮件是电子邮件,如果名称没有无效字符等) 在PHP脚本中,如果发生这种情况,它当前会: function died($error) { // your error code can go here header( "refresh:0;url=construction.html" ); echo $error; die(); 现在它刷新页面。因

我在我的网站上有一个表格,里面有一系列的方框。单击submit按钮时,它会检查以确保所有部分都与PHP相关。(即如果电子邮件是电子邮件,如果名称没有无效字符等)

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

function died($error) {
    // your error code can go here
    header( "refresh:0;url=construction.html" );
    echo $error;
    die();
现在它刷新页面。因此,如果你有一件事做错了,它会清除表格。在PHP中是否有一种方法可以让它返回(从而保留填写的表单)

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


谢谢你的帮助

除了通过php在服务器端进行表单验证外,我强烈建议您通过JavaScript在客户端进行表单验证。
试试看。

为此,您需要一个

除了通过php在服务器端进行表单验证之外,我强烈建议您通过JavaScript在客户端进行表单验证。
试试看。

为此,您需要一个

PHP的实现方式如下(使用会话):

希望这能让你更容易理解你的处境


Edit:
别忘了添加
session_start()
construction.php
中,php的实现方式如下(使用会话):

希望这能让你更容易理解你的处境

Edit:
别忘了添加
session_start()
位于
construction.php
的顶部

  • 您所称的“确保相关”被称为验证,是提交表单时的一个正常且必要的步骤

  • 您总是需要服务器端验证(在您的例子中是PHP),这意味着您可以添加客户端验证(Javascript)以提高可用性和速度,但您永远不能因为安全原因而忽略服务器端验证

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

  • 您的函数死了($error)看起来有些奇怪和不必要,验证失败并不是死的理由


  • 你该怎么办

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

    PHP(服务器端) 一个好方法是使用现有的验证类,比如Zend_Validate,甚至Zend_表单。Zend_Form可以非常轻松地将经过验证的post数据反馈到表单,例如
    $Form->populate($data)

    任何其他支持表单的框架或库也会有所帮助。当然,您不需要库,所以您需要了解如何使用原始有效的post数据填充表单。如果这样做,请确保可以将$\u 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),这意味着您可以添加客户端验证(Javascript)以提高可用性和速度,但您永远不能因为安全原因而忽略服务器端验证

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

  • 您的函数死了($error)看起来有些奇怪和不必要,验证失败并不是死的理由


  • 你该怎么办

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

    PHP(服务器端) 一个好方法是使用现有的验证类,比如Zend_Validate,甚至Zend_表单。Zend_Form可以非常轻松地将经过验证的post数据反馈到表单,例如
    $Form->populate($data)

    任何其他支持表单的框架或库也会有所帮助。当然,您不需要库,所以您需要了解如何使用原始有效的post数据填充表单。如果这样做,请确保可以将$\u 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所描述的那样完成此操作。您可以“强制”浏览器返回一页,但不能保证浏览器会记住并保留表单字段值

    解决方案是在验证失败时用用户提交的值填充字段。例如:

    $email = '';
    if( !empty( $_POST[ 'email' ] ) ) {
        $email = $_POST[ 'email' ];
    }
    ?>
        <input type="text" value="<?php echo $email; ?>" name="email" />
    <?php
    if( /* email didn't validate */ ) {
        echo 'Please give a valid email address';
    }
    
    $email='';
    如果(!em
    
    $email = '';
    if( !empty( $_POST[ 'email' ] ) ) {
        $email = $_POST[ 'email' ];
    }
    ?>
        <input type="text" value="<?php echo $email; ?>" name="email" />
    <?php
    if( /* email didn't validate */ ) {
        echo 'Please give a valid email address';
    }