2015-04-14 91 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