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