Page 1 sur 1

Notification formulaire

Posté : 19 nov. 2011, 19:06
par Sophie13
Bonjour,

Je souhaiterais rajouté une notification lorsqu'il y a une nouvelle inscription :x

J'ai récupérée un code dans un message de ce forum mais je pense que je dois le mettre au mauvais endroit.

Je l'ai mis dans mon fichier qui récupère le <form> et le traite en php

Voici mon code.

Code : Tout sélectionner

mysql_close(); // on ferme la connexion } ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Destinataire du message $to = '[email protected]'; // Sujet du message $subject = 'Inscription !'; // Texte du message $message = " <html> <head> <title>Nouvelle inscription !</title> </head> <body> <p><i>Mail automatique.</i><p>nouvelle inscription posté !! </body> </html> "; // Pour envoyer un mail HTML, l'en-tête Content-type doit être défini $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= 'From: SOPHIE <[email protected]>' . "\r\n"; // Envoi du mail mail($to, $subject, $message, $headers); ?> </body> </html>
bisous bisous

Re: Notification formulaire

Posté : 19 nov. 2011, 20:02
par moogli
salut,

notification ? tu veux dire envoie mail ?

qu'est ce qui ne va pas ?

Tu ne reçois pas le mail ?
Y a un message d'erreur ?

Dans le 1er cas a tu regardée dans le dossier spam de l'adresse email cible ?


@+

Re: Notification formulaire

Posté : 19 nov. 2011, 20:17
par Sophie13
salut,

notification ? tu veux dire envoie mail ?

qu'est ce qui ne va pas ?

Tu ne reçois pas le mail ?
Y a un message d'erreur ?

Dans le 1er cas a tu regardée dans le dossier spam de l'adresse email cible ?


@+
Bonsoir,

merci de t’intéresser à mon problème.

Oui je veux être avertie par un mail lorsqu'il y a une inscription.

Je ne reçois pas de mail, ni dans les SPAM j'ai vérifiée.

Re: Notification formulaire

Posté : 19 nov. 2011, 21:41
par Sophie13
Personne pour m aider?

Re: Notification formulaire

Posté : 19 nov. 2011, 21:57
par xTG
Premièrement cela me semble bizarre de trouver un code tel que celui là en dehors de tout traitement.
Cette page n'est exécuté qu'en cas d'inscription réussie ? Et si l'utilisateur rafraichi la page ? Un second mail est envoyé.

Pour commencer à débugger commences par regarder ce que retourne la fonction mail(). On saura déjà si le mail est transmis au moins jusqu'au serveur smtp de ton hébergeur.

Re: Notification formulaire

Posté : 19 nov. 2011, 22:18
par Sophie13
Bonsoir,
Pour commencer à débugger commences par regarder ce que retourne la fonction mail(). On saura déjà si le mail est transmis au moins jusqu'au serveur smtp de ton hébergeur.
le code mail marche tout seul sur une autre page, c'est lorsque je le copie sur la page qui traite le formulaire afin d'écrire dans la table.
Et si l'utilisateur rafraichi la page ? Un second mail est envoyé.
Oui si il rafraichi la page, mais cette page renvoie directement / automatiquement sur une autre après le traitement du formulaire, donc très peux de chance qu'un autre mail soit renvoyé.

Re: Notification formulaire

Posté : 19 nov. 2011, 22:39
par xTG
Et la redirection elle est faite côté serveur ou client ?
Car si c'est un header() le code du mail a peu de chance d'être exécuté.
Copies nous le code de la page complète.

Re: Notification formulaire

Posté : 20 nov. 2011, 00:20
par laurents
Car si c'est un header() le code du mail a peu de chance d'être exécuté.
Et pourquoi ça ? (La fonction mail n'a pas le tps d'être exécutée ?)

Re: Notification formulaire

Posté : 20 nov. 2011, 00:25
par xTG
Parce que header() est une fonction qui est exécutée à son appel... Lorsque tu fais une addition tu penses que la ligne suivante elle n'a pas encore été prise en compte ? :roll:
C'est une fonction serveur, elle sert (dans le cas d'une utilisation location) à finir la réponse et envoyer la redirection.
C'est donc une fonction a utiliser à la fin.
De plus puisque seule une réponse de redirection est envoyée ton code ne doit pas envoyer d'informations d'affichages tel que le code HTML qu'on peut voir dans ce que tu nous fournis en toute fin.
Si ton niveau d'erreur est bien réglé tu devrais même obtenir des warnings de ce fait...

Pour faire simple, considères le header('Location:...) comme équivalent au return dans une fonction. Tout se qui se trouve après n'est pas exécuté.

Re: Notification formulaire

Posté : 20 nov. 2011, 00:51
par laurents
Pour faire simple, considères le header('Location:...) comme équivalent au return dans une fonction. Tout se qui se trouve après n'est pas exécuté.
Ca, pour moi, c'est clair ; j'imaginais que l'appel à "mail()" était fait avant (mais d'ailleurs, s'il y a une redirection, c'est franchement difficile de faire un refresh...).

Re: Notification formulaire

Posté : 20 nov. 2011, 09:07
par Sophie13
Bonjour,

voila le code ma page entière, j'ai enlever la redirection et mis un lien à la place, mais ça ne change rien

Code : Tout sélectionner

<body> <?php // *** A configurer $to = "[email protected]"; $from = "xxxxxxxx"; // *** Laisser tel quel $jour = date("d-m-Y"); $heure = date("H:i"); $sujet = "Nouvel inscrit - $jour $heure"; $contenu = ""; $contenu .= "<html> \n"; $contenu .= "<head> \n"; $contenu .= "<title> Subject </title> \n"; $contenu .= "</head> \n"; $contenu .= "<body> \n"; $contenu .= "Nouvel inscrit.<br> <b>$sujet </b> <br> \n"; $contenu .= "</body> \n"; $contenu .= "</HTML> \n"; $headers = "MIME-Version: 1.0 \n"; $headers .= "Content-Transfer-Encoding: 8bit \n"; $headers .= "Content-type: text/html; charset=utf-8 \n"; $headers .= "From: $from \n"; // $headers .= "Disposition-Notification-To: $from \n"; // accuse de reception $verif_envoi_mail = TRUE; $verif_envoi_mail = @mail ($to, $sujet, $contenu, $headers); if ($verif_envoi_mail === FALSE) echo " ### Verification Envoi du Mail=$verif_envoi_mail - Erreur envoi mail <br> \n"; else echo " *** Verification Envoi du Mail=$verif_envoi_mail - Mail envoy&eacute; avec succ&egrave;s de $to vers $from <br> avec comme sujet: $sujet \n"; ?> <?php // On commence par récupérer les champs pour mettre dans la base if(isset($_POST['nom'])) $nom=$_POST['nom']; else $nom=""; if(isset($_POST['prenom'])) $prenom=$_POST['prenom']; else $prenom=""; if(isset($_POST['email'])) $email=$_POST['email']; else $email=""; if(isset($_POST['ville'])) $email=$_POST['ville']; else $ville=""; // On vérifie si les champs sont vides if(empty($nom) OR empty($prenom) OR empty($email) OR empty($ville)) { echo '<font color="red">Attention, seul le champs <b>ICQ</b> peut rester vide !</font>'; } // Aucun champ n'est vide, on peut enregistrer dans la table else { // connexion à la base $db = mysql_connect('localhost', 'root', 'root') or die('Erreur de connexion '.mysql_error()); // sélection de la base mysql_select_db('clt',$db) or die('Erreur de selection '.mysql_error()); // on écrit la requête sql $sql = "INSERT INTO T_clients (id, nom, prenom,email) VALUES('','$nom','$prenom','$email')"; // on insère les informations du formulaire dans la table mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error()); // on affiche le résultat pour le visiteur echo 'Votre inscription a été ajoutées.'; mysql_close(); // on ferme la connexion } ?> <p><a href="index.html">Retour accueil</a></p> </body>
voila
bisous bisous

Re: Notification formulaire

Posté : 20 nov. 2011, 10:51
par xTG
Enlèves les @.... Sinon on peut pas débugguer si tu caches les erreurs. ;)

Re: Notification formulaire

Posté : 20 nov. 2011, 12:03
par Sophie13
Enlèves les @.... Sinon on peut pas débugguer si tu caches les erreurs. ;)
J'ai pas compris?