我已经建立了一个数据库,并通过PHP中的$ _POST将表单数据提交给它,我也设置了我的页面,并从数据库中提取字段并显示它们。我知道不是火箭科学。
但是我现在要做的是在表单提交和数据库插入之间放置一个页面,以便用户有机会检查他们的输入。
我已创建此页面并使用$ _POST数据显示表单中的数据(因为它尚未输入到数据库中),但是我想知道如果用户批准提交,我会如何将其插入数据库。 (我已经尝试按下提交按钮从$ _POST数据运行INSERT查询,但是因为(我假设)我已经中断了原始表单提交和INSERT查询之间的流程,所以我得到的是无法识别的错误列表变量
所以我所拥有的是这个过程:
form.php / user使用$ _POST
输入信息preview.php / user是使用$ _POST预览的信息,会话代码开始(下面)
submit.php / MySql查询运行但返回未定义索引的所有错误
这是我的会话开始代码:
session_start();
if (isset($_POST['preview'])) {
$_SESSION['company_name'] = $_POST['company_name'];
etc etc - remaining form field names
}
答案 0 :(得分:1)
POST数据不会自动传递到其他页面。将提交的数据保存在会话中并在确认页面之后从那里读取,或者使用<input type="hidden">
元素将所有数据插回到页面中,以便可以将它们重新提交为POST。 / p>
使用会话的过程的简单说明:
form.php的
<form action="confirm.php" ...>
...
</form>
confirm.php
<?php
session_start();
$_SESSION['data'] = $_POST;
?>
Please confirm:
Name: <?php echo htmlspecialchars($_POST['name']); ?>
...
<a href="save.php">Confirm</a>
save.php
<?php
session_start();
$data = $_SESSION['data'];
// save $data to database
答案 1 :(得分:0)
您应该使用3种模式
快速简单的方法就是使用GET参数或隐藏字段来说明表单的最后状态。第一次将其设置显示为DISPLAY
。表单提交后,您的脚本会查看该字段,知道DISPLAY
到达后VERIFY
,并显示验证页面。用户提交,脚本查看该字段,知道在验证后插入数据库,并且您预先形成相关查询。
之前不确定你是怎么做的,但我认为你是重定向或只是让用户点击一个链接,这会丢失所有$ _POST数据
答案 2 :(得分:0)
除非我误解你在说什么/做什么,否则我会做这样的事情:
当用户点击“保存”(或其他)按钮时,劫持该点击事件并使用表单数据进行预览业务。当他们点击“确认”时,将数据发送到服务器并将其保存到数据库。
同样,我不是百分百确定这是否有效,但也许这是一个开始的地方。
祝你好运!