2013-02-13 94 views
1

這讓我瘋狂,因爲我之前有過這種形式,它確實工作,現在我無法使它工作。聯繫表格php

問題是,當我按下「提交」按鈕而不是提交表單時,「ReportIssueForm.php」文件在瀏覽器中作爲txt文件打開,我看到所有代碼。

任何幫助將不勝感激。

下面是HTML代碼來調用PHP文件:

<form name="htmlform" method="post" action="ReportIssueForm.php"> 
<table width="450px"> 
</tr> 
<tr> 
    <td valign="top"> 
    <label for="first_name"><b>First Name *</b></label> 
</td> 
<td valign="top"> 
    <input type="text" name="first_name" maxlength="50" size="30"> 
</td> 
</tr> 

<tr> 
<td valign="top""> 
    <label for="last_name"><b>Last Name *</b></label> 
</td> 
<td valign="top"> 
    <input type="text" name="last_name" maxlength="50" size="30"> 
</td> 
</tr> 
<tr> 
<td valign="top"> 
    <label for="email"><b>Email *<font size='2'></b></label> 
</td> 
<td valign="top"> 
    <input type="text" name="email" maxlength="80" size="30"> 
</td> 

</tr> 
<tr> 
<td valign="top"> 
    <label for="comments"><b>Comments*</b></label> 
</td> 
<td valign="top"> 
    <textarea name="comments" maxlength="1000" cols="25" rows="6"></textarea> 
</td> 

</tr> 
<tr> 
<td colspan="4" style="text-align:center"> 
<br><br> 
<input type="submit" value="Submit"> 
</td> 
</tr> 
</table> 
</form> 

這裏是從PHP文件中的代碼:

<?php 
if(isset($_POST['email'])) { 

// CHANGE THE TWO LINES BELOW 
$email_to = "myemail";  
$email_subject = "Reporting and issue"; 


function died($error) { 
    // your error code can go here 
    echo "We are very sorry, but there were error(s) found with the form you submitted. "; 
    echo "These errors appear below.<br /><br />"; 
    echo $error."<br /><br />"; 
    echo "Please go back and fix these errors.<br /><br />"; 
    die(); 
} 

// validation expected data exists 
if(!isset($_POST['first_name']) || 
    !isset($_POST['last_name']) || 
    !isset($_POST['email']) || 
    !isset($_POST['comments'])) { 
    died('We are sorry, but there appears to be a problem with the form you submitted.');  
} 

$first_name = $_POST['first_name']; // required 
$last_name = $_POST['last_name']; // required 
$email_from = $_POST['email']; // required 
$comments = $_POST['comments']; // required 

$error_message = ""; 

$email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; 
    if(!preg_match($email_exp,$email_from)) { 
$error_message .= 'The Email Address you entered does not appear to be valid.<br />'; 
    } 
    $string_exp = "/^[A-Za-z .'-]+$/"; 
    if(!preg_match($string_exp,$first_name)) { 
    $error_message .= 'The First Name you entered does not appear to be valid.<br />'; 
    } 
    if(!preg_match($string_exp,$last_name)) { 
$error_message .= 'The Last Name you entered does not appear to be valid.<br />'; 
    } 
    if(strlen($comments) < 2) { 
$error_message .= 'The Comments you entered do not appear to be valid.<br />'; 
} 
    if(strlen($error_message) > 0) { 
    died($error_message); 
    } 
    $email_message = "Form details below.\n\n"; 

function clean_string($string) { 
    $bad = array("content-type","bcc:","to:","cc:","href"); 
    return str_replace($bad,"",$string); 
} 

$email_message .= "First Name: ".clean_string($first_name)."\n"; 
$email_message .= "Last Name: ".clean_string($last_name)."\n"; 
$email_message .= "Email: ".clean_string($email_from)."\n"; 
$email_message .= "Comments: ".clean_string($comments)."\n"; 


// create email headers 
$headers = 'From: '.$email_from."\r\n". 
'Reply-To: '.$email_from."\r\n" . 
'X-Mailer: PHP/' . phpversion(); 
@mail($email_to, $email_subject, $email_message, $headers); 
?> 

<!-- place your own success html below --> 

Thank you for Reporting an issue. We will look into it and try to solve it as soon as possible.<br><br> 


<?php 
} 
die(); 
?> 
+0

首先,做你在系統上安裝了php?其次,PHP是否配置了Web服務器來解釋頁面? – Jon 2013-02-13 04:34:46

+0

你確定你正在運行服務器中的代碼...?你需要在Windows中安裝像WAMP這樣的服務器..... – 2013-02-13 04:36:52

回答

0

你需要檢查的配置,如果你的Web服務器正確配置將.php文件請求路由到PHP引擎。

在這種情況下,似乎Web服務器可能沒有正確配置。

如果您正在使用Apache作爲Web服務器,確保低於2行取消註釋在httpd.conf(Apache配置FLE)

LoadModule phpX_module "d:/wamp/bin/php/phpXXX/php5apacheXX.dll" 
AddType application/x-httpd-php .php 

其中X是指PHP版本

+0

我只是想在我的電腦上運行它來測試它,看它是否工作,但不是執行php文件,而是將文件作爲代碼或測試文件打開我看到了代碼。 – user1908030 2013-02-13 05:01:21

+0

您是否試圖通過網絡服務器來運行它,意味着URL有http:// localhost/...或者只是在瀏覽器的目錄路徑中打開HTML文件。確保你已經安裝了PHP,並且安裝了一些web服務器(apache),並通過web服務器運行腳本。 – Minesh 2013-02-13 05:03:40

+0

我只是想打開HTML文件並按下我的電腦中的提交按鈕。我沒有安裝Apache。 php文件與我的HTML文件位於同一個目錄中。 – user1908030 2013-02-13 05:09:40