2012-02-07 74 views
0

這是我的提交按鈕代碼。一旦數據提交給MySQL我希望它重定向到page.html。單擊提交按鈕後表單上的標題(位置)不起作用

<form name="gender."; action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" > 

我已經加入

 <?php 
     header("location:page.html");  
    exit; } 
<? 

到我的表單頁面的最頂端。但是,點擊提交按鈕後,它只是加載page.html而非加載。

+0

另外,表單標籤中的分號是什麼? – 2012-02-07 01:58:02

+0

對不起,錯過打字 – Jacob 2012-02-07 02:04:59

回答

1

1)請勿使用PHP_SELF,否則容易被人利用。如果您希望該操作成爲同一頁面,請將其保留爲空。

2)header(),我認爲它是在頁面的頂部,因爲它的工作原理,沒有控制它。

EDIT1:根據下面評論中的問題展開。

3)header()指令將瀏覽器轉到新頁面並停止進一步處理。因此,所有的MySQL處理都應在重定向之前完成。

4)$_POST陣列從輸入端的name屬性得到鍵名,因此請確保您的<input type="submit" name="submitbtn" ...匹配的$_POST['submitbtn']

<?php 
if(isset($_POST['submit'])){ 
    // MySQL stuff goes here 
    header("Location: page.html"); 
    exit; 
} 
?> 
+0

好的我改變了

....我將腳本添加到頁面的頂部,沒有空格。結果:頁面加載了表單,但是在提交時它沒有提交到mysql,也沒有進入page.html。 :s – Jacob 2012-02-07 02:02:04

+0

因爲您需要向我們展示您對帖子數據的處理方式。你能更新你的問題與您的PHP後處理的整個內容? – 2012-02-07 02:06:31

+0

爲什麼在你的表單標籤中有';'?或者在name屬性中有'.'?無論如何,MySQL的東西需要在if(isset(...)和'header()'之間,如果你想正確處理的話。至於爲什麼它沒有重定向,submit按鈕應該是如下:''或類似的東西。重要的部分是'name =「submit」',它被髮送到'$ _POST'作爲密鑰名稱。 – Grexis 2012-02-07 02:08:16

0

你必須添加的條件之前頭檢查數據是否提交。 如:

if(isset($_POST['btnname']) 
{header("location:page.html"); 
exit; // this is unnecessary 
} 

另外,如果你要使用的提交表單,你需要將它張貼在page.php文件。 ,因爲此代碼將在不保存表單數據的任何地方的情況下重定向頁面。

0

我的主要疑慮是,您的PHP設置爲壓制警告和錯誤。在php.ini文件中打開它們,看看該消息是什麼。

多半會說沿着像線的東西「因爲已經在線路輸出某某HTML頭不能被髮送......」

的PHP聽到功能不能正常工作,如果有任何輸出已從頁面迴應。

0
<?php 
ob_start(); 
error_reporting(E_ALL & ~E_NOTICE); 

if(isset($_POST['button'])){ 

    header('Location:page.html'); 
    exit; 

} 



?> 

你能修改代碼嗎?