Help Me [Résolu]

Signaler
Messages postés
13
Date d'inscription
jeudi 2 avril 2020
Statut
Membre
Dernière intervention
4 avril 2020
-
Messages postés
13
Date d'inscription
jeudi 2 avril 2020
Statut
Membre
Dernière intervention
4 avril 2020
-
Bonjour,

Je suis un vieux developpeur mais plus perfectionner en VBA ! Je me lance en php et je galère un peu sinon je ne serai pas ici !
J'ai trouvé pas mal de chose sur le net, après avoir testé pas mal de chose, je ne trouve toujours pas pourquoi mon formulaire mail ne fonctionne pas !

Merci de votre aide précieuse

9 réponses

Messages postés
28933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
31 mai 2020
2 469
Bonjour,

Déjà... sans voir ton code il sera difficile de te répondre.
Il faudrait également nous indiquer si ton "site" est hébergé sur un serveur web ou si, pour l'instant tu bosses en local sur ton ordi ( à l'aide d'un logiciel tel que wamp, xampp, easyphp, laragon ..autre ?? ) ?

Si tu es en local, il faut, si tu utilises la fonction "mail" de php avoir configuré le SMTP dans le fichier php.ini. Sans ça...ça ne marchera pas.
Sinon, tu peux utiliser une class php telle que PhpMailer pour gérer l'envoi de mails depuis une adresse email de ton choix ( gmail, outlook..autre ).

Dans tous les cas, tu trouveras de nombreux tutos à ce sujet.

Et vu que tu débutes dans le PHP, je t'invite à prendre tout de suite de bonnes habitudes.
Donc voici un peu de lecture : https://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code

.
Messages postés
13
Date d'inscription
jeudi 2 avril 2020
Statut
Membre
Dernière intervention
4 avril 2020

Désolé !

Mon html :

<html>
<head>
</head>
<body>

<h1 align="center">Formulaire de contact</h1>
<form name="myForm" action="/file.php" onsubmit="return validateForm()" method="post">
<div align="center">
<table width="86%" class="form-style">
<tr>
<td width="22%"> <label> Votre type de colis <span class="required">*</span>
</label> </td>
<td width="22%"><select name="type_colis" size="1">
<option selected>Plis
<option>Colis
<option>Palettes
<option>Encombrants
<option>Autres </select></td>
<td width="22%"> </td>
<td width="22%"> <label> Votre type de transport</label> </td>
<td width="22%"><select name="type_transport" size="1">
<option selected>Urgent
<option>Livraison 24 H
<option>Livraison 48H/72
<option>Affrètement</select></td>
<td width="22%"> </td>
</tr>
<tr>
<td> <label> Nombre de colis<span class="required">*</span> </label>
<td><input type="text" name="nbr_colis" class="long"/></td>
<td> </td>
<td>Poids total (kg)<span class="required">*</span> </td>
<td><input type="text" name="poid_total" class="long"/></td>
<td> </td>
</tr>
<tr>
<td> 
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> <label>Longueur (cm)</label>
<td><input type="text" name="longueur" class="long"/></td>
<td>Largeur (cm)</td>
<td><input type="text" name="largeur" class="long"/></td>
<td>Hauteur (cm)</td>
<td><input type="text" name="hauteur" class="long"/></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Ville ou CP de départ</td>
<td><input type="text" name="ville_dep" class="long"/></td>
<td> </td>
<td>Pays</td>
<td><input type="text" name="pi_dep" class="long"/></td>
<td> </td>
</tr>
<tr>
<td>Ville ou CP d'arrivée</td>
<td><input type="text" name="ville_ar" class="long"/></td>
<td> </td>
<td>Pays</td>
<td><input type="text" name="pi_ar" class="long"/></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Société</td>
<td><input type="text" name="societe" class="long"/></td>
<td>Votre nom <span class="required">*</span> </td>
<td><input type="text" name="nom" class="long"/></td>
<td>Votre prénom</td>
<td><input type="text" name="prenom" class="long"/></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> <label>Votre téléphone</label> </td>
<td><input type="text" name="tel" class="long"/></td>
<td> </td>
<td>Votre adresse e-mail <span class="required">*</span> </td>
<td><input type="email" name="email" class="long"/></td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> <label> Message <span class="required">*</span> </label> </td>
<td><textarea name="message" class="long field-textarea"></textarea></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan="6"> </td>
</tr>
<tr>
<td colspan="6"><div align="center">
<input name="submit" type="submit" value="Envoyer">
<input name="reset" type="reset" value="Réinitialiser">
</div></td>
</tr>
</table>
</div>
</form>
</body>
</html>


puis mon php :

<?php
$msg = "type_de_transport:\t$type_transport\n";
$msg .= "Nombre_de_colis:\t$nbr_colis\n";
$msg .= "Poids_Total:\t$poid_total\n";
$msg .= "Longueur:\t$longueur\n";
$msg .= "Largeur:\t$largeur\n";
$msg .= "Hauteur:\t$hauteur\n";
$msg .= "Ville_de_depart:\t$ville_dep\n";
$msg .= "Pays_de_depart:\t$pi_dep\n";
$msg .= "ville_arrivee:\t$ville_ar\n";
$msg .= "Pays_arrivee:\t$pi_ar\n";
$msg .= "Sociéte:\t$societe\n";
$msg .= "Nom:\t$nom\n";*
$msg .= "Prenom:\t$prenom\n";
$msg .= "Tel:\t$tel\n";
$msg .= "E-mail:\t$email\n";
$msg .= "Message:\t$message\n\n";

$recipient = "xxx@xxx.fr";
$subject = "Formulaire";

$mailheaders = "From: Mon site web<> \n";
$mailheaders .= "Reply-To: $CP\n\n";

mail($recipient, $subject, $msg, $mailheaders);

echo "<HTML><HEAD>";
echo "<TITLE>Formulaire envoyer!</TITLE></HEAD><BODY>";
echo "<H1 align=center>Merci, $nom </H1>";
echo "<P align=center>";
echo "Votre formulaire à bien été envoyé !</P>";
echo "</BODY></HTML>";

?>

Mais ça ne fonctionne pas !?!
Messages postés
28933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
31 mai 2020
2 469
A l'avenir, merci fe poster ton code correctement.
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

De plus, tu n'as pas répondu à mes questions et je ne vois pas, dans ton code php, la récupération des variables POST


Messages postés
13
Date d'inscription
jeudi 2 avril 2020
Statut
Membre
Dernière intervention
4 avril 2020

Je suis novice désolé et suis hébergé par OVH !
Messages postés
28933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
31 mai 2020
2 469
Ok.
Et donc.. la récupération des variables POST ?
Et aussi, appliques les consignes données dans le lien... Comme l'affichage des erreurs PHP par exemple.

Par ce que "ça ne marche pas" ... Ça ne va pas nous aider à trouver le problème...
Messages postés
13
Date d'inscription
jeudi 2 avril 2020
Statut
Membre
Dernière intervention
4 avril 2020

J'ai donc ajouté ceci au début de mon php :

$type_transport = $_POST['type_transport']; 
$nbr_colis = $_POST['nbr_colis']; 
$poid_total = $_POST['poid_total']; 
$longueur = $_POST['longueur']; 
$largeur = $_POST['largeur']; 
$hauteur = $_POST['hauteur']; 
$ville_dep = $_POST['ville_dep']; 
$pi_dep = $_POST['pi_dep']; 
$ville_ar = $_POST['ville_ar']; 
$pi_ar = $_POST['pi_ar']; 
$societe = $_POST['societe']; 
$nom = $_POST['nom']; 
$prenom = $_POST['prenom']; 
$tel = $_POST['tel']; 
$email = $_POST['email']; 
$message = $_POST['message']; 


Mais toujours rien ?
Messages postés
13
Date d'inscription
jeudi 2 avril 2020
Statut
Membre
Dernière intervention
4 avril 2020
>
Messages postés
13
Date d'inscription
jeudi 2 avril 2020
Statut
Membre
Dernière intervention
4 avril 2020

J'ai beau suivre tes conseils en matière de gestion d'erreur mais Votre fichier est introuvable Il a peut-être été déplacé ou supprimé.
ERR_FILE_NOT_FOUND

Voila le resultat, je sais ça ne t aide pas à m'aider !?!
Messages postés
28933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
31 mai 2020
2 469 >
Messages postés
13
Date d'inscription
jeudi 2 avril 2020
Statut
Membre
Dernière intervention
4 avril 2020

Ton fichier php se nomme comment ? file.php ?
Il se trouve où par rapport a ton html ? Dans le même dossier ?

Retire le / dans le action de ton form
Messages postés
13
Date d'inscription
jeudi 2 avril 2020
Statut
Membre
Dernière intervention
4 avril 2020

Mon fichier se trouve au même endroit et se nomme file.php

Je l'ai fait mais toujours la même réponse, je suis hébergé par OVH, y a t il quelque chose à faire au niveau de l'hébergeur ?

Donc je récapitule, j'en suis à ça !

Mon fichier html "form_contact.htm":
<html>
   <head>
   </head>
   <body>
      
<h1 align="center">Formulaire de contact</h1>
      <form name="myForm" action="file.php" onsubmit="return validateForm()" method="post">
  <div align="center">
    <table width="86%" class="form-style">
      <tr> 
        <td width="22%"> <label> Votre type de colis <span class="required">*</span> 
          </label> </td>
        <td width="22%"><select name="type_colis" size="1">
            <option selected>Plis 
            <option>Colis 
            <option>Palettes 
            <option>Encombrants 
            <option>Autres </select></td>
        <td width="22%"> </td>
        <td width="22%"> <label> Votre type de transport</label> </td>
        <td width="22%"><select name="type_transport" size="1">
            <option selected>Urgent 
            <option>Livraison 24 H 
            <option>Livraison 48H/72 
            <option>Affrètement</select></td>
        <td width="22%"> </td>
      </tr>
      <tr> 
        <td> <label> Nombre de colis<span class="required">*</span> </label> 
        <td><input type="text" name="nbr_colis" class="long"/></td>
        <td> </td>
        <td>Poids total (kg)<span class="required">*</span> </td>
        <td><input type="text" name="poid_total" class="long"/></td>
        <td> </td>
      </tr>
      <tr> 
        <td> 
        <td> </td>
        <td> </td>
        <td> </td>
        <td> </td>
        <td> </td>
      </tr>
      <tr> 
        <td> <label>Longueur (cm)</label> 
        <td><input type="text" name="longueur" class="long"/></td>
        <td>Largeur (cm)</td>
        <td><input type="text" name="largeur" class="long"/></td>
        <td>Hauteur (cm)</td>
        <td><input type="text" name="hauteur" class="long"/></td>
      </tr>
      <tr> 
        <td> </td>
        <td> </td>
        <td> </td>
        <td> </td>
        <td> </td>
        <td> </td>
      </tr>
      <tr> 
        <td>Ville ou CP de départ</td>
        <td><input type="text" name="ville_dep" class="long"/></td>
        <td> </td>
        <td>Pays</td>
        <td><input type="text" name="pi_dep" class="long"/></td>
        <td> </td>
      </tr>
      <tr> 
        <td>Ville ou CP d'arrivée</td>
        <td><input type="text" name="ville_ar" class="long"/></td>
        <td> </td>
        <td>Pays</td>
        <td><input type="text" name="pi_ar" class="long"/></td>
        <td> </td>
      </tr>
      <tr> 
        <td> </td>
        <td> </td>
        <td> </td>
        <td> </td>
        <td> </td>
        <td> </td>
      </tr>
      <tr> 
        <td>Société</td>
        <td><input type="text" name="societe" class="long"/></td>
        <td>Votre nom <span class="required">*</span> </td>
        <td><input type="text" name="nom" class="long"/></td>
        <td>Votre prénom</td>
        <td><input type="text" name="prenom" class="long"/></td>
      </tr>
      <tr> 
        <td> </td>
        <td> </td>
        <td> </td>
        <td> </td>
        <td> </td>
        <td> </td>
      </tr>
      <tr> 
        <td> <label>Votre téléphone</label> </td>
        <td><input type="text" name="tel" class="long"/></td>
        <td> </td>
        <td>Votre adresse e-mail <span class="required">*</span> </td>
        <td><input type="email" name="email" class="long"/></td>
        <td> </td>
      </tr>
      <tr> 
        <td> </td>
        <td> </td>
        <td> <label> Message <span class="required">*</span> </label> </td>
        <td><textarea name="message" class="long field-textarea"></textarea></td>
        <td> </td>
        <td> </td>
      </tr>
      <tr>
        <td colspan="6"> </td>
      </tr>
      <tr> 
        <td colspan="6"><div align="center"> 
            <input name="submit" type="submit" value="Envoyer">
            <input name="reset" type="reset" value="Réinitialiser">
          </div></td>
      </tr>
    </table>
  </div>
</form>
   </body>
</html>


puis mon php dans le même endroit que mon html "file.php" :
<?php 

$type_transport = $_POST['type_transport']; 
$nbr_colis = $_POST['nbr_colis']; 
$poid_total = $_POST['poid_total']; 
$longueur = $_POST['longueur']; 
$largeur = $_POST['largeur']; 
$hauteur = $_POST['hauteur']; 
$ville_dep = $_POST['ville_dep']; 
$pi_dep = $_POST['pi_dep']; 
$ville_ar = $_POST['ville_ar']; 
$pi_ar = $_POST['pi_ar']; 
$societe = $_POST['societe']; 
$nom = $_POST['nom']; 
$prenom = $_POST['prenom']; 
$tel = $_POST['tel']; 
$email = $_POST['email']; 
$message = $_POST['message']; 

print("<center>Bonjour $type_transport $nbr_colis</center>"); 

$msg = "type_de_transport:\t$type_transport\n";
$msg .= "Nombre_de_colis:\t$nbr_colis\n";
$msg .= "Poids_Total:\t$poid_total\n";
$msg .= "Longueur:\t$longueur\n";
$msg .= "Largeur:\t$largeur\n";
$msg .= "Hauteur:\t$hauteur\n";
$msg .= "Ville_de_depart:\t$ville_dep\n";
$msg .= "Pays_de_depart:\t$pi_dep\n";
$msg .= "ville_arrivee:\t$ville_ar\n";
$msg .= "Pays_arrivee:\t$pi_ar\n";
$msg .= "Societe:\t$societe\n";
$msg .= "Nom:\t$nom\n";*
$msg .= "Prenom:\t$prenom\n";
$msg .= "Tel:\t$tel\n";
$msg .= "E-mail:\t$email\n";
$msg .= "Message:\t$message\n\n";

$recipient = "xxxxxx@xxxxx.fr";
$subject = "Formulaire";

$mailheaders = "From: Mon site web<> \n";
$mailheaders .= "Reply-To: $CP\n\n";

mail($recipient, $subject, $msg, $mailheaders);

echo "<HTML><HEAD>";
echo "<TITLE>Formulaire envoyer!</TITLE></HEAD><BODY>";
echo "<H1 align=center>Merci, $nom </H1>";
echo "<P align=center>";
echo "Votre formulaire à bien été envoyé !</P>";
echo "</BODY></HTML>";

?> 


Messages postés
28933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
31 mai 2020
2 469
Tu as bien envoyé tes fichiers sur le serveur OVH ?
Quelle l'url de ta page ?
Messages postés
13
Date d'inscription
jeudi 2 avril 2020
Statut
Membre
Dernière intervention
4 avril 2020
>
Messages postés
28933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
31 mai 2020

Messages postés
28933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
31 mai 2020
2 469
Tu as une erreur 500 .. donc un souci dans le code php
et en effet... erreur sur la ligne
$msg .= "Nom:\t$nom\n";*


Test ça
<?php
//début de ton fichier php :
error_reporting ( E_ALL );
ini_set ( 'display_errors', TRUE );
ini_set ( 'display_startup_errors', TRUE );


$type_transport = !empty( $_POST['type_transport'] ) ?  $_POST['type_transport'] : NULL; 
$nbr_colis = !empty( $_POST['nbr_colis']) ? $_POST['nbr_colis'] : NULL; 
$poid_total = !empty( $_POST['poid_total']) ? $_POST['poid_total'] : NULL; 
$longueur = !empty( $_POST['longueur']) ? $_POST['longueur']: NULL; 
$largeur = !empty( $_POST['largeur']) ? $_POST['longueur']: NULL; 
$hauteur = !empty( $_POST['hauteur']) ? $_POST['largeur']: NULL;  
$ville_dep = !empty( $_POST['ville_dep']) ? $_POST['ville_dep']: NULL;  
$pi_dep = !empty( $_POST['pi_dep']) ? $_POST['pi_dep']: NULL; 
$ville_ar = !empty( $_POST['ville_ar']) ? $_POST['ville_ar']: NULL; 
$pi_ar = !empty( $_POST['pi_ar']) ? $_POST['pi_ar']: NULL; 
$societe = !empty( $_POST['societe']) ? $_POST['societe']: NULL; 
$nom = !empty( $_POST['nom']) ? $_POST['nom']: NULL; 
$prenom = !empty( $_POST['prenom']) ? $_POST['prenom']: NULL;  
$tel = !empty( $_POST['tel']) ? $_POST['tel']: NULL;  
$email = !empty( $_POST['email']) ? $_POST['email']: NULL;  
$message = !empty( $_POST['message']) ? $_POST['message']: NULL; 

print("<center>Bonjour $type_transport $nbr_colis</center>"); 

$msg = "type_de_transport:\t$type_transport\n";
$msg .= "Nombre_de_colis:\t$nbr_colis\n";
$msg .= "Poids_Total:\t$poid_total\n";
$msg .= "Longueur:\t$longueur\n";
$msg .= "Largeur:\t$largeur\n";
$msg .= "Hauteur:\t$hauteur\n";
$msg .= "Ville_de_depart:\t$ville_dep\n";
$msg .= "Pays_de_depart:\t$pi_dep\n";
$msg .= "ville_arrivee:\t$ville_ar\n";
$msg .= "Pays_arrivee:\t$pi_ar\n";
$msg .= "Societe:\t$societe\n";
$msg .= "Nom:\t$nom\n";
$msg .= "Prenom:\t$prenom\n";
$msg .= "Tel:\t$tel\n";
$msg .= "E-mail:\t$email\n";
$msg .= "Message:\t$message\n\n";

$recipient = "xxxxxxxx@xxxxxx.fr";
$subject = "Formulaire";

$mailheaders = "From: Mon site web<> \n";
$mailheaders .= "Reply-To: $CP\n\n";

if(mail($recipient, $subject, $msg, $mailheaders)){
  echo "<HTML>
          <HEAD>
            <TITLE>Formulaire envoyer!</TITLE>
          </HEAD>
          <BODY>
            <H1 align=center>Merci, $nom </H1>
            <P align=center>
            Votre formulaire à bien été envoyé !</P>
          </BODY>
       </HTML>";
}else{
  echo "Erreur lors de l'envoi.";

}

?>



Cordialement,
Jordane
Messages postés
13
Date d'inscription
jeudi 2 avril 2020
Statut
Membre
Dernière intervention
4 avril 2020

Merci, ça fonctionne ! Parfois un caractère inopiné et c'est la catastrophe !

Une dernière question : comment faire pour gérer par exemple le poids total, pour forcer l'utilisateur à entrer un caractère numérique uniquement, je dois le gérer en javascript ou en php il y a des choses paramétrées qui existent ?
Messages postés
28933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
31 mai 2020
2 469
En html, déjà, l'utilisation d'un input number.
Puis, par dessus, un code Javascript qui utilise un regex pour forcer le numérique
Et enfin, pour être sûr, côté serveur, l'utilisation de la fonction floatval (si nombre à virgule) ou intval() pour les nombres entiers
Messages postés
13
Date d'inscription
jeudi 2 avril 2020
Statut
Membre
Dernière intervention
4 avril 2020

Merci de ton aide précieuse et de ta patience !

Un dernier service à te demander : j'ai mis mon adresse mail professionnelle dans l'exemple php, pourais-tu la modifier en xx@xx.xx car je n'ai pas la main !

Je te souhaite une excellente journée !!! Bon courage !

Messages postés
28933
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
31 mai 2020
2 469
c'est fait
Messages postés
13
Date d'inscription
jeudi 2 avril 2020
Statut
Membre
Dernière intervention
4 avril 2020

Merci pour tout !!!