2012-11-09 4 views
0

Je ne peux pas obtenir la valeur de la case à cocher, le destinataire (administrateur ou éditeur de contenu), pour l'afficher affiche "Array" ou "A". En outre, la page redirige automatiquement sans que le formulaire n'apparaisse pour la première fois. Comment puis-je rectifier cela? Voici mon code:Problèmes avec mon formulaire PHP

contact.php

<?php 
    $errnam = ""; 
    $errmail = ""; 
    $errsub = ""; 
    $errrec = ""; 
    $hasErrors = false; 

    if(isset ($_POST['submitted'])){ 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $subject = $_POST['subject']; 
    $recipient = $_POST['recipient']; 
    $message = $_POST['message']; 



      if(preg_match("/^[\w\-'\s]/", $_POST['name'])){ 
       $name = $_POST['name']; 
      } 
      else{ 
       $errnam ='<strong>Please enter a name.</strong>'; 
       $hasErrors = true; 
      } 

      if (preg_match("/^[\w.-_][email protected][\w.-]+[A-Za-z]{2,6}$/i", $email)){ 
       $email = $_POST['email']; 

      } 
      else{ 
       $errmail = '<strong>Please enter a valid email.</strong>'; 
       $hasErrors = true; 
      } 


      if(preg_match("/^[\w\-'\s]/", $_POST['subject'])){ 
       $subject = $_POST['subject']; 

      } 
      else{ 
       $errsub = "<strong>Please enter a subject.</strong>"; 
       $hasErrors = true; 
      } 

      if (!empty($_POST['recipient'])) { 
      for ($i=0; $i < count($_POST['recipient']);$i++) { 
       $recipient = $_POST['recipient']; 
        } 
      }else{ 
      $errrec = "<strong>Please select a recipient</strong>"; 
      $hasErrors = true; 
      } 
       $message = $_POST['message']; 
    } 

    if ($hasErrors){ 
     echo "<strong>Error! Please fix the errors as stated.</strong>"; 
    }else{ 
     header("Location: form.php?name=".$name."&email=".$email."&subject=".$subject. "&recipient=".$recipient. "&message=".$message); 

    exit(); 

} 
?> 

form.php

<?php 
$name = $_GET['name']; 
$email = $_GET['email']; 
$subject = $_GET['subject']; 
$recipient = $_GET['recipient']; 
$message = $_GET['message']; 

echo "<h2>Thank You</h2>"; 
echo "<p>Thank you for your submission. Here is a copy of the details that you have sent.</p>"; 
echo "<strong>Your Name:</strong> ".$name. "<br />"; 
echo "<strong>Your Email:</strong> ".$email. "<br />"; 
echo "<strong>Subject:</strong> ".$subject. "<br />"; 
echo "<strong>Recipient:</strong>" .$recipient. "<br />"; 
echo "<strong>Message:</strong> <br /> " .$message; 
?> 

Répondre

0

vous avez la redirection en dehors de la principale instruction if, il suffit de déplacer à l'intérieur.

De plus, vous n'accédez pas au bon paramètre dans le tableau si vous obtenez "Array".

  for ($i=0; $i < count($_POST['recipient']);$i++) { 
      $recipient = $_POST['recipient'][$i]; 
       } 

vous devrez changer votre fonction

+0

C'est tout ce que j'ai. J'ai eu beaucoup de problèmes avec la case à cocher car elle est différente de l'autre à partir des éléments. – user1811235

+0

Merci. Je n'ai toujours pas compris comment je suis censé accéder aux bons paramètres car il ne contient aucune erreur maintenant. – user1811235