[RESOLU] Formulaire d'adhesion

PolyC
Invité n'ayant pas de compte PHPfrance

31 janv. 2011, 14:36

Bonjour,

Je cherche a faire un formulaire d'adhésion à une association qui lorsqu'on a fini de remplir les champs, cela envoie un mail à une boite bien précise pour récupérer les informations. Pour ce faire j'ai deux fichiers:

index.html
<form action="mail.php" method="post" name="formulaire">
			<h3>Informations Personnelles</h3><br /><br />

Nom: <input id="nom" name="nom" type="text" maxlength="255" value=""/> <br />
Prenom: <input id="prenom" name="prenom" type="text" maxlength="255" value=""/> <br />
Date de Naissance: <input id="naissance" name="naissance" type="text" maxlength="255" value=""/> <br />

			<h3>Coordonnes</h3><br /><br />
Email: <input id="email" name="email" type="text" maxlength="255" value=""/> <br />
Ville: <input id="ville" name="ville" type="text" maxlength="255" value=""/> <br />
Adresse: <input id="adresse" name="adresse" type="text" maxlength="255" value=""/> <br />
Code Postale: <input id="postale" name="postale" type="text" maxlength="255" value=""/> <br />
N° Fixe: <input id="fixe" name="fixe" type="text" maxlength="255" value=""/> <br />
N° Portable: <input id="portable" name="portable" type="text" maxlength="255" value=""/> <br />

			<h3>Informations Complémentaires</h3><br /><br />
Nom de votre établissement scolaire: <input id="scolaire" name="scolaire" type="text" maxlength="255" value=""/> <br />
Moyen de payement: <select id="payement" name="payement">
            <option value="paypal" selected="selected">Paypal</option>
            <option value="cheque" >Cheque</option
        ></select>
<br />

<input type="submit" name="valider" value="Valider" />
</form>
et mail.php
<?php
$nom = $_POST['nom']; 
$prenom = $_POST['prenom']; 
$email = $_POST['email']; 
$ville = $_POST['ville']; 
$adresse = $_POST['adresse']; 
$postale = $_POST['postale']; 
$fixe = $_POST['fixe']; 
$portable = $_POST['portable']; 
$to = '[email protected]';
$sujet ='ADHESION RVL';
$msg="Email d'adhesion/readhesion a Radio VL:\n
Nom: $nom \n
Prenom: $prenom \n
Email: $email \n
Ville: $ville \n
Adresse: $adresse \n
Code Postale: $postale \n
Telephone Fixe: $fixe \n
Telephone Portable: $portable \n";
 
/* En-têtes de l'e-mail */
$headers = 'From: '.$nom.' <'.$email.'>'."\r\n\r\n";
 
/* Envoi de l'e-mail */
mail($to, $sujet, $msg, $headers);
?>
Cependant mon script ne fonctionne pas, pourriez-vous m'aider en me disant ou sont mes erreurs.

Merci d'avance,
Cordialement Cyprien

Mammouth du PHP | 672 Messages

31 janv. 2011, 14:50

(...)
Cependant mon script ne fonctionne pas, pourriez-vous m'aider en me disant ou sont mes erreurs.

Merci d'avance,
Cordialement Cyprien
Bonjour.

mon script ne fonctionne pas, c'est un peu court...
Que se passe-t-il au juste ?
Messages d'erreurs ?
Le script fonctionne mais ne produit pas le résultat ?


PS : tu devrais éditer ton message pour enlever ton adresser mail :wink:

Petit nouveau ! | 3 Messages

31 janv. 2011, 15:28

Et viens j'ai envoyé le message sans m'être inscrit donc je ne peux pas l'éditer. Est-ce qu'un administrateur pourrait enlever mon email s'il vous plait ?

Et bien je ne reçoit pas de mail. Donc je suppose que ca ne fonctionne, par contre je n'ai pas de message d'erreur.

Cordialement Cyprien

ViPHP
xTG
ViPHP | 7331 Messages

31 janv. 2011, 16:55

Est-ce que le serveur smtp est renseigné dans le php.ini ?
Ce n'est pas le cas si tu testes en local.

ViPHP
ViPHP | 2577 Messages

31 janv. 2011, 17:17

Bonjour,

La fonction mail
Retourne TRUE si le mail a été accepté pour livraison, FALSE sinon.
Il est important de noter que ce n'est pas parce que le mail a été accepté pour livraison qu'il arrivera à destination.
Il faut donc faire
if (!mail(...)) echo 'erreur envoi mail';

Je te conseil de faire abstraction de $header() tant que tu ne recois pas le mail. C'est un réglage à faire plus tard.
Pour commencer, fait uniquement
if (!mail('ton adresse','sujet','contenu')) {
echo 'erreur envoi mail';
} else {
echo 'envoi mail ok';
}

Petit nouveau ! | 3 Messages

31 janv. 2011, 20:03

Je remplace donc par:
if (!mail($to,$sujet,$msg)) {
echo 'erreur envoi mail';
} else {
echo 'envoi mail ok';
}
Avec ce code la j'ai: "envoi mail ok "
Cette fois si j'ai bien reçu le mail. Cependant j'ai comme expéditeur le nom de mon hébergeur. Est-ce normal?
Retourne TRUE si le mail a été accepté pour livraison, FALSE sinon.
Il est important de noter que ce n'est pas parce que le mail a été accepté pour livraison qu'il arrivera à destination.
Je ne comprend pas bien ce que cela signifie...

Merci d'avance

ViPHP
xTG
ViPHP | 7331 Messages

31 janv. 2011, 20:08

En clair : La fonction revoie TRUE si PHP a délivré le mail au serveur SMTP, et sinon false. ;)
C'est le serveur SMTP qui envoie le mail et non PHP. Donc la fonction peut retourner TRUE mais le serveur SMTP peut avoir une erreur et ne pas envoyer l'email.

Petit nouveau ! | 3 Messages

31 janv. 2011, 20:48

Merci beaucoup.

Donc problème résolu!