Problème avec formulaire fonction MAIL()

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème avec formulaire fonction MAIL()

par Cyrano » 24 sept. 2005, 08:59

Je peux difficilement te dire ce qui n'est pas bon, ce bout de code est correct, mais tu n'as pas précisé la nature du bug ni le message d'erreur éventuel... :-k

par Emeric73 » 23 sept. 2005, 23:04

Oki merci, mais moi le souci c'est que j'ai une page formulaire et une page analyse. donc c'est le vrais bordelle j'ai ajouter tes variente mais le souci c'est que sa bug je c'est pas trop ou les situer
if ($prenom == '') // 
{ print "<li>Vous n'avez pas précisé votre prénom</li>\n";	}
if ($nom == '') // 
{ print "<li>Vous n'avez pas précisé votre nom</li>\n";	        }
if ($domaine == '') // 
{ print "<li>Vous n'avez pas précisé votre domaine</li>\n";	}
if ($adresse == '') // 
{ print "<li>Vous n'avez pas précisé votre adresse postal</li>\n";	}
if ($codepostal == '') // 
{ print "<li>Vous n'avez pas précisé votre code postal</li>\n";	}
if ($ville == '') // 
{ print "<li>Vous n'avez pas précisé votre ville</li>\n";	}
if ($pays == '') // 
{ print "<li>Vous n'avez pas précisé votre pays</li>\n";	}
if ($telm == '') // 
{ print "<li>Vous n'avez pas précisé votre numéro de téléphone</li>\n";}
if (($telm) && !(ereg($phone,$telephone))) /* Comparaison du numéro de téléphone avec l'expression régulière */
{ print "<li>Le numéro de téléphone doit comporter seulement des chiffres, de 6 à 10 chiffres sans espaces ni tirets</li>\n";}
if(!$courrier) // Si le champ "adresse électronique" est vide, 
{ print "<li>Vous avez omis de mentionner une adresse électronique !</li>\n";}
if(($courrier) && !(eregi($valid, $email))) /* Si il y a une adresse inscrite mais invalide */

par Cyrano » 23 sept. 2005, 21:36

Alors pour chaque variable, tu fais:
if(empty($nom) && empty($prenom) && etc... pour tous les champs)
et ensuite tu personnalise au détail.

Télécharge un formulaire modèle pour voir comment je procède, c'est assez simple.

par rami » 23 sept. 2005, 21:34

Tu contrôles les valeurs du post (avec par exemple les fonctions empty, strlen, ctype...). Si c'est OK, tu continues sinon tu retournes au formulaire avec la fonction header

;)

par Emeric73 » 23 sept. 2005, 21:15

non car il est pas obliger remplire tous les champ pour envoyer le formuloire, que moi je voudrais qui soit obliger de les remplire sinon il ne peux pas envoyer le formulaire.

par Cyrano » 23 sept. 2005, 20:43

[Résolu] alors :?:

par Emeric73 » 23 sept. 2005, 20:39

oué oué mais sa été bon en faite, je voudrais juste que il puice pas envoyer le formulaire ci tous les champs ne sont pas remplie.

Encore merci c'est coool pour ton aide.

par Cyrano » 23 sept. 2005, 20:29

Bon, je viens de faire des tests, j'ai construit un formulaire à l'arrache pour tester: ça marche mais j'ai du déplacer un bout de code en début de script:
<?
/* On transforme les variables de formaulaire en variables normales */
foreach ($_POST as $key => $value)
{
    ${$key} = addslashes($value);
}
/* Configuration */
$to               = "[email protected]" ; //Insérer l'email .
$page_redirection = "http://www.group-network.net"; //Insérer l'adresse de la page de redirection
$subject          = "Commande d'un Pack chez Group-Network"; //Insérer le sujet du mail

/* Déclaration des headers du mail */
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: ". $from ."\r\n";
$headers .= "To: ". $to ."\r\n";
$headers .= "Reply-To: ". $from ."\r\n";


/* On traite les variables contre le piratage*/
$domaine    = htmlentities($domaine);
$nom        = htmlentities($nom);
$prenom     = htmlentities($prenom);
$adresse    = $adresse.' '.$adresse2 ;
$adresse    = htmlentities($adresse);
$codepostal = htmlentities($codepostal);
$ville      = htmlentities($ville);
$pays       = htmlentities($pays);
$telp       = htmlentities($telp);
$telm       = htmlentities($telm);
$courrier   = htmlentities($courrier);
$pack       = htmlentities($pack);

/*Création de la mise en forme du message */
$message = "Bonjour <b>". $titre ." ". $nom ." ". $prenom ."</b><br>\n
Nous accusons réception de votre commande ce jour.<br>\n<br>\n
Vous avez choisi le pack <b>". $pack ."</b> pour une durée de <b>1 an</b><br>\n<br>\n
Vous avez choisi de règlé par <b>". $mode ."</b><br>\n<br>\n
Récapitulatif de vos informations : <br>\n<br>\n
Nom : <b>". $nom ."</b><br>\n
Prénom : <b>". $prenom ."</b><br>\n
Adresse : <b>". $adresse ."</b><br>\n
Code postal : <b>". $codepostal ."</b><br>\n
Ville : <b>". $ville ."</b><br>\n
Pays : <b>". $pays ."</b><br>\n
Téléphone personnel : <b>". $telp ."</b><br>\n
Téléphone portable : <b>". $telm ."</b><br>\n
Courrier électronique : <b>". $courrier ."</b> <br>\n<br>\n
Nom de Domaine : <b>". $domaine.$extension ."</b><br>\n
Pack : <b>". $pack ."</b><br>\n
Mode de paiement : <b>". $mode ."</b><br>\n<br>\n<br>\n
Merci de nous  accorder votre confiance.<br>\n<br>\n
Si vous avez choisi de régler par <b>Carte Bancaire</b>,<br>\n
vous recevrez sous peu de temps vos paramètre de connexion.</br><br>\n
Si vous avez choisi de régler par <b>Chèque</b>,<br>\n
votre commande passera en réalistaion des réception de votre chèque<br>\n<br>\n
Dans cette attente,<br>\n
Recevez, <b>". $titre ." ". $nom ." ". $prenom ."</b>, nos sincéres salutations.<br>\n
Le Service  clients de Group-Network.<br>\n<br>\n
Support commercial : <b>0870 405 903</b><br>\n
Support technique : <b>0870 406 160</b>";

mail($to,$subject,$message,$headers);
?>
Je reçois bien les messages. J'ai remis l'adresse que tu avais mise et enlevé la mienne.

par Emeric73 » 23 sept. 2005, 20:02

Cool c'est bon ton système fonction niquelle, est au niveau de la vérification des champ faus faire comment ??.

Merci de votre aides.

par Cyrano » 22 sept. 2005, 23:51

Essaye en ajoutant quelques en-têtes:
<?
/* Configuration */
$to               = "[email protected]" ; //Insérer l'email .
$page_redirection = "http://www.group-network.net"; //Insérer l'adresse de la page de redirection
$subject          = "Commande d'un Pack chez Group-Network"; //Insérer le sujet du mail

/* Déclaration des headers du mail */
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "From: ". $from ."\r\n";
$headers .= "To: ". $to ."\r\n";
$headers .= "Reply-To: ". $from ."\r\n";

/* On transforme les variables de formaulaire en variables normales */
foreach ($_POST as $key => $value)
{
    ${$key} = addslashes(htmlentities($value));
}

/* On traite les variables contre le piratage*/
$domaine    = htmlentities($domaine);
$nom        = htmlentities($nom);
$prenom     = htmlentities($prenom);
$adresse    = $adresse.' '.$adresse2 ;
$adresse    = htmlentities($adresse);
$codepostal = htmlentities($codepostal);
$ville      = htmlentities($ville);
$pays       = htmlentities($pays);
$telp       = htmlentities($telp);
$telm       = htmlentities($telm);
$courrier   = htmlentities($courrier);
$pack       = htmlentities($pack);

/*Création de la mise en forme du message */
$message = "Bonjour <b>". $titre ." ". $nom ." ". $prenom ."</b><br>\n
Nous accusons réception de votre commande ce jour.<br>\n<br>\n
Vous avez choisi le pack <b>". $pack ."</b> pour une durée de <b>1 an</b><br>\n<br>\n
Vous avez choisi de règlé par <b>". $mode ."</b><br>\n<br>\n
Récapitulatif de vos informations : <br>\n<br>\n
Nom : <b>". $nom ."</b><br>\n
Prénom : <b>". $prenom ."</b><br>\n
Adresse : <b>". $adresse ."</b><br>\n
Code postal : <b>". $codepostal ."</b><br>\n
Ville : <b>". $ville ."</b><br>\n
Pays : <b>". $pays ."</b><br>\n
Téléphone personnel : <b>". $telp ."</b><br>\n
Téléphone portable : <b>". $telm ."</b><br>\n
Courrier électronique : <b>". $courrier ."</b> <br>\n<br>\n
Nom de Domaine : <b>". $domaine.$extension ."</b><br>\n
Pack : <b>". $pack ."</b><br>\n
Mode de paiement : <b>". $mode ."</b><br>\n<br>\n<br>\n
Merci de nous  accorder votre confiance.<br>\n<br>\n
Si vous avez choisi de régler par <b>Carte Bancaire</b>,<br>\n
vous recevrez sous peu de temps vos paramètre de connexion.</br><br>\n
Si vous avez choisi de régler par <b>Chèque</b>,<br>\n
votre commande passera en réalistaion des réception de votre chèque<br>\n<br>\n
Dans cette attente,<br>\n
Recevez, <b>". $titre ." ". $nom ." ". $prenom ."</b>, nos sincéres salutations.<br>\n
Le Service  clients de Group-Network.<br>\n<br>\n
Support commercial : <b>0870 405 903</b><br>\n
Support technique : <b>0870 406 160</b>";

mail($to,$subject,$message,$headers);
?>

Problème avec formulaire fonction MAIL()

par Emeric73 » 22 sept. 2005, 23:36

Bonjour,

Voila j'ai créé un formulaire qui s'envoie en fonction mail, mais j'ai 2 petit problèmes.

1- J'arrive pas a faire vérifier les champs avent l'envoie
2- Quand je reçois le mail je n'arrive pas a mètre mon mail dans "DE" ni celui qui remplie le formulaire dans "A"
<?

/* Configuration */
$to = "[email protected]" ; //Insérer l'email .
$page_redirection = "http://www.group-network.net"; //Insérer l'adresse de la page de redirection 
$subject = "Commande d'un Pack chez Group-Network"; //Insérer le sujet du mail 



/* Déclaration des headers du mail */
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

/* On transforme les variables de formaulaire en variables normales */
foreach ($_POST as $key => $value) 
{
$$key = addslashes(htmlentities($value));
}

/* On traite les variables contre le piratage*/
$domaine = htmlentities($domaine);
$nom = htmlentities($nom);
$prenom = htmlentities($prenom);
$adresse = $adresse.' '.$adresse2 ;
$adresse = htmlentities($adresse);
$codepostal = htmlentities($codepostal);
$ville = htmlentities($ville);
$pays = htmlentities($pays);
$telp = htmlentities($telp);
$telm = htmlentities($telm);
$courrier = htmlentities($courrier);
$pack = htmlentities($pack);

/*Création de la mise en forme du message */
$message = 'Bonjour <b>'.$titre.' '.$nom.' '.$prenom.'</b><br>
Nous accusons réception de votre commande ce jour.<br><br>
Vous avez choisi le pack <b>'.$pack.'</b> pour une durée de <b>1 an</b><br><br>
Vous avez choisi de règlé par <b>'.$mode.'</b><br><br>
Récapitulatif de vos informations : <br><br>
Nom : <b>'.$nom.'</b><br>
Prénom : <b>'.$prenom.'</b><br>
Adresse : <b>'.$adresse.'</b><br>
Code postal : <b>'.$codepostal.'</b><br>
Ville : <b>'.$ville.'</b><br>
Pays : <b>'.$pays.'</b><br>
Téléphone personnel : <b>'.$telp.'</b><br>
Téléphone portable : <b>'.$telm.'</b><br>
Courrier électronique : <b>'.$courrier.'</b> <br><br>
Nom de Domaine : <b>'.$domaine.$extension.'</b><br>
Pack : <b>'.$pack.'</b><br>
Mode de paiement : <b>'.$mode.'</b><br><br><br>
Merci de nous  accorder votre confiance.<br><br>
Si vous avez choisi de régler par <b>Carte Bancaire</b>,<br>
vous recevrez sous peu de temps vos paramètre de connexion.</br><br>
Si vous avez choisi de régler par <b>Chèque</b>,<br>
votre commande passera en réalistaion des réception de votre chèque<br><br>
Dans cette attente,<br>
Recevez, <b>'.$titre.' '.$nom.' '.$prenom.'</b>, nos sincéres salutations.<br>
Le Service  clients de Group-Network.<br><br>
Support commercial : <b>0870 405 903</b><br>
Support technique : <b>0870 406 160</b>';

mail($to,$subject,$message,$headers,"from:$from\nreturn-path:$from");

?>

Bien envoyer
Merci beaucoup de votre aide.