2013-06-26 11 views
-2

J'ai un formulaire PHP qui s'exécute sur la page du formulaire de contact. Je l'ai bien fonctionné - mais il vérifie actuellement seulement pour s'assurer que le nom et l'email sont entrés. J'essaye de l'obtenir pour vérifier un message aussi, mais mes tentatives juste cos la page ne pas charger après le php. Voici ce que j'ai:Erreur de validation du formulaire PHP POST

<?php 
$to = "[email protected]" ; 
$from = $_REQUEST['Email'] ; 
$name = $_REQUEST['Name'] ; 
$headers = "From: $from"; 
$subject = "Web Contact Data"; 
$startmonth = $_REQUEST['StartMonth']; 
$startyear = $_REQUEST['StartYear']; 
$endmonth = $_REQUEST['EndMonth']; 
$endyear = $_REQUEST['EndYear']; 
$message = $_REQUEST['Message']; 

$fields = array(); 
$fields{"Name"} = "Name"; 
$fields{"Email"} = "Email"; 
$fields{"Phone"} = "Phone"; 

$selectedProjects = 'None'; 
if(isset($_POST['projects']) && is_array($_POST['projects']) && count($_POST['projects']) > 0){ 
    $selectedProjects = implode(', ', $_POST['projects']); 
} 
$selectedSkills = 'None'; 
if(isset($_POST['skills']) && is_array($_POST['skills']) && count($_POST['skills']) > 0){ 
    $selectedSkills = implode(', ', $_POST['skills']); 
} 
$selectedNoRush = 'None'; 
if(isset($_POST['norush']) && is_array($_POST['norush']) && count($_POST['norush']) > 0){ 
    $NoRush= implode(', ', $_POST['norush']); 
} 
$selectedWhenReady = 'None'; 
if(isset($_POST['whenready']) && is_array($_POST['whenready']) && count($_POST['whenready']) > 0){ 
    $WhenReady= implode(', ', $_POST['whenready']); 
} 
$selectedBudget = 'None'; 
if(isset($_POST['budget']) && is_array($_POST['budget']) && count($_POST['budget']) > 0){ 
    $selectedBudget= implode(', ', $_POST['budget']); 
} 

$body = "We have received the following information:\n\n"; foreach($fields as $a => $b){$body .= sprintf("%20s: %s\n",$b,$_REQUEST[$a]);} 
$body .= "\n" . 'Selected Projects: ' . $selectedProjects . "\n"; 
$body .= 'Selected Skills: ' . $selectedSkills . "\n\n"; 
$body .= 'Start Date: ' . $startmonth . " " . $startyear . " " . $NoRush . "\n"; 
$body .= 'End Date: ' . $endmonth . " " . $endyear . " " . $WhenReady . "\n"; 
$body .= 'Budget: ' . $selectedBudget . "\n\n"; 
$body .= 'Message:' . $message . "\n"; 



$headers2 = "From: [email protected]"; 
$subject2 = "Thank you for contacting us"; 
$autoreply = "Thank you for contacting us. Somebody will get back to you as soon as possible, usually within 48 hours."; 

if($from == '') {print "You have not entered an email, please go back and try again";} 
else { 
if($name == '') {print "You have not entered a name, please go back and try again";} 
else { 
$send = mail($to, $subject, $body, $headers); 
$send2 = mail($from, $subject2, $autoreply, $headers2); 
if($send) 
{print "Thank you. Your request has been successfully submitted.";} 
else 
{print "We encountered an error sending your mail, please check your details are correct or email us at [email protected]"; } 
} 
} 
?> 

Donc avant tout fonctionne très bien, mais quand j'ajouter le code suivant après les contrôles nom/email, il brise:

if($message == '') {print "You have not entered a message, please go back and try again";} 
else { 

Qu'est-ce que je fais mal?

Merci! MC

+0

C'est le style de bracketing plus insolite que je l'ai vu récemment ... –

+0

'il breaks'. De quelle manière cela casse-t-il? Quel message obtenez-vous? Exactement comment votre code regarde avec les lignes incluses (juste montrer les nouvelles lignes et deux lignes avant et après au lieu de seulement les nouvelles lignes) – Arjan

+0

@rr ceci est mon premier aller au code PHP - s'il vous plaît laissez-moi savoir pourquoi c'est inhabituel Je suis en train de reconstituer et il serait vraiment utile de savoir ... – Mike

Répondre

0

Je ne peux pas dire à partir du code que vous avez montré, mais avez-vous fermé le crochet bouclé sur votre autre déclaration?

if($message == '') {print "You have not entered a message, please go back and try again";} 
else {} <---- 
+0

Voilà, je me sens stupide. – Mike

1
if($name == '') 
{ 
    print "You have not entered a name, please go back and try again"; 
} 
else if($message == '') { 
    // do what ever you want 
} 
else { 
    $send = mail($to, $subject, $body, $headers); 
    $send2 = mail($from, $subject2, $autoreply, $headers2); 

.... Reste ici va