2010-08-31 181 views
2

我是PHP的新手..我正在更新一些朋友的網站。PHP代碼錯誤

我以爲我正確添加了代碼,但是當我點擊從HTML表單提交時,我基本上都會顯示所有的PHP代碼。 (當正常工作時,它被重定向到另一頁)。

這裏是我的代碼:

<?php 
// Website Contact Form Generator 
// http://www.tele-pro.co.uk/scripts/contact_form/ 
// This script is free to use as long as you 
// retain the credit link 

// get posted data into local variables 
$EmailFrom = Trim(stripslashes($_POST['EmailFrom'])); 
$EmailTo = "EMAILREMOVED"; 
$Subject = "Volunteer Form"; 
$Name = Trim(stripslashes($_POST['Name'])); 
$Telephone = Trim(stripslashes($_POST['Telephone'])); 
$Shift = Trim(stripslashes($_POST['Shift'])); 

// validation 
$validationOK=true; 
if (Trim($EmailFrom)=="") $validationOK=false; 
if (Trim($Name)=="") $validationOK=false; 
if (Trim($Telephone)=="") $validationOK=false; 
if (Trim($Shift1)=="" && Trim($Shift2)=="" && Trim($Shift3)=="" && Trim($Shift4)=="" && Trim($Shift5)=="" && Trim($Shift6)=="" && Trim($Shift7)=="" && Trim($Shift8)=="") $validationOK=false; 
if (!$validationOK) { 
    print "<meta http-equiv=\"refresh\" content=\"0;URL=volunteer-error.html\">"; 
    exit; 
} 

// set Shift Time 
if ($Shift1!="") $time1="8:30am-9:45am, "; 
if ($Shift2!="") $time2="10:00am-11:15am, "; 
if ($Shift3!="") $time3="11:30am-12:45pm, "; 
if ($Shift4!="") $time4="1:00pm-2:15pm, "; 
if ($Shift5!="") $time5="2:30pm-3:45pm, "; 
if ($Shift6!="") $time6="4:00pm-5:15pm, "; 
if ($Shift7!="") $time7="5:30pm-6:45pm, "; 
if ($Shift8!="") $time8="7:00pm-8:00pm"; 

// prepare email body text 
$Body = ""; 
$Body .= "Name: "; 
$Body .= $Name; 
$Body .= "\n"; 
$Body .= "Email: "; 
$Body .= $EmailFrom; 
$Body .= "\n"; 
$Body .= "Telephone: "; 
$Body .= $Telephone; 
$Body .= "\n"; 
$Body .= "Shift: "; 
if (Trim($Shift1)!="") $Body .= $time1; 
if (Trim($Shift2)!="") $Body .= $time2; 
if (Trim($Shift3)!="") $Body .= $time3; 
if (Trim($Shift4)!="") $Body .= $time4; 
if (Trim($Shift5)!="") $Body .= $time5; 
if (Trim($Shift6)!="") $Body .= $time6; 
if (Trim($Shift7)!="") $Body .= $time7; 
if (Trim($Shift8)!="") $Body .= $time8; 
$Body .= "\n"; 

// send email 
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>"); 

// redirect to success page 
if ($success){ 
    print "<meta http-equiv=\"refresh\" content=\"0;URL=volunteer-success.html\">"; 
} 
else{ 
    print "<meta http-equiv=\"refresh\" content=\"0;URL=volunteer-error.html\">"; 
} 
?> 

編輯:這裏是html代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<link href="images/favicon.ico" rel="shortcut icon" type="image/x-icon"> 
<link href="CSS/borders.css" rel="stylesheet" type="text/css" /> 
<title>Volunteer Signup Form</title> 

<style type="text/css"> 
body 
{ 
font-family: Verdana, Arial, Helvetica, sans-serif; 
font-size: 11px; 
} 
</style> 

</head> 

<body> 

<table width="100%" border="0" cellpadding="0" cellspacing="0" class="signup"> 
    <tr> 
    <td>&nbsp;</td> 
    <td>&nbsp;</td> 
    </tr> 
    <tr> 
    <td>&nbsp;</td> 
    <td height="18" valign="top"><strong>Volunteer Signup Form</strong></td> 
    </tr> 
    <tr> 
    <td width="35">&nbsp;</td> 
    <td height="307" valign="top"> 
    <form method="POST" action="contact.php"> 
    Name: <br /> 
<input type="text" name="Name"><br /><br /> 
Email: <br /> 
<input type="text" name="EmailFrom"><br /><br /> 
Telephone Number:<br /> 
<input type="text" name="Telephone"><br /><br /> 
Shift(s):<br /> 
<label><input name="Shift1" type="checkbox" id="shiftid" value="1" /> 8:30am - 9:45am</label><br /> 
<label><input name="Shift2" type="checkbox" id="shiftid" value="1" /> 10:00am - 11:15am</label><br /> 
<label><input name="Shift3" type="checkbox" id="shiftid" value="1" /> 11:30am - 12:45pm</label><br /> 
<label><input name="Shift4" type="checkbox" id="shiftid" value="1" /> 1:00pm - 2:15pm</label><br /> 
<label><input name="Shift5" type="checkbox" id="shiftid" value="1" /> 2:30pm - 3:45pm</label><br /> 

<label><input name="Shift6" type="checkbox" id="shiftid" value="1" /> 4:00pm - 5:15pm</label><br /> 
<label><input name="Shift7" type="checkbox" id="shiftid" value="1" /> 5:30pm - 6:45pm</label><br /> 
<label><input name="Shift8" type="checkbox" id="shiftid" value="1" /> 7:00pm - 8:00pm</label><br /> 

<br /> 

<table width="100%" border="0" cellspacing="0" cellpadding="0"> 
    <tr> 
    <td width="140" align="center"><input type="submit" name="submit" value="Submit" /></td> 
    <td>&nbsp;</td> 
    </tr> 
</table> 

</form> </td> 
    </tr> 
</table> 

</body> 
</html> 

改變我做: 我補充說,涉及到Shift6,Shift7所有代碼, Shift8。

我覺得這將是完全相同的代碼換班1-5 ..所以我只是複製和粘貼的代碼。

這裏有什麼錯誤?

注意:電子郵件地址已從代碼中刪除,原因很明顯;)如果需要測試,請使用有效地址填寫。

謝謝!

+0

您確定該文件是以'.php'擴展名而不是'.html'保存的。 – shamittomar 2010-08-31 04:54:08

+0

如果它沒有你的修改,你可以運行一個'diff',看看有什麼不同。 – 2010-08-31 05:14:52

回答

1

PHP文件是否位於啓用PHP的Web服務器上?通常當你看到代碼時,這意味着服務器沒有解釋文件。

+0

如果我運行非編輯的代碼,它工作正常..一旦我做了更改..它不。這就是爲什麼我認爲我添加了一個錯誤。 – developer 2010-08-31 05:03:32

+0

編輯您的原始文章幷包含html代碼,我會嘗試一下。 – JMC 2010-08-31 05:07:41

+0

@acidjazz:謝謝:) – developer 2010-08-31 05:13:32

0

如果您的代碼最終在瀏覽器中而不是被解釋 - 這意味着通常是服務器配置錯誤。正確配置的服務器永遠不會發送php代碼。

一個可能的原因可能是文件名不以.php結尾(所以服務器不知道它必須這樣對待它)。

如果文件名是好的,你應該確保服務器支持PHP。

+0

可能只是一個黑暗中的鏡頭:你確定關於文件擴展名 - 我的意思是你有沒有選中「在W​​inExplorer選項中隱藏已知文件類型的擴展名」?如果你在記事本中編輯代碼,它可以靜靜地將文件保存爲file.php.txt並隱藏最終的.txt文件。這樣的文件不會被服務器解釋,因此請確保您將file.php保存爲「所有文件」,而不是「文本文檔」。 – djn 2010-08-31 13:56:23