Formulaire de contact php

Résolu
Bonjour,

J'ai un bug bizarre lorque je teste mon formulaire contact php:

Mon erreur :

- Parse error: syntax error, unexpected T_IF in C:\wamp\www\monsite\contact.php on line 3

Mon code:
<?php
$_POST['nom']
if(isset($_POST) && isset($_POST['nom']) && isset($_POST['email']) && isset($_POST['message'])){
	extract($_POST);
	if(!empty($nom) && !empty($email) && !empty($message)) {           //line 3
			$message=str_replace("\'","'",$message);
			$destinataire="----@gmail.com";
			$sujet="Garage Roberto";
			$msg="Une nouvelle question \n
			Nom : $nom \n
			Email: $email \n
			Message: $message";
			$entete="From: $nom \n Reply-To: $email";
			mail($destinataire,$sujet,$msg,$entete);
			echo "Le mail a bien été envoyé.";	
	}
	else {
			echo "Vous n'avez pas rempli tous les champs";
	}
}
?>



Merci d'avance

18 réponses

  1. De souvenir les ' ne conviennent pas dans cette utilisation. Il faut assigner au tableau un variable plus classique
    1. Accolade ?
      1. la syntaxe employée est bonne mais il faut pet être mettre des caractères d'échappements \
      2. ??
      3. les ' doivent, de souvenir, être échappés : \' .
    2. Merci pour ta réponse mais je ne comprend pas ce que je dois changer ?
      1. Eh bien par exemple :
        nom=$_POST['nom']
        puis remplace $_POST['nom'] par $nom
        1. voici le code modifié est j'ai toujours la même erreur :

          <?php
          $_POST[$nom]
          if(isset($_POST) && isset($nom) && isset($email) && isset($message])){
          	extract($_POST);
          	if(!empty($nom) && !empty($email) && !empty($message)) {
          			$message=str_replace("\'","'",$message);
          			$destinataire="------@gmail.com";
          			$sujet="Mon site";
          			$msg="Une nouvelle question \n
          			Nom : $nom \n
          			Email: $email \n
          			Message: $message";
          			$entete="From: $nom \n Reply-To: $email";
          			mail($destinataire,$sujet,$msg,$entete);
          			echo "Le mail a bien été envoyé.";	
          	}
          	else {
          			echo "Vous n'avez pas rempli tous les champs";
          	}
          }
          ?>
          
          1. regarde après $message :) (tu as oublié de supprimer un crochet)
            1. je ne l'avais pas vu ;) ta raison mais même sans ce crochet j'ai toujours la même erreur ??
              1. Ou est ce que tu a mis ceci ?
                nom=$_POST['nom']
                mail=$_POST['email']
                message=$_POST['message']
                1. regarde ici il ne manquerait pas une parenthèse if(isset($_POST) && isset($_
                  1. test voir l'ancien code et le nouveau avec cette modif. Si l'ancien marche alors garde le.
                    1. <?php
                      
                      nom=$_POST['nom']
                      mail=$_POST['email'] 
                      message=$_POST['message']
                      $_POST[$nom]
                      if(isset($_POST) && isset($nom) && isset($email) && isset($message)){
                      	extract($_POST);
                      	if(!empty($nom) && !empty($email) && !empty($message)) {
                      			$message=str_replace("\'","'",$message);
                      			$destinataire="-----@live.fr";
                      			$sujet="mon site";
                      			$msg="Une nouvelle question \n
                      			Nom : $nom \n
                      			Email: $email \n
                      			Message: $message";
                      			$entete="From: $nom \n Reply-To: $email";
                      			mail($destinataire,$sujet,$msg,$entete);
                      			echo "Le mail a bien été envoyé.";	
                      	}
                      	else {
                      			echo "Vous n'avez pas rempli tous les champs";
                      	}
                      }
                      ?>
                      
                      1. <?php

                        nom=$_POST['nom']
                        mail=$_POST['email']
                        message=$_POST['message']

                        if( isset($nom) && isset($email) && isset($message)){
                        extract($_POST);
                        if(!empty($nom) && !empty($email) && !empty($message)) {
                        $message=str_replace("\'","'",$message);
                        $destinataire="-----@live.fr";
                        $sujet="mon site";
                        $msg="Une nouvelle question \n
                        Nom : $nom \n
                        Email: $email \n
                        Message: $message";
                        $entete="From: $nom \n Reply-To: $email";
                        mail($destinataire,$sujet,$msg,$entete);
                        echo "Le mail a bien été envoyé.";
                        }
                        else {
                        echo "Vous n'avez pas rempli tous les champs";
                        }
                        }
                        ?>
                        essaye ceci
                        1. Parse error: syntax error, unexpected '=' in C:\wamp\www\monsite\contact.php on line 3
                          1. le problème ne vient pas de là.
                            Essaye ceci
                            <?php
                            $nom = $_POST['nom'];
                            $email = $_POST['email'];
                            $message = $_POST['message'];
                            if( isset($nom) && isset($email) && isset($message))
                            {
                            	extract($_POST);
                            	if(!empty($nom) && !empty($email) && !empty($message)) {           //line 3
                            			$message=str_replace("\'","'",$message);
                            			$destinataire="----@gmail.com";
                            			$sujet="Garage Roberto";
                            			$msg="Une nouvelle question \n
                            			Nom : $nom \n
                            			Email: $email \n
                            			Message: $message";
                            			$entete="From: $nom \n Reply-To: $email";
                            			mail($destinataire,$sujet,$msg,$entete);
                            			echo "Le mail a bien été envoyé.";	
                            	}
                            	else {
                            			echo "Vous n'avez pas rempli tous les champs";
                            	}
                            }
                            ?>
                            1. ça marche merci bcq pour ton aide je t'en suis très très reconnaissant.