backdafuckup Back to da old skool | Tout d'abord bonjour... Pfiou, ca faisait longtemps que j'étais pas venu ici (normal, je faisais plus de prog...). Mais maintenant, je fais de nouveau de la prog, et là j'ai un problème (et le gérant de ma société qui me met des coups de pieds au... enfin, on m'a compris).
Bref, après avoir arpenté les manuels et faq php, fait consulté mon code par un pote, je ne trouve pas la solution. Je ne suis pas un champion, donc il se peut qu'une erreur pourrie se soit glissée dans mon code...
J'explique la situation.
Tout se passe sur le site "xxx" (adresse cachée parce que pb résolu) dans la page "Nous contacter". Si certains veulent tester, indiquez le dans "requete" (c'est pas de la pub hein, c'est un vrai problème...).
Cette page contient un formulaire et du code php (avec une base de données mysql derrière, bien évidemment).
Certains champs sont rendus obligatoires, pour des raisons commerciales, grâce à :
Code :
- if ($champ == "" )
- {
- header("location: ./blabla.php?param1=$truc¶m2=$troc" );
- }
|
En théorie, lorsque le formulaire est envoyé, le serveur examine les champs obligatoires, s'il en trouve un vide, il retourne à la même page et fait passer en paramètre les données précédemment saisies (méthode détournée parce que le javascript history.go(-1) ne marchait pas, je ne sais pas pourquoi).
Le seul problème est qu'il y a dans le code la fonction mail().
Cette fonction mail ne devrait fonctionner que si tous les champs sont correctement remplis (aucun oubli). Mais, comble du comble, le mail est envoyé meme s'il manque un champ (sauf le champ email evidemment...). J'ai essayé toutes sortes de vérifications. Si je met la fonction mail() dans un if{} avec les conditions qu'il faut pour que ca ne marche pas, ben ca marche quand meme... Alors à moins que mon serveur ne soit possédé par le démon, je l'explique pas...
Note : hébergement OVH.
Voici le code (avec certaines parties masquées, mais c'est normal hein) :
Code :
- <?php
- if ($passage=="1" )
- {
- //connexion à la base de données
- $login="..";
- $mdp="..";
- $serveur="..";
- $base="..";
- mysql_connect($serveur,$login,$mdp);
- if (mysql_errno() != 0)
- {
- header("location: ./Contact.php?message=serveur&passage=0&nom=$nom&prenom=$prenom&societe=$societe&fonction=$fonction&activite=$activite&adresse=$adresse&codepostal=$codepostal&ville=$ville&telephone=$telephone&fax=$fax&titre=$titre&demande=$demande&requete=$requete&website=$website&email=$email&connexion=$connexion" );
- }
- mysql_select_db($base);
- if (mysql_errno() != 0)
- {
- header("location: ./Contact.php?message=base&passage=0&nom=$nom&prenom=$prenom&societe=$societe&fonction=$fonction&activite=$activite&adresse=$adresse&codepostal=$codepostal&ville=$ville&telephone=$telephone&fax=$fax&titre=$titre&demande=$demande&requete=$requete&website=$website&email=$email&connexion=$connexion" );
- }
- /* Vérification des champs : J'ai testé, chaque oubli est détecté*/
- if ($nom == "" )
- {
- header("location: ./Contact.php?message=nom&passage=0&nom=$nom&prenom=$prenom&societe=$societe&fonction=$fonction&activite=$activite&adresse=$adresse&codepostal=$codepostal&ville=$ville&telephone=$telephone&fax=$fax&titre=$titre&demande=$demande&requete=$requete&website=$website&email=$email&connexion=$connexion" );
- }
- if ($prenom == "" )
- {
- header("location: ./Contact.php?message=prenom&passage=0&nom=$nom&prenom=$prenom&societe=$societe&fonction=$fonction&activite=$activite&adresse=$adresse&codepostal=$codepostal&ville=$ville&telephone=$telephone&fax=$fax&titre=$titre&demande=$demande&requete=$requete&website=$website&email=$email&connexion=$connexion" );
- }
- if ($societe == "" )
- {
- header("location: ./Contact.php?message=societe&passage=0&nom=$nom&prenom=$prenom&societe=$societe&fonction=$fonction&activite=$activite&adresse=$adresse&codepostal=$codepostal&ville=$ville&telephone=$telephone&fax=$fax&titre=$titre&demande=$demande&requete=$requete&website=$website&email=$email&connexion=$connexion" );
- }
- if ($adresse == "" )
- {
- header("location: ./Contact.php?message=adresse&passage=0&nom=$nom&prenom=$prenom&societe=$societe&fonction=$fonction&activite=$activite&adresse=$adresse&codepostal=$codepostal&ville=$ville&telephone=$telephone&fax=$fax&titre=$titre&demande=$demande&requete=$requete&website=$website&email=$email&connexion=$connexion" );
- }
- if ($codepostal == "" )
- {
- header("location: ./Contact.php?message=codepostal&passage=0&nom=$nom&prenom=$prenom&societe=$societe&fonction=$fonction&activite=$activite&adresse=$adresse&codepostal=$codepostal&ville=$ville&telephone=$telephone&fax=$fax&titre=$titre&demande=$demande&requete=$requete&website=$website&email=$email&connexion=$connexion" );
- }
- if ($ville == "" )
- {
- header("location: ./Contact.php?message=ville&passage=0&nom=$nom&prenom=$prenom&societe=$societe&fonction=$fonction&activite=$activite&adresse=$adresse&codepostal=$codepostal&ville=$ville&telephone=$telephone&fax=$fax&titre=$titre&demande=$demande&requete=$requete&website=$website&email=$email&connexion=$connexion" );
- }
- if ($telephone == "" )
- {
- header("location: ./Contact.php?message=telephone&passage=0&nom=$nom&prenom=$prenom&societe=$societe&fonction=$fonction&activite=$activite&adresse=$adresse&codepostal=$codepostal&ville=$ville&telephone=$telephone&fax=$fax&titre=$titre&demande=$demande&requete=$requete&website=$website&email=$email&connexion=$connexion" );
- }
- if ($email == "" )
- {
- header("location: ./Contact.php?message=email&passage=0&nom=$nom&prenom=$prenom&societe=$societe&fonction=$fonction&activite=$activite&adresse=$adresse&codepostal=$codepostal&ville=$ville&telephone=$telephone&fax=$fax&titre=$titre&demande=$demande&requete=$requete&website=$website&email=$email&connexion=$connexion" );
- }
- if ($requete == "" )
- {
- header("location: ./Contact.php?message=requete&passage=0&nom=$nom&prenom=$prenom&societe=$societe&fonction=$fonction&activite=$activite&adresse=$adresse&codepostal=$codepostal&ville=$ville&telephone=$telephone&fax=$fax&titre=$titre&demande=$demande&requete=$requete&website=$website&email=$email&connexion=$connexion" );
- }
- /*Requete d'insertion : L'insertion ne marche que si un seul champ a été oublié. Si on en oublie un, qu'on rerempli et qu'on renvoie, ca fait une erreur d'insertion (testé pas par moi) */
- $requete_insert="insert into formulaire values ('$titre','$nom','$prenom','$fonction','$activite','$societe','$adresse','$codepostal','$ville','$telephone','$fax','$email','$website','$requete','$demande','$connexion')";
- $result_insert=mysql_query($requete_insert);
- //et on enleve les slashs
- $nom = stripslashes($nom);
- $prenom = stripslashes($prenom);
- $societe = stripslashes($societe);
- $ville = stripslashes($ville);
- $requete = stripslashes($requete);
- $adresse = stripslashes($adresse);
- //traitement d'erreurs
- if (mysql_errno() != 0)
- {
- header("location: ./Contact.php?message=insert&passage=0&nom=$nom&prenom=$prenom&societe=$societe&fonction=$fonction&activite=$activite&adresse=$adresse&codepostal=$codepostal&ville=$ville&telephone=$telephone&fax=$fax&titre=$titre&demande=$demande&requete=$requete&website=$website&email=$email&connexion=$connexion" );
- }
- //Voila le passage mail.
- /* Deux mails sont envoyés, un pour moi et un de confirmation pour la personne qui s'inscrit. */
- $destinataire="xxx@xxx.xx";
- $titremessage="Formulaire";
- $contenu="Expéditeur : $titre $prenom $nom
- Société : $societe
- Fonction : $fonction
- Activité : $activité
- Adresse : $adresse
- $codepostal $ville
- Téléphone : $telephone
- Fax : $fax
- Email : $email
- Site Web : $website
- requete : $requete\n
- Connexion Internet : $connexion\n";
- if ($demande == "interesse" )
- {
- $contenu .= "\nEst interesse par un rendez-vous.";
- }
- else
- {
- $contenu .= "\nSouhaite recevoir une documentation.";
- }
- //fonction mail : ca c'était le mail qui m'était destiné, et il est envoyé ci-dessous
-
- mail($destinataire,$titremessage,$contenu);
- /* Mail numéro 2, destiné au client */
- $destinataireconfirm = $email;
- $titremessageconfirm = "xxxx - Votre inscription est un succès !";
- $contenuconfirm=" Bonjour,
- Merci d'avoir visité notre site et laissé vos coordonnées.
- Ces coordonnées ont été correctement transmises à nos services, et nous répondrons rapidement à votre demande.
- Nous avons pris soin de vous rappeler ci-dessous les informations que vous avez saisies. Merci de les vérifier,
- et, le cas échant de nous envoyer un e-mail à l'adresse suivante contact@xxx.xx (avec les informations à corriger),
- afin que nous rectifions ces informations immédiatement. Merci, et à très bientôt. \n
- Expéditeur : $titre $prenom $nom
- Société : $societe
- Fonction : $fonction
- Activité : $activité
- Adresse : $adresse
- $codepostal $ville
- Téléphone : $telephone
- Fax : $fax
- Email : $email
- Site Web : $website
- requete : $requete
- Connexion Internet : $connexion
- \n
- -------, Webmaster pour xxxxxxx.";
- //fonction mail de confirmation(à activer si nécessaire)
- mail($destinataireconfirm,$titremessageconfirm,$contenuconfirm);
- $passage="0";
- ?>
- <script language="javascript">
- alert("Le formulaire a été correctement rempli et transmis.\nVous allez recevoir un e-mail de confirmation. Merci." );
- location.href="./main.php";
- </script>
- <?
- }
- else
- {
- $passage="0";
- switch($message)
- {
- case "nom":
- ?>
- <script language="javascript">
- alert("Vous n'avez pas rempli le champ nom." );
- </script>
- <?
- break;
- case "prenom":
- ?>
- <script language="javascript">
- alert("Vous n'avez pas rempli le champ prénom." );
- </script>
- <?
- break;
- case "societe":
- ?>
- <script language="javascript">
- alert("Vous n'avez pas rempli le champ société." );
- </script>
- <?
- break;
- case "adresse":
- ?>
- <script language="javascript">
- alert("Vous n'avez pas rempli le champ adresse." );
- </script>
- <?
- break;
- case "codepostal":
- ?>
- <script language="javascript">
- alert("Vous n'avez pas rempli le champ code postal." );
- </script>
- <?
- break;
- case "ville":
- ?>
- <script language="javascript">
- alert("Vous n'avez pas rempli le champ ville." );
- </script>
- <?
- break;
- case "telephone":
- ?>
- <script language="javascript">
- alert("Vous n'avez pas rempli le champ téléphone." );
- </script>
- <?
- break;
- case "email":
- ?>
- <script language="javascript">
- alert("Vous n'avez pas donné votre adresse e-mail." );
- </script>
- <?
- break;
- case "requete":
- ?>
- <script language="javascript">
- alert("Vous n'avez pas rempli le champ concernant votre requete." );
- </script>
- <?
- break;
- case "insert":
- ?>
- <script language="javascript">
- alert("Une erreur est survenue (N°01 : Requete invalide).\n Merci de recommencer." );
- </script>
- <?
- break;
- case "base":
- ?>
- <script language="javascript">
- alert("Une erreur est survenue (N°02 : Erreur de séléction de base).\n Merci de recommencer." );
- </script>
- <?
- break;
- case "serveur":
- ?>
- <script language="javascript">
- alert("Une erreur est survenue (N°03 : Le serveur ne répond pas).\n Merci de recommencer." );
- </script>
- <?
- break;
- }
- }
- ?>
- // Voila... je comprends pas... Merci de votre aide ;)
|
Message édité par backdafuckup le 12-04-2004 à 18:26:28
|