Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.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_Html - Fatal编程技术网

Php 多步骤表单提交,摆脱';重新提交表格';浏览器的对话

Php 多步骤表单提交,摆脱';重新提交表格';浏览器的对话,php,html,Php,Html,假设我有两份表格,将一步一步提交。在第一页,我有 第1页: <form action='page2.php' method='post'> <input type='email' name='email'> <input type='submit' name='submit' value='Submit'> </form> 第2页:在这个页面中,我将检查我的网站上是否有电子邮件。如果可用,则会显示电子邮件,并询问用户的电话号码

假设我有两份表格,将一步一步提交。在第一页,我有

第1页:

<form action='page2.php' method='post'>
    <input type='email' name='email'>
    <input type='submit' name='submit' value='Submit'>
</form>

第2页:在这个页面中,我将检查我的网站上是否有电子邮件。如果可用,则会显示电子邮件,并询问用户的电话号码

if(isset($_POST['submit'])){

    echo $_POST['email'];
    ?>

<form action='page3.php' method='post'>
    <input type='number' name='number'>
    <input type='submit' name='submit' value='Submit'>
</form>

    <?php

}
if(isset($\u POST['submit'])){
echo$_POST[“电子邮件”];
?>
试试这个:

Page1.php

<?php
    session_start();
    if(isset($_POST['submit'])){
        $_SESSION['email'] = $_POST['email'];
        header('Location:page2.php');
        exit;
    }
?>

<form action='' method='post'>
    <input type='email' name='email'>
    <input type='submit' name='submit' value='Submit'>
</form>


这将删除“第2页”中的“表单重新提交”,同时保留电子邮件

我从未手动执行此操作,通常框架会为您执行此操作。如果我没有弄错,您提交的数据将保存在会话中,而不是$\u POST中(刷新页面不会要求您以这种方式重新提交)如果我给出错误的指示,请纠正我,这可能有安全缺陷如果你的唯一目标是在客户给你他的电子邮件地址的情况下询问电话号码,那么就不需要有两个表单或两个页面。为什么不使用ajax?在查询中检查电子邮件是否存在,请使用
$\u会话['email']
我没有去查看任何东西,我只是在“重新提交表单”上写了地址,而不是
$\u POST['email']
@JapanGuyissueoh是的,我在我的评论中提到了OP。但是我能问你如何让它更安全吗?我想知道我自己。在跳过特殊字符、htmlentities、引号和其他东西之后,在你完成所有检查之后,只需分配像
$\u SESSION[“var”]=$\u POST[“var”]
足够安全吗?@japangy哦,对不起,我以为你指的是我。为了会话的安全,请检查。尽量不要将重要数据存储到会话中