2014-01-30 102 views
0

HTML:PHP不會發布我的HTML表單

<form method="post" action="create.php"> 
Job #: <input type="text" name="jobnum"> 
<br> 
Program: <input type="text" name="program"><br /> 
Ship Date: <input type="text" name="shipdate"><br /> 
Description: <input type="text" style="height:100px; width:85%" name="description"><br /><br /> 
Proto Verified By: <input type="text" name="name"><br /><br /> 
Additional Notes: <input type="text" style="height:100px; width:85%" name="notes"><br /> 
<input type="submit" name="value" value="submit" /> 
</form> 

PHP:

$savedata = $_REQUEST['savedata']; 
if ($savedata == 1){ 

$data = $_POST['jobnum'] . "\r\n"; 
$data .= $_POST['program'] . "\r\n"; 
$data .= $_POST['description'] . "\r\n"; 
$data .= $_POST['name'] . "\r\n"; 
$data .= $_POST['notes'] . "\r\n"; 

$file = "YOURDATAFILE.txt"; 

$fp = fopen($file, "a") or die("Couldn't open $file for writing!"); 
fwrite($fp, $data) or die("Couldn't write values to file!"); 

fclose($fp); 
echo "Your Form has been Submitted!"; 

} 

我不知道爲什麼我的PHP不會發表自己的狀態。我的提交去了php頁面,但它完全是空白的。我有點新代碼,所以我可能需要一些詳細的答覆...

+0

表單沒有'name'屬性。 – War10ck

+0

該頁面是否爲空白?如果是這樣,你有錯誤,需要打開錯誤報告來看看它們。 –

+0

如果頁面是空白的,用echo寫一個else if($ savedata == 1),看它是否迴應你的文本。如果是這樣,你知道$ savedata不是1! – SaschaP

回答

1

試試這個,你還沒有通過或與savedata名字貼出來,從形式提交按鈕,我已經使用如下

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

,而不是

$savedata = $_REQUEST['savedata']; 
if ($savedata == 1){ 
+0

我做了這個,現在它的顯示:無法打開YOURDATAFILE.txt寫作! –

+0

我需要爲它打開一個空的.txt文件嗎? –

+0

'fopen($ file,「w +」)'你可以添加並嘗試這個!確保你的'YOURDATAFILE.txt'文件具有必要的寫入權限 –

1

您需要一個隱藏的表單字段設置SAVEDATA添加到1,這樣你的if語句將完成:

<input name="savedata" value="1" type="hidden" /> 
+0

一個可能的解決方案。然而,更好的做法是修改PHP,因爲上面的答案建議,而不是增加更多的數據來傳輸線路。無論如何+1 – War10ck

1

表單中沒有savedata命名字段。所以我建議你使用提交按鈕的名稱來檢查表單是否被提交。和isset()用於檢查php中的值。

$savedata = $_REQUEST['value']; 
if (isset($savedata)){ 
    ... 
0

表單中沒有定義savedata元素。

我也建議你在你的代碼中保持一致,使用$ _POST或$ _REQUEST獲取所有元素。另外,將值賦給表單的name屬性。