IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Formulaire PHP ne fonctionne pas ?


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Consultant Marketing
    Inscrit en
    Mars 2016
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Marketing
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2016
    Messages : 293
    Par défaut Formulaire PHP ne fonctionne pas ?
    Bonsoir,

    J'ai créé un formulaire en php et il ne m'indique aucune erreur quand je fais ENVOYER, mais ça ne fonctionne pas, si vous avez une idée ?

    Mon formulaire dans mon fichier index.html :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <form>
                            <div class="field">
                                <label class="label">Votre nom</label>
                                <div class="control">
                                  <input id="name" class="input" type="text" placeholder="votre nom" name="name">
                                </div>
                              </div>
                              <div class="field">
                                <label class="label">Votre prénom</label>
                                <div class="control">
                                  <input id="firstname" class="input" type="text" placeholder="votre prénom" name="firstname">
                                </div>
                              </div>
                              <div class="field">
                                <label class="label">Votre email</label>
                                <div class="control">
                                  <input id="email" class="input" type="text" placeholder="votre email" name="email" >
                                </div>
                              </div>
                              <div class="field">
                                <label class="label">Votre message</label>
                                <div class="control">
                                  <textarea id="message" class="textarea" placeholder="votre message..." name="message"></textarea>
                                </div>
                              </div>
                        </form>
                        <button class="button is-link" id="send_email">Envoyer !</button>

    mail.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    <?php
    if($_POST){
      $firstname = $_POST['firstname']
      $email = $_POST['email'];
      $name = $_POST['name'];
      $message = $_POST['message'];
     
      $headers = "MIME-Version: 1.0\r\n";
      $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
      $headers .= "From: $name <$email>\r\nReply-to : $name <$email>\nX-Mailer:PHP";
     
      $subject="Infos";
      $destinataire="MonMail@gmail.com";
      $body="$message";
     
      if(mail($destinataire,$subject,$body,$headers)) {
        $response['status'] = 'success';
        $response['msg'] = 'your mail is sent';
      } else {
        $response['status'] = 'error';
        $response['msg'] = 'Something went wrong';
      }
     
      echo json_encode($response);
    }
    ?>
    et mon main.js

    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    // send email
        $('#send_email').click(function(e){
    		e.preventDefault();
    		var data = {
    			email: $('#email').val(),
    			name: $('#name').val(),
    			objet: $('#firstname').val(),
    			message: $('#message').val()
    		};
    		$.ajax({
    			url: "mail.php",
    			type: 'POST',
    			data: data,
    			success: function(data) {
    				$('#js_alert_success').css({'display' : 'block'});
    				setTimeout(function(){
    					$('#js_alert_success').css({'display' : 'none'});
    					$('#email').val("");
    					$('#name').val("");
    					$('#firstname').val("");
    					$('#message').val("")
    				}, 3000);
    			},
    			error: function(data) {
    				$('#js_alert_danger').css({'display' : 'block'});
    				setTimeout(function(){
    					$('#js_alert_danger').css({'display' : 'none'});
    					$('#email').val("");
    					$('#name').val("");
    					$('#firstname').val("");
    					$('#message').val("")
    				}, 3000);
    			}
    		});
    	});
    });

  2. #2
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 513
    Par défaut
    Salut,

    Tu envois objet: $('#firstname').val() dans le paramètre data de l'ajax pourtant tu essaies de le récupérer en tant que $_POST['firstname'] en php.


    Modifies ton paramètre ajax objet en firstname, ou bien l'inverse en remplaçant le $_POST["firstname"] par $_POST["objet"].

    Ton fichier php renvoit un résultat json avec json_encode(), alors que le dataType d'ajax n'est pas défini à "json" :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $.ajax({
        ....,
        dataType:"json", // imporrtante !!!    
    });


    Puis il y a un point virgule manquant dans :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $firstname = $_POST['firstname'] // ici !

  3. #3
    Membre très actif
    Homme Profil pro
    Consultant Marketing
    Inscrit en
    Mars 2016
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Marketing
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2016
    Messages : 293
    Par défaut
    Merci à vous pour votre réponse.

    j'ai fais les modifications mes sa ne fonctionne pas, j'ai peut être pas mis au bon endroit dans mon fichier main.js ?
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    // send email
        $('#send_email').click(function(e){
    		e.preventDefault();
    		var data = {
    			email: $('#email').val(),
    			name: $('#name').val(),
    			firstname: $('#firstname').val(),
    			message: $('#message').val()
    		};
    		$.ajax({
                            dataType:"json",
    			url: "mail.php",
    			type: 'POST',
    			data: data,
    			success: function(data) {
    				$('#js_alert_success').css({'display' : 'block'});
    				setTimeout(function(){
    					$('#js_alert_success').css({'display' : 'none'});
    					$('#email').val("");
    					$('#name').val("");
    					$('#firstname').val("");
    					$('#message').val("")
    				}, 3000);
    			},
    			error: function(data) {
    				$('#js_alert_danger').css({'display' : 'block'});
    				setTimeout(function(){
    					$('#js_alert_danger').css({'display' : 'none'});
    					$('#email').val("");
    					$('#name').val("");
    					$('#firstname').val("");
    					$('#message').val("")
    				}, 3000);
    			}
    		});
    	});
    });

  4. #4
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 513
    Par défaut
    Salut,

    Citation Envoyé par cdevl37 Voir le message
    j'ai fais les modifications mes sa ne fonctionne pas,
    tu veux dire quoi par "ça ne fonctionne pas" ? une erreur ? ou bien pas d'erreur mais l'email n'est pas envoyé ?

    Il faut t'assurer d'abord que le retour du fichier php est exécuté dans success et pas error :
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    success: function(data) {
       console.log("data :",data);//ça donne quoi cette ligne?
    },
    error:function(data){
       alert("Erreur ajax :",data.reponseText);//au cas où il y a une erreur, cette alerte s'affichera.
    }

  5. #5
    Membre très actif
    Homme Profil pro
    Consultant Marketing
    Inscrit en
    Mars 2016
    Messages
    293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant Marketing
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2016
    Messages : 293
    Par défaut
    Bonsoir,

    Je n'ai aucune erreur mais le mail n'est pas envoyé, en ce qui concerne votre bout de code comment je dois l’intégrer dans mon code ? Car je n'ai jamais fait de js.

    mon script main.js :

    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    $('#send_email').click(function(e){
    		e.preventDefault();
    		var data = {
    			email: $('#email').val(),
    			name: $('#name').val(),
    			firstname: $('#firstname').val(),
    			message: $('#message').val()
    		};
    		$.ajax({
                dataType:"json",
    			url: "mail.php",
    			type: 'POST',
    			data: data,
    			success: function(data) {
    				$('#js_alert_success').css({'display' : 'block'});
    				setTimeout(function(){
    					$('#js_alert_success').css({'display' : 'none'});
    					$('#email').val("");
    					$('#name').val("");
    					$('#firstname').val("");
    					$('#message').val("")
    				}, 3000);
    			},
    			error: function(data) {
    				$('#js_alert_danger').css({'display' : 'block'});
    				setTimeout(function(){
    					$('#js_alert_danger').css({'display' : 'none'});
    					$('#email').val("");
    					$('#name').val("");
    					$('#firstname').val("");
    					$('#message').val("")
    				}, 3000);
    			}
    		});
    	});

  6. #6
    Expert confirmé Avatar de Toufik83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2012
    Messages
    2 513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 2 513
    Par défaut
    Tu n'as pas mis ni la console.log dans success, ni alert dans error.

    Allezzzz un peu d'effort (copier/coller) de ta part s'il ta plait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    success: function(data) {
             console.log("data success : ",data);//ouvre la console du navigateur (F12 sous chrome) et regarde si cette ligne est affichée ! 
             $('#js_alert_success').css({'display' : 'block'});
    	  setTimeout(function(){
    		$('#js_alert_success').css({'display' : 'none'});
    		$('#email').val("");
    		$('#name').val("");
    		$('#firstname').val("");
    	        $('#message').val("");
    	}, 3000);
    },
    error:function(data){
            alert("Erreur ajax :",data.responseText);//cette alerte est affichée ou pas ?
            $('#js_alert_danger').css({'display' : 'block'});
    	setTimeout(function(){
    		$('#js_alert_danger').css({'display' : 'none'});
    		$('#email').val("");
    		$('#name').val("");
    		$('#firstname').val("");
    		$('#message').val("");
    	 }, 3000);
    }

Discussions similaires

  1. formulaire de contact PHP qui fonctionne pas
    Par Nicodu10 dans le forum Langage
    Réponses: 4
    Dernier message: 02/04/2016, 09h47
  2. Fonction mail() php ne fonctionne pas
    Par silverspike dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 18/12/2007, 10h11
  3. Validation formulaire qui ne fonctionne pas
    Par dom59111 dans le forum Langage
    Réponses: 6
    Dernier message: 25/10/2007, 10h18
  4. [MySQL] Un formulaire qui ne fonctionne pas comme il faut (problèmes avec stripslashes & com)
    Par vincent.b dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 30/04/2007, 20h02
  5. [UBUNTU] Le php ne fonctionne pas
    Par zuxion dans le forum Ubuntu
    Réponses: 29
    Dernier message: 07/06/2006, 18h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo