联系表格php

联系表格php

问题描述:

这让我疯狂,因为我之前有过这种形式,它确实工作,现在我无法使它工作。联系表格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

你需要检查的配置,如果你的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