Help Me

Résolu
tonton_tonio Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
tonton_tonio Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -
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

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

.
0
tonton_tonio Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
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 !?!
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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


0
tonton_tonio Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Je suis novice désolé et suis hébergé par OVH !
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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...
0
tonton_tonio Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
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 ?
0
tonton_tonio Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   > tonton_tonio Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
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 !?!
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > tonton_tonio Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tonton_tonio Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
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>";

?> 


0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Tu as bien envoyé tes fichiers sur le serveur OVH ?
Quelle l'url de ta page ?
0
tonton_tonio Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Oui effectivement !

http://colisbolt.com/form_contact.htm
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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.";

}

?>



0
tonton_tonio Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
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 ?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
0
tonton_tonio Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
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 !

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
c'est fait
0
tonton_tonio Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour tout !!!
0