【问题标题】:return to previous page with form complet表格完成后返回上一页
【发布时间】:2012-04-09 22:50:47
【问题描述】:

基本上我有一个注册表单,当我点击提交按钮时,检查电子邮件是否有效。

但是,如果有错误记录,我会执行 "header (" location: ".$ _SERVER ['HTTP_REFERER']);"转到上一页。 出现这种情况需要在表单中重新全部写入,如何让数据被填写?

【问题讨论】:

    标签: php forms


    【解决方案1】:

    您需要将之前输入的值临时存储在会话中:

    $_SESSION['prevPost'] = $_POST;
    

    然后您可以在加载原始页面时使用它们重新填充表单:

    <?php
        $prevPost = $_SESSION['prevPost'];
    ?>
    <input type="text" name="email" value="<?php echo $prevPost['email']; ?>"/>
    

    【讨论】:

      【解决方案2】:

      如果您提交到显示表单的同一页面,则无需执行重定向。然后使用从帖子传入的数据设置表单元素的value 并重新显示表单。您的数据需要正确转义以防止跨站点脚本攻击等。

      【讨论】:

        【解决方案3】:

        当您绘制表单时,您只需要检查值是否存在。

        $name = '';
        if(!empty($_POST['name']){
            $name =  $_POST['name'];
        }
        
        <input type="text" name="name" value="<?php echo $name?>" />
        

        注意:当适用于遏制 xss 攻击时,您应该对这些值进行 urlencode。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-10-30
          • 2021-08-25
          • 2012-05-02
          • 1970-01-01
          • 2011-11-19
          • 1970-01-01
          • 2012-03-06
          相关资源
          最近更新 更多