Problème avec formulaire HTML5, ajax et php...

Fermé
Vyrgul69 Messages postés 4 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 6 juillet 2015 - Modifié par Vyrgul69 le 2/07/2015 à 23:21
Vyrgul69 Messages postés 4 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 6 juillet 2015 - 6 juil. 2015 à 21:57
Bonjour,

J'ai un problème avec un formulaire que je fais pour un site internet...

Si je remplis le formulaire, j'obtiens cela :


<gras>Nom de l'expéditeur : moi
Courriel de l'expéditeur : test@test.ca

Téléphone de l'expéditeur :

Code postal de l'expéditeur :

message de l'expéditeur : Est ce que cela marche ou non ?

Adresse IP de l'expéditeur : 66.20
DLSAM : modemcable0201-66.mc.videotron.ca

Comme vous pouvez le voir, une partie des informations sont bonne mais je n'ai pas le numéro de téléphone ni le code postal....

Qu'elle est le problème svp ? Et pourriez-vous m'indiquer comment faire en sorte de forcer les numéro sur ce format 514 987 1234 et pour le code postal A1B 2C3 ( zip canadien).

Je vous remercie d'avance pour toute l'aide :)))

Voici les codes :

Code HTML :

<body>
<div id="form_contact">
<form action="process.php" id="contact" method="POST">
<p>
<label for="nom" class="nom">Nom</label>
<br /><input id="nom" name="nom" type="text">
<span id="msg_nom"></span>
</p>
<p>
<label for="email" class="nom">Courriel</label>
<br /><input id="nom" name="email" type="text">
<span id="msg_email"></span>
</p>
<p>
<label for="tel">Téléphone</label>
<br /><input id="tel" name="tel" type="tel" pattern="[0-9]*">
<span id="msg_tel"></span>
</p>
<p>
<label for="sujet" class="sujet">Sujet</label>
<br /><input id="sujet" name="sujet" type="text">
<span id="msg_sujet"></span>
</p>
<p>
<label for="message">Message</label>
<br /><textarea id="message" name="message" rows="10" cols="80"></textarea>
<span id="msg_message"></span>
</p>
<p>
<input type="submit" value="Envoyer" />
</p>
</form>
<span id="msg_all"></span>
</div><!-- end of #form_contact -->
<script src="http://code.jquery.com/jquery-1.8.3.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
$("#contact").submit(function(event){
var nom = $("#nom").val();
var prenom = $("#prenom").val();
var sujet = $("#sujet").val();
var tel = $("#tel").val();
var email = $("#email").val();
var message = $("#message").val();
var dataString = nom + prenom + tel + sujet + email + message;
var msg_all = 'Merci de remplir tous les champs';
var msg_alert = 'Merci de remplir tous les champs';
if(dataString == '')
{
$('#msg_all').html(msg_all);
}
else if(nom == '')
{
$('#msg_nom').html(msg_alert);

}
else if(prenom == '')
{
$('#msg_prenom').html(msg_alert);

}
else if(tel == '')
{
$('#msg_tel').html(msg_alert);

}
else if(sujet == '')
{
$('#msg_sujet').html(msg_alert);
}
else if(email == '')
{
$('#msg_email').html(msg_alert);
}
else if(message == '')
{
$('#msg_message').html(msg_alert);
}
else
{
$.ajax({
type : "POST",
url: $(this).attr('action'),
data: $(this).serialize(),
success : function(){
$('#contact').html('<p> Formulaire bien envoyé </p>');
},
error: function(){
$('#contact').html("<p>Erreur d'appel, le formulaire ne peut pas fonctionner</p>");
}
});
}
return false;
});
});
</script>
</body>


et le code PHP :
<body>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php

// CONDITIONS NOM
if ( (isset($_POST["nom"])) && (strlen(trim($_POST["nom"])) > 0) ) {
$nom = stripslashes(strip_tags($_POST["nom"]));
} else {
echo "Merci d'écrire un nom <br />";
$nom = "";
}

// CONDITIONS EMAIL
if ( (isset($_POST["email"])) && (strlen(trim($_POST["email"])) > 0) && (filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) ) {
$email = stripslashes(strip_tags($_POST["email"]));
} elseif (empty($_POST["email"])) {
echo "Merci d'écrire une adresse email <br />";
$mail = "";
} else {
echo "Email invalide :(<br />";
$email = "";
}

// CONDITIONS tel
if ( (isset($_POST["tel"])) && (strlen(trim($_POST["tel"])) > 0) ) {
$sujet = stripslashes(strip_tags($_POST["tel"]));
} else {
echo "Merci d'écrire un numéro de téléphone <br />";
$tel = "";
}

// CONDITIONS SUJET
if ( (isset($_POST["sujet"])) && (strlen(trim($_POST["sujet"])) > 0) ) {
$sujet = stripslashes(strip_tags($_POST["sujet"]));
} else {
echo "Merci d'écrire un sujet <br />";
$sujet = "";
}


// CONDITIONS MESSAGE
if ( (isset($_POST["message"])) && (strlen(trim($_POST["message"])) > 0) ) {
$message = stripslashes(strip_tags($_POST["message"]));
} else {
echo "Merci d'écrire un message<br />";
$message = "";
}

// Les messages d'erreurs ci-dessus s'afficheront si Javascript est désactivé

// PREPARATION DES DONNEES
$ip = $_SERVER["REMOTE_ADDR"];
$hostname = gethostbyaddr($_SERVER["REMOTE_ADDR"]);
$destinataire = "monemail@gmail.com";
$objet = "[Contact - Excel-Pro] " . $sujet;
$contenu = "Nom de l'expéditeur : " . $nom . "\r\n";
$contenu .= "Courriel de l'expéditeur : " . $email . "\r\n\n";
$contenu .= "Téléphone de l'expéditeur : " . $tel . "\r\n\n";
$contenu .= "Code postal de l'expéditeur : " . $zip . "\r\n\n";
$contenu .= "message de l'expéditeur : " . $message . "\r\n\n";

$contenu .= "Adresse IP de l'expéditeur : " . $ip . "\r\n";
$contenu .= "DLSAM : " . $hostname;

$headers = "From: " . $email . " \r\n"; // ici l'expediteur du mail
$headers .= "Content-Type: text/plain; charset=\"ISO-8859-1\"; DelSp=\"Yes\"; format=flowed /r/n";
$headers .= "Content-Disposition: inline \r\n";
$headers .= "Content-Transfer-Encoding: 7bit \r\n";
$headers .= "MIME-Version: 1.0";

// SI LES CHAMPS SONT MAL REMPLIS
if ( (empty($nom)) && (empty($sujet)) && (empty($email)) && (!filter_var($email, FILTER_VALIDATE_EMAIL)) && (empty($message)) ) {
echo 'echec :( <br /><a href="contact.html">Retour au formulaire</a>';
} else {
// ENCAPSULATION DES DONNEES
mail($destinataire, $objet, utf8_decode($contenu), $headers);
echo 'Formulaire envoyé';
}

// Les messages d'erreurs ci-dessus s'afficheront si Javascript est désactivé
?>

</body>
A voir également:

3 réponses

codeurh24 Messages postés 761 Date d'inscription samedi 29 mars 2014 Statut Membre Dernière intervention 8 septembre 2018 123
Modifié par codeurh24 le 3/07/2015 à 03:48
Bonjour.

pour le tel tu a mis sujet donc c'est normale que tel ne soit pas initialisé.
et pour zip il n'y a rien donc c'est normale aussi que sa ne marche pas.

C'est a toi de modifier sa en faisant attention c'est tout.
et pour le reste ces fonctions peuvent t'aider:

$chaine = wordwrap("5149871234 ", 3, " ", true);
$chaine[11] = "";
echo $chaine;

echo wordwrap("A1B2C3 ", 3, " ", true);
0
Vyrgul69 Messages postés 4 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 6 juillet 2015
3 juil. 2015 à 18:55
Bonjour,

Merci beaucoup :) cela marche super.

Si je voulais rajouter un champs pour intégrer l'envoi d'un CV, est ce possible de le faire ??

Merci encore
0
Vyrgul69 Messages postés 4 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 6 juillet 2015
3 juil. 2015 à 19:10
Oups, j'ai encore un bug... le contrôle semble pas marcher...

Je dois pas mettre au bon endroit les codes de Codeurh24... Merci de m'aider encore :)

$chaine = wordwrap("5149871234 ", 3, " ", true);
$chaine[11] = "";
echo $chaine;

echo wordwrap("A1B2C3 ", 3, " ", true);
0
Vyrgul69 Messages postés 4 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 6 juillet 2015
Modifié par jordane45 le 6/07/2015 à 22:00
Bonjour, désolé de relancer le sujet... mais je bug encore :S

Le formulaire marche, je reçois les courriels sans problème mais, mais les contrôles ne sont pas effectué.

Si je teste sans avoir indiqué d'adresse émail, j'ai un message qui me le dit, mais il me dit aussi que le formulaire à bien été envoyé...

De plus je ne réussis pas à intégrer les codes :

$chaine = wordwrap("5149871234 ", 3, " ", true);
$chaine[11] = "";
echo $chaine;

echo wordwrap("A1B2C3 ", 3, " ", true);

J'ai aussi rajouté un champs pour récupérer un CV... cela ne semble pas marcher.

Quelles sont les erreurs svp... j'en ai vraiment besoin....

Désolé de vous déranger encore et merci d'avance pour toutes aide :)

Page HTML :
    <div>
        <div class="col-lg-6 col-sm-9 pull-center">
          <h4>
            Merci de nous envoyer votre CV ainsi que vos motivations.
          </h4>
           <div class="form_contact">
           <form action="process2.php" id="contact" method="POST">
              <div class="form-group">
                <label for="name" class="nom">Nom - Prénom</label>
                <input type="text" placeholder="" id="name" name="nom" class="form-control" required />
                <span id="msg_nom"></span>
            <div class="form-group">
            <label for="email" class="nom">Courriel</label>
            <input type="text" placeholder="" id="email" name="email" class="form-control" required />
            <span id="msg_email"></span>
        </p>
        <p>
           <div class="form-group"> 
           <label for="tel" class="nom">Téléphone</label>
           <input type="text" placeholder="" id="tel" name="tel" class="form-control" pattern="[0-9]*" required />
            <span id="msg_tel"></span></div>
        </p>
        <p>
           <div class="form-group"> 
            <label for="zip" class="nom">Code Postal</label>
            <input type="text" placeholder="" id="zip" name="zip" class="form-control" required />
            <span id="msg_zip"></span></div>
        </p>
        <p>
        <div class="form-group">
        <label for='cv'>Déposez ici votre CV</label>
        <input type='file' id="cv" name='cv' class="form-control" value='parcourir' /></p>
        <p>
         <p>
            <div class="form-group"> 
            <label for="sujet" class="sujet">Objet</label>
            <input type="sujet" placeholder="" id="sujet" name="sujet" class="form-control" required />
            <span id="msg_sujet"></span></div></p>
                   <p> 
            <div class="form-group">
            <label for="message">Message</label> 
            <textarea id="message" name="message" rows="5" class="form-control"></textarea> 
            <span id="msg_message"></span></div>
             </p> 
        <p>
                          <button class="btn btn-info" type="submit">
                Envoyer
              </button>
    </form>
    <span id="msg_all"></span> 

    </div>


Ajax :


</script>
<script src="http://code.jquery.com/jquery-1.8.3.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
$("#contact").submit(function(event){
var nom = $("#nom").val();
var prenom = $("#prenom").val();
var sujet = $("#sujet").val();
var tel = $("#tel").val();
var zip = $("#zip").val();
var email = $("#email").val();
var cv = $("#cv").val();
var message = $("#message").val();
var dataString = nom + prenom + tel + sujet + email + message;
var msg_all = 'Merci de remplir tous les champs';
var msg_alert = 'Merci de remplir tous les champs';
if(dataString == '')
{
$('#msg_all').html(msg_all);
}
else if(nom == '')
{
$('#msg_nom').html(msg_alert);

}
else if(prenom == '')
{
$('#msg_prenom').html(msg_alert);

}
else if(tel == '')
{
$('#msg_tel').html(msg_alert);

}
else if(zip == '')
{
$('#msg_zip').html(msg_alert);
}
else if(cv == '')
{
$('#msg_cv').html(msg_alert);
}
else if(sujet == '')
{
$('#msg_sujet').html(msg_alert);
}
else if(email == '')
{
$('#msg_email').html(msg_alert);
}
else if(message == '')
{
$('#msg_message').html(msg_alert);
}
else
{
$.ajax({
type : "POST",
url: $(this).attr('action'),
data: $(this).serialize(),
success : function(){
$('#contact').html('<p> Formulaire bien envoyé </p>');
},
error: function(){
$('#contact').html("<p>Erreur d'appel, le formulaire ne peut pas fonctionner</p>");
}
});
}
return false;
});
});
</script>


et PHP


<?php

// CONDITIONS NOM
if ( (isset($_POST["nom"])) && (strlen(trim($_POST["nom"])) > 0) ) {
$nom = stripslashes(strip_tags($_POST["nom"]));
} else {
echo "Merci d'écrire votre nom et prénom <br />";
$nom = "";
}

// CONDITIONS EMAIL
if ( (isset($_POST["email"])) && (strlen(trim($_POST["email"])) > 0) && (filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) ) {
$email = stripslashes(strip_tags($_POST["email"]));
} elseif (empty($_POST["email"])) {
echo "Merci d'écrire une adresse email <br />";
$email = "";
} else {
echo "Email invalide :(<br />";
$email = "";
}

// CONDITIONS tel
if ( (isset($_POST["tel"])) && (strlen(trim($_POST["tel"])) > 0) ) {
$tel = stripslashes(strip_tags($_POST["tel"]));
} else {
echo "Merci d'écrire un numéro de téléphone <br />";
$tel = "";
}

// CONDITIONS SUJET
if ( (isset($_POST["sujet"])) && (strlen(trim($_POST["sujet"])) > 0) ) {
$sujet = stripslashes(strip_tags($_POST["sujet"]));
} else {
echo "Merci d'écrire un sujet <br />";
$sujet = "";
}



//PIECE JOINTE
$file_name = $_FILES['cv']['name'];
$source = $_FILES['cv']['tmp_name'];
$file_type = $_FILES['cv']['type'];
$file_size = $_FILES['cv']['size'];
move_uploaded_file($source,"./".$file_name);


if($file_name!="")
{
$file = $name_file;
$handle = fopen($file,'rb');
$content = fread($handle, $file_size);
$content = chunk_split(base64_encode($content));
fclose($handle);

$message .= '--'.$boundary."\r\n";
$message .= 'Content-type:'.$file_type.';name='.$file_name."\r\n";
$message .= 'Content-transfer-encoding:base64'."\r\n";
$message .= 'Content-Disposition:inline; filename='.$file_name."\r\n\r\n";
$message .= "\r\n\r\n";
$message .= $content."\r\n";

}
$message .= '--'.$boundary.'--'."\r\n";

// CONDITIONS MESSAGE
if ( (isset($_POST["message"])) && (strlen(trim($_POST["message"])) > 0) ) {
$message = stripslashes(strip_tags($_POST["message"]));
} else {
echo "Merci d'écrire un message<br />";
$message = "";
}

// Les messages d'erreurs ci-dessus s'afficheront si Javascript est désactivé

// PREPARATION DES DONNEES
$ip = $_SERVER["REMOTE_ADDR"];
$hostname = gethostbyaddr($_SERVER["REMOTE_ADDR"]);
$destinataire = "mail@gmail.com";
$objet = "[Contact - Excel-Pro] " . $sujet;
$contenu = "Nom de l'expéditeur : " . $nom . "\r\n";
$contenu .= "Courriel de l'expéditeur : " . $email . "\r\n\n";
$contenu .= "Téléphone de l'expéditeur : " . $tel . "\r\n\n";
$contenu .= "Message de l'expéditeur : " . $message . "\r\n\n";
$contenu .= "Pièce jointe : " . $file_name . "\r\n\n";

$contenu .= "Adresse IP de l'expéditeur : " . $ip . "\r\n";
$contenu .= "DLSAM : " . $hostname;

$headers = "From: " . $email . " \r\n"; // ici l'expediteur du mail
$headers .= "Content-Type: text/plain; charset=\"ISO-8859-1\"; DelSp=\"Yes\"; format=flowed /r/n";
$headers .= "Content-Disposition: inline \r\n";
$headers .= "Content-Transfer-Encoding: 7bit \r\n";
$headers .= "MIME-Version: 1.0";

// SI LES CHAMPS SONT MAL REMPLIS
if ( (empty($nom)) && (empty($sujet)) && (empty($email)) && (!filter_var($email, FILTER_VALIDATE_EMAIL)) && (empty($message)) ) {
echo 'echec :( <br /><a href="contact.html">Retour au formulaire</a>';
} else {
// ENCAPSULATION DES DONNEES
mail($destinataire, $objet, utf8_decode($contenu), $headers);
echo 'Formulaire bien envoyé, merci de nous avoir contacté';
}

// Les messages d'erreurs ci-dessus s'afficheront si Javascript est désactivé
?>



EDIT : Ajout du LANGAGE dans les balises de code.
0