Erreur dans le code mais ne trouve pas

Nul_En_PhP
Invité n'ayant pas de compte PHPfrance

20 mai 2011, 10:38

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

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 mai 2011, 10:55

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 ;)

@+
Il en faut peu pour être heureux ......

Nul_en_PhP
Invité n'ayant pas de compte PHPfrance

20 mai 2011, 11:10

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-|

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

20 mai 2011, 11:20

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).

@+
Il en faut peu pour être heureux ......

Nul_en_PhP
Invité n'ayant pas de compte PHPfrance

20 mai 2011, 11:28

Ah d'accord ! Merci pour ta réponse, je vais essayer cette solution ...

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

Eléphanteau du PHP | 15 Messages

26 mai 2011, 18:13

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é."
        }

Agence de communication et de formation aux outils du web marketing http://www.linesoft.fr
Plateforme d'emailing - création de newsletter - gestion de campagnes d' email marketing http://www.emailing-express10.fr
Ressources pour webmaster gratuites ,icones,fichiers vectoriels,psd ... http://www.ressource-web.fr