Php 在多个页面上回送或携带表单输入信息,然后将数据输入mysql?

Php 在多个页面上回送或携带表单输入信息,然后将数据输入mysql?,php,html,forms,session,Php,Html,Forms,Session,我试图携带或回显用户在表单中输入的信息,用户需要完成3个表单,它们都在不同的页面上,当它们到达第4个页面时,我需要将所有这些信息一起插入mysql数据库 现在我有了我的sql查询,它将数据放入数据库,这将很好地输入数据,但只放入最后一页上的数据/这是用户完成的最后一个表单。 即使我正在使用这些值,用户在早期表单中输入的任何其他信息都不会输入到mysql中 我认为您需要创建一个会话来将数据传送到下一页,因此我尝试这样做,但它不起作用: 第1页/表格1: <?php session_start

我试图携带或回显用户在表单中输入的信息,用户需要完成3个表单,它们都在不同的页面上,当它们到达第4个页面时,我需要将所有这些信息一起插入mysql数据库

现在我有了我的sql查询,它将数据放入数据库,这将很好地输入数据,但只放入最后一页上的数据/这是用户完成的最后一个表单。 即使我正在使用这些值,用户在早期表单中输入的任何其他信息都不会输入到mysql中

我认为您需要创建一个会话来将数据传送到下一页,因此我尝试这样做,但它不起作用:

第1页/表格1:

<?php
session_start();
?>

<form class="" method="post" action="register_p2.php">

                <div class="row first_name">
                    <input type="text" id="first_name" name="first_name" placeholder="First Name" />
                </div>

                <div class="row last_name">
                    <input type="text" id="last_name" name="last_name" placeholder="Last Name" />
                </div>

                <div class="row email">
                    <input type="email" id="email" name="email" placeholder="Email"  />
                </div>

                <input type="submit" value="Next >"  />

            </form>

第2页/表格2:

<?php
session_start();
// other php code here

$_SESSION['first_name'] = $first_name;
$_SESSION['last_name'] = $last_name;
$_SESSION['email'] = $email;
?>

<form name="myForm" method="post" action="register_p3.php" onsubmit="return validateForm()" >

                <div class="row date_of_birth">
                    <input type="text" id="date_of_birth" name="date_of_birth" placeholder="D.O.B 10/02/1990" />
                </div>

                <div class="row number">
                    <input type="text" id="contact_number" name="contact_number" placeholder="Mobile Number" />
                </div>

                <div class="row confirm">
                    <input type="text" id="confirm" name="confirm" placeholder="Are You a UK resident?"  />
                </div>

                <input type="submit" value="Next >"  />

            </form>

第3页/表格3:

    <?php
    session_start();
    // other php code here

    $_SESSION['first_name'] = $first_name;
    $_SESSION['last_name'] = $last_name;
    $_SESSION['email'] = $email;
    $_SESSION['dat_of_birth'] = $date_of_birth;
    $_SESSION['number'] = $number;
    ?>

<form class="" method="post" action="register_p4.php">

                <div class="row date_of_birth">
                    <input type="text" id="display_name" name="display_name" placeholder="Display Name" />
                </div>

                <div class="row password">
                    <input type="password" id="password" name="password" placeholder="Password" />
                </div>

                <div class="row password2">
                    <input type="password" id="password2" name="password2" placeholder="Password (Confirm)"  />
                </div>

                <input type="submit" value="Next >"  />

            </form>

然后在最后一页,我尝试收集所有类似的信息,并将其输入数据库:

<? ob_start(); ?>
<?php
// GET ACCOUNT INFORMATION FROM FORM AND ASSIGN VARIABLES
$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$date_of_birth = $_POST['date_of_birth'];
$contact_number = $_POST['contact_number'];
$display_name = $_POST['display_name'];
$password = $_POST['password'];
?>
<?php
/*
// ECHO ACCOUNT INFORMATION
echo "<strong> Account Information: </strong>";
echo "<br />";
echo First Name: ";
echo "<br />";
echo $first_name;
echo "<br />";
echo "<br />";
echo "Last Name: ";
echo "<br />";
echo $last_name;
echo "<br />";
echo "<br />";
echo "Email: ";
echo "<br />";
echo $email;
echo "<br />";
echo "<br />";
echo "Password: ";
echo "<br />";
echo $password;
echo "<br />";
echo "<br />";
echo "date_of_birth: ";
echo "<br />";
echo $date_of_birth;
echo "<br />";
echo "<br />";
echo "Contact_number: ";
echo "<br />";
echo $contact_number;
echo "<br />";
echo "<br />";
echo "display_name: ";
echo "<br />";
echo $display_name;
echo "<br />";
echo "<br />";
*/
?>


所有表单合并为一个表单

我认为所有这些信息都以一种形式提交没有问题


您现在拥有它的方式意味着(正如您所知道的)您需要跟踪以前提交的内容,并将其保存在会话文件中

如果你把所有东西都放在一种形式上,你就不应该有问题


如果您希望将表单“拆分”到多个页面上,那么您可以使用一些javascript魔术使表单看起来好像在多个页面上,但实际上是一个
元素,仅使用不同的字段集,这些字段集仅在用户访问表单的下一部分时显示。

将所有表单合并到一个表单中

我认为所有这些信息都以一种形式提交没有问题


您现在拥有它的方式意味着(正如您所知道的)您需要跟踪以前提交的内容,并将其保存在会话文件中

如果你把所有东西都放在一种形式上,你就不应该有问题


如果您想将它“拆分”到多个页面上,那么您可以使用一些javascript魔术使其看起来像是在多个页面上,但实际上是一个
元素,只是在用户到达表单的下一部分时才显示不同的字段集。

在第二个页面上,您可以编写

$_SESSION['first_name'] = $first_name;
$_SESSION['last_name'] = $last_name;
由于该页面上没有$first_名称,因此您将不使用任何内容覆盖会话变量。因此,在最后一个页面上,前面页面的会话变量为空是正确的

只存储之前页面的变量,它应该可以工作


另外一点:我真的很希望在sql查询中使用变量之前先对变量进行清理…?

在第二页,您写道

$_SESSION['first_name'] = $first_name;
$_SESSION['last_name'] = $last_name;
由于该页面上没有$first_名称,因此您将不使用任何内容覆盖会话变量。因此,在最后一个页面上,前面页面的会话变量为空是正确的

只存储之前页面的变量,它应该可以工作


另外一点:我真的很希望在sql查询中使用变量之前先对变量进行清理…?

答案是肯定的,但是:

在第2页更改此选项:

<?php
session_start();
// other php code here

$_SESSION['first_name'] = $first_name;
$_SESSION['last_name'] = $last_name;
$_SESSION['email'] = $email;
?>
以此类推,在其他页面上,只需保存$_SESSION['varname']=$_POST['varname'];最后,在你的最后一页: 将其更改为: (更新)



您真的不需要使用$first\u name=$\u SESSION['first\u name'];只需回显$_会话['first_name'];它可以节省内存…

但是,有人回答:

在第2页更改此选项:

<?php
session_start();
// other php code here

$_SESSION['first_name'] = $first_name;
$_SESSION['last_name'] = $last_name;
$_SESSION['email'] = $email;
?>
以此类推,在其他页面上,只需保存$_SESSION['varname']=$_POST['varname'];最后,在你的最后一页: 将其更改为: (更新)



您真的不需要使用$first\u name=$\u SESSION['first\u name'];只需回显$_会话['first_name'];它节省了内存…

我看不出有多个页面的好处。如果我在一页上填写两三件事,我会很不高兴。这是浪费,这并不能回答问题。拆分多个页面可能有完全合理的原因。@KevinBrydon在OP中阅读了明确的案例。不需要多个表单…是的-此表单拆分多个页面是因为UI原因,而不是技术原因。。。最好使用一个表单和一些JavaScript来修饰它(例如expandy/collapsy字段集);只要确保JS能够处理隐藏和显示,这样当脚本被禁用时就不会出现禁用的元素:)@JamesArthur阅读上面CD001所说的内容,您可以使用jQuery(以及一般的javascript)使其看起来像是多页表单,但实际上只是在浏览表单元素时隐藏和显示。我看不到多页的好处。如果我在一页上填写两三件事,我会很不高兴。这是浪费,这并不能回答问题。拆分多个页面可能有完全合理的原因。@KevinBrydon在OP中阅读了明确的案例。不需要多个表单…是的-此表单拆分多个页面是因为UI原因,而不是技术原因。。。最好使用一个表单和一些JavaScript来修饰它(例如expandy/collapsy字段集);只要确保JS处理隐藏和显示,这样在脚本运行时就不会出现禁用的元素
<?php ob_start(); ?>
<?php
session_start();
// GET ACCOUNT INFORMATION FROM FORM AND ASSIGN VARIABLES
$first_name = $_SESSION['first_name'];
$last_name = $_SESSION['last_name'];
$email = $_SESSION['email'];
$date_of_birth = $_SESSION['date_of_birth'];
$contact_number = $_SESSION['contact_number'];
$display_name = $_POST['display_name'];
$password = $_POST['password'];
?>