2012-10-10 51 views
4

我正在編寫一個基本網頁,其中一項要求是通過php文件提交輸入的html表單。提交HTML/PHP表單時發生內部服務器錯誤

我已編碼的HTML文件中的以下內容:

<form method="post" action="formsubmit.php" name="Contact Form" id="contactform" enctype="multipart/form-data"> 
     <fieldset> 
      <legend align="center"> 
       Your Details 
      </legend> 

      <p> 
       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

       <label for="fname">First Name: </label> 
       <input type="text" id="fname" required/> 

       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

       <label for="sname">Surname: </label> 
       <input type="text" id="sname" required/> 

       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

       <label for="email">Email Address: </label> 
       <input type="email" id="email" required/> 

       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

       <label for="phone">Phone Number: </label> 
       <input type="tel" id="phone" required/> 
       <br /> 
       <br /> 

      </p> 


     </fieldset> 
       <fieldset> 

      <legend align="center"> 
       Third Parties 
      </legend> 
      <p> 
       <label for="sharedetails">Tick this box if you would like to recieve ticket and event information from our carefully selected third parties.</label> 
       <input type="checkbox" name="sharedetails" value="sharedetailsno" id="sharedetails" /> 
      </p> 
      <p> 
       <input type="submit" value="Submit" /> 
       <input type="reset" value="Clear" /> 

      </p> 
     </fieldset> 
    </form> 

,然後創建以下PHP文件:

<html> 
<head> 
<title>Process Feedback</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
</head> 
<body> 

<?php 
$fname = $_POST["firstname"]; 
$sname = $_POST["surname"]; 
$email = $_POST["email"]; 
$phone = $_POST["phone"]; 

$sharedetails = $_POST["sharedetails"]; 

print "test test $fname $sname $email $phone test test"; 
?> 



</body> 
</html> 

明顯php文件仍處於測試階段,我只希望它返回提交的數據,然後我正確地格式化正確的數據輸出等

但它會一直返回'內部服務器錯誤',每當我提交表單。我已經在網上尋找答案,並找到類似的帖子,但沒有任何幫助我的問題

我在本地系統上運行Apache服務器。 ¿問題可能是一些錯誤配置?

如果我可以將表單數據正確提交給php文件,那麼我可以格式化其餘的html頁面/輸出頁面。

+0

你的HTTP服務器的錯誤日誌應該包含一條消息,說明爲什麼這個腳本運行失敗。 – cdhowie

+0

只是注意到我錯過了「在PHP文件上的字符集,更正 –

+0

你設置了Apache與PHP一起工作嗎?你有一個工作Hello世界的PHP頁面? –

回答

1

您需要將第一頁上的表格name屬性設置爲等於第二頁上的$_POST數組元素。

這應該是你的代碼的第一頁:

<form method="post" action="formsubmit.php" name="Contact Form" id="contactform" enctype="multipart/form-data"> 
     <fieldset> 
      <legend align="center"> 
       Your Details 
      </legend> 

      <p> 
       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

       <label for="fname">First Name: </label> 
       <input type="text" name="fname" id="fname" required/> 

       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

       <label for="sname">Surname: </label> 
       <input type="text" name="sname" id="sname" required/> 

       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

       <label for="email">Email Address: </label> 
       <input type="email" name="email" id="email" required/> 

       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

       <label for="phone">Phone Number: </label> 
       <input type="tel" name="phone" id="phone" required/> 
       <br /> 
       <br /> 

      </p> 


     </fieldset> 
       <fieldset> 

      <legend align="center"> 
       Third Parties 
      </legend> 
      <p> 
       <label for="sharedetails">Tick this box if you would like to recieve ticket and event information from our carefully selected third parties.</label> 
       <input type="checkbox" name="sharedetails" value="sharedetailsno" id="sharedetails" /> 
      </p> 
      <p> 
       <input type="submit" value="Submit" /> 
       <input type="reset" value="Clear" /> 

      </p> 
     </fieldset> 
    </form> 

這應該是代碼formsubmit.php:

<html> 
<head> 
<title>Process Feedback</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
</head> 
<body> 

<?php 
$fname = $_POST["fname"]; 
$sname = $_POST["sname"]; 
$email = $_POST["email"]; 
$phone = $_POST["phone"]; 

$sharedetails = $_POST["sharedetails"]; 

print "test test $fname $sname $email $phone test test"; 
?> 



</body> 
</html> 
0

太多雜亂只使用基本的開始。

您沒有使用IDS正確

$_POST["fname"]; 

,而不是擺脫

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 

: $ _ POST [ 「名字」];

你需要加入你的輸出和回聲他們

echo "test test ".$fname.$sname.$email.$phone."test test"; 
+0

雖然這是很好的建議,OP需要清理他的代碼,但這不會解決OP詢問的服務器錯誤問題。 –

+0

謝謝,我曾用標籤代替ID標籤,現在這是正確的。 生病請嘗試回聲輸出 –

相關問題