Page 1 sur 1

Erreur dans le code mais ne trouve pas

Posté : 20 mai 2011, 10:38
par Nul_En_PhP
Bonjour à tous,

Alors voilà, j'ai suivi un tuto sur le net pour la mise en place d'un formulaire mais je rencontre une erreur dans mon code pourtant je n'ai pas oublié le "}".

Franchement, là je suis vraiment bloquée 8-|

SVP Aidez-moi à trouver cette fichue erreur

Code HTML : sur page Contact.html
<form action="contact.php" method="post">
                Votre nom
                <input name="nom" type="text" style="width:165px;"/>
                Adresse Email
  <input type="text" name="email" id="textfield" style="width:165px;"/>
                Produits
  <input type="text" name="produits" id="textfield" style="width:165px;"/>
  <input name="submit" type="button" value="Envoyer " id="submit" />
              </form>

Code php sur page contact.php
if(isset( $_POST) && isset($_POST['nom']) && isset($_POST['email']) && isset($_POST['produits'])) {
	extract ($_POST);
	if(!empty ($nom) && !empty($email) && !empty($produits)) {
		$produits=str_replace("\'","'",$produits);
		$destinataire="[email protected]";
		$sujet="Demande de brochure";
		$msg="Une nouvelle demande est arrivée de :\n
		Nom : $nom \n
		Email : $email \n
		Produits : $produits";
		$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";
	}
}		

Re: Erreur dans le code mais ne trouve pas

Posté : 20 mai 2011, 10:55
par moogli
salut,


le message d'erreur ne dit qu'il manque une } mais que ligne 15 l'accolade n'est pas la bienvenue :)

pourquoi ? parce que ligne 14 tu a oublié le ; à la fin ;)

quand l'on a un message d'erreur de ce type il faut (les 3/4 du temps) regardé la ligne précédentes :)

le message complet est : Parse error: syntax error, unexpected '}', expecting ',' or ';' in /../contact.php on line 15, pense à le mettre dans ta demande ça facilite la chose ;)

@+

Re: Erreur dans le code mais ne trouve pas

Posté : 20 mai 2011, 11:10
par Nul_en_PhP
Merci, c'était une petite erreur, je ne sais pas comment j'ai pu passer à travers !

Par contre, maintenant que mon code est correct, quand je teste le formulaire sur le bouton envoyer, je ne reçois rien du tout !!!
8-|

Re: Erreur dans le code mais ne trouve pas

Posté : 20 mai 2011, 11:20
par moogli
il faut tester le retour de la fonction mail

par exemple avec
<?php
$r = mail ( );
if ($r === false) {
// php ne peux envoyer le mail
}
else {
// OK pour php
}
?>
Attention cela n'inclus pas que tu va recevoir le mail.
Pourquoi ?
- Il peut être considéré comme du spam par les serveur de mail (vérifie dans les dossier spam de ta boite aux lettres).
- Il peut mettre du temps à arriver (plusieurs heures parfois surtout si considéré comme spam).

@+

Re: Erreur dans le code mais ne trouve pas

Posté : 20 mai 2011, 11:28
par Nul_en_PhP
Ah d'accord ! Merci pour ta réponse, je vais essayer cette solution ...

mais .... ce code là je le met où ? :roll:

Re: Erreur dans le code mais ne trouve pas

Posté : 26 mai 2011, 18:13
par linesoft
Bonjour,

je me permet de répondre à la place de moogli je pense qu'il ne m'en voudra pas .
j'ai intégré le code de moogli dans ton script
ça va effectivement te dire si la fonction mail() arrive déjà à faire partir le mail ou pas ,si la fonction mail() ne renvoi pas d'erreur essai d'envoyer sur une autre adresse voir si ca passe .

if(isset( $_POST) && isset($_POST['nom']) && isset($_POST['email']) && isset($_POST['produits'])) {
        extract ($_POST);
        if(!empty ($nom) && !empty($email) && !empty($produits)) {
                $produits=str_replace("\'","'",$produits);
                $destinataire="[email protected]";
                $sujet="Demande de brochure";
                $msg="Une nouvelle demande est arrivée de :\n
                Nom : $nom \n
                Email : $email \n
                Produits : $produits";
                $entete="From: $nom \n Reply-To: $email";
               $r=mail($destinataire,$sujet,$msg,$entete);

                    if ($r === false) {
                        echo "php ne peux envoyer le mail";
                    }
                    else {
                      echo "OK pour php";
                  }

                echo "Le mail a bien été envoyé."
        }