2010-08-31 3 views
2

Je suis nouveau à PHP .. Je suis mise à jour quelques choses pour le site d'un ami.erreurs de code PHP

Je pensais avoir ajouté le code correctement, mais lorsque je clique sur "soumettre" depuis le formulaire html, je récupère tout le code PHP. (Lorsque vous travaillez correctement, il est redirigé vers une autre page).

Voici le code que j'ai:

<?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\">"; 
} 
?> 

EDIT: Voici le code 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> 

changements que je fait: J'ai ajouté tout le code qui se rapporte à Shift6, Shift7, Shift8. Je pensais que ce serait exactement le même que le code pour les changements 1-5 .. donc je viens de copier et coller le code.

Quelles pourraient être les erreurs ici?

Remarque: L'adresse e-mail a été supprimée du code fourni pour des raisons évidentes;) Si vous devez tester, remplissez-le avec une adresse valide.

Merci!

+0

Etes-vous sûr que le fichier est enregistré avec l'extension '.php' et non' .html'. – shamittomar

+0

Si cela fonctionne sans vos changements, lancez un 'diff' et regardez exactement ce qui est différent. –

Répondre

1

Le fichier php réside-t-il sur un serveur Web compatible php? Généralement, lorsque vous voyez du code, cela signifie que le serveur n'interprète pas le fichier.

+0

Si je cours le code non-édité, cela fonctionne bien ... une fois que je fais les changements ... ce n'est pas le cas. C'est pourquoi j'ai pensé qu'il y avait une erreur avec ce que j'ai ajouté. – developer

+0

Modifier votre message d'origine et inclure le code HTML et je vais l'essayer. – JMC

+0

@acidjazz: merci :) – developer

0

Si votre code se retrouve dans le navigateur au lieu d'être interprété, cela signifie généralement une mauvaise configuration du serveur. Un serveur correctement configuré ne devrait jamais envoyer de code PHP.

Une cause possible pourrait être que le nom de fichier ne se termine pas par .php (donc le serveur ne sait pas qu'il doit le traiter comme tel).

Si le nom de fichier est OK, vous devez vous assurer que le serveur prend en charge PHP.

+0

Peut-être juste un coup dans le noir: êtes-vous sûr de l'extension de fichier - je veux dire avez-vous décoché «cacher les extensions pour les types de fichiers connus» dans les options WinExplorer? Si vous modifiez le code dans le bloc-notes, il peut enregistrer silencieusement la chose sous le nom file.php.txt et masquer le fichier .txt final. Un tel fichier ne sera pas interprété par le serveur, alors assurez-vous que vous enregistrez fichier.php comme 'Tous les fichiers', pas 'Document texte'. – djn