2015-04-14 50 views
2

简单descibe,我已经3 PHP文件 - form.php的,save.php & confirm.php获取提交的表单值

form.php的是具有一般形式

<form id="form" name="form" method="post" action= 'save.php' ><form> 

save.php是

$sql = "INSERT INTO database (name, age, sex, id) VALUES ('$name', '$age', '$sex', '$id')"; 

我还使用相同的标题页之后重定向节省INSERT命令更新SQL

header('Location: confirm.php'); 

现在我很期待当人们提交表单,数据将保存到SQL &重定向到confirm.php在那里他们可以看到他们提交的数据。

保存后重定向,但我无法弄清楚在confirm.php上获取提交数据的方式,我试图使用$ _SESSION,但页面变得空白。我会很好如果我可以通过提交表格的$id与$ _SESSION confirm.php或someting我可以从confirm.php &调用$id获取数据。请建议如何做到这一点。

+1

SQL注入警报!您可以将值存储在会话中,然后使用标头('Location:confirm.php?x = y')在confirm.php或pass上进行拾取。 – Naruto

+0

在Confirm.php页面上使用选择查询从数据库获取数据。 –

回答

1

通过$ id = mysqli_insert_id()获取插入ID; 并传递标题('Location:confirm.php?id ='。$ id);

并通过此ID获取详细信息。

in confirm.php $ _REQUEST ['id'];

+0

你让我的一天! :-)谢谢,作品像魅力! – user4786885

0

在新的形式,你必须尽早做到这一点。这会获取会话值。

if(!isset($_SESSION)) 
    session_start(); 

要获得$ ID的形式,你必须要么把它作为一个PARAM或将其保存在会话像这样

$_SESSION['id']= $id; 
+0

我以前试过,但我不知道为什么页面每次都变得空白。在同一页面更新SQL,session_start()和调用header()之间是否存在冲突? – user4786885

+0

它适用于其他人。我仍然认为你做得太晚了。会话捕获必须在发送页面标题之前完成。 –

0

我会推荐你​​使用AJAX提交刷新POST后的容器并检索提交的数据。

如果您不想使用JavaScript,那么最好的方法是存储新提交的ID并在检索confirm.php操作时检索它。

+0

感谢您的建议。你的建议的第二部分是好的。 Mohit maru给出了一些解决方案的好作品。 :-) – user4786885