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

AJAX Discussion :

[AJAX] Formulaire ajax pour envoyer un mail fonctionne en local mais pas en ligne (ovh)


Sujet :

AJAX

  1. #1
    Invité
    Invité(e)
    Par défaut [AJAX] Formulaire ajax pour envoyer un mail fonctionne en local mais pas en ligne (ovh)
    Bonjour à tous

    Voici mon problème :
    tout allait bien, jusqu'à ce que je mette le code en ligne. En local avec un serveur wamp, la fonctionnalité passe très bien, je recois le mail sans ereur et la page ne se recharge pas, j'affiche un message comme quoi le mail à bien été envoyé.

    En revanche, une fois sur un serveur ovh, ca ne passe plus, il m'affiche l'erreur suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"error":"Vous n'avez pas rentr\u00e9 de nom de famille"}
    je ne comprends pas cette erreur, car lorsque je verifie les données passé en post avec l'inspecteur de chrome, il y a bien une donné liée au champ lastname qui est envoyé. Mais c'est comme si la page process.php qui traite les données envoyées ne recevait pas l'information...

    je viens vers vous car là, je sèche! Un petit coup de main?

    voici les trois parties du code :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <div id="contact-form">
    	<form id='form_mail' method="post" action="process.php" class="">  
    		<div id="errors" >
    		</div>
    		<table>
    			<tr>
    				<td class="title_td">
    					<label for="prenom"  class="">Votre prénom</label>
    				</td>
    			</tr>
    			<tr>
    				<td class="title_td">
    					<input type="text" id="name" name="name" class="vider" placeholder="Cliquez pour renseigner votre prénom" value="" required="">
    				</td>
    			</tr>
    			<tr>
    				<td class="title_td">
    					<label for="nom"  class="">Votre nom</label>
    				</td>
    			</tr>
    			<tr>
    				<td class="title_td">
    					<input type="text" id="lastname" name="lastname" class="vider" placeholder="Cliquez pour renseigner votre nom de famille" value="" required="">
    				</td>
    			</tr>
    	           <tr>
    			        <td class="title_td">
    					<label for="email"  class="width100"  >Votre adresse Email</label>
    				</td>
    			</tr>
    			<tr>
    				<td class="title_td">
    					<input type="email" id="email" name="email" class="vider" placeholder="Cliquez pour renseigner votre adresse Email" value="" required="">
    				</td>
    	          	</tr>
    		</table>
    		<table>
    		         <tr>
    				<td class="title_td">
    					<label for="objet"  class="">Objet de votre message</label>
    				</td>
    			</tr>
    			<tr>
    				<td class="title_td">
    					<input type="text" id="objet" name="objet" class="vider" placeholder="Cliquez pour renseigner le sujet de votre message" value="" required="">
    				</td>
    			</tr>
    			<tr>
    				<td class="form-block">
    					<label for="message">Votre message</label>
    				</td>
    			<tr>
    				<td class="title_td">
    					<textarea id="message" name="message" class="vider" placeholder="Cliquez pour commencer à écrire votre message" required=""></textarea>
    				</td>
    			</tr>
    			<tr>
    				<td class="form-block form-submit">
    					<input type="submit" name="submit" value="Envoyer"  id="submit" class="">
    				</td>
    			</tr>
    			<tr>
    				<td class="title_td"><p>Note : Tous les champs doivent obligatoirement être remplis</p></td>
    			</tr>
    			</tr>
    		</table>
    	</form>
    </div>

    Le JS

    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
    27
    28
    29
    30
    31
    function action_form(){
     	$("#form_mail").submit(function(event) {
    		event.preventDefault();
    		$("#errors").fadeOut(200).html("").fadeIn();
     
    		prenom = $(this).find("#name").val();
    		nom = $(this).find("#lastname").val();
    		email = $(this).find("#email").val();
    		objet = $(this).find("#objet").val();
    		message = $(this).find("#message").val();
     
    		$.post("process.php", {
    			prenom:prenom,
    			nom:nom,
    			email:email,
    			objet:objet,
    			message:message
    		}, function(data) {
    			if(data == "") {
    				$("#errors").append("<p id='info'>Votre mail m'est bien parvenu. Merci.</p>");
    				   $(':input','#form_mail').not(':button, :submit, :reset, :hidden').val('').removeAttr('checked').removeAttr('selected');
    			} else {
    				for(i in data) {
    					$("#errors").append("<p id='info'>Il semble quelque chose ce soit mal passé...votre message n'a pas été envoyé : <br />" + data[i] + "</p>");
    				}
    			}
    		}, "json");
     
    		return false;
    	})
    }
    et enfin, la page process.php appelée dans la fonction JS:

    Code php : 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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <?php
    if( !empty($_POST) ){  
     
        $formok = true;  
        $errors = array(); 
        //submission data  
        $ipaddress = $_SERVER['REMOTE_ADDR'];  
        $date = date('d/m/Y');  
        $time = date('H:i:s');  
     
        $name = $_POST['prenom'];  
        $lastname = $_POST['nom'];  
        $email = $_POST['email'];
        $objet = $_POST['objet'];  
        $message = $_POST['message'];  
     
        if(empty($name)){  
            $formok = false;
            $errors['error'] = "Vous n'avez pas rentré de prénom";
        }  
     
        if(empty($lastname)){  
            $formok = false;
            $errors['error'] = "Vous n'avez pas rentré de nom de famille";
        }  
     
        if(empty($email)){  
            $formok = false;
            $errors['error'] = "Vous n'avez pas rentré d'email";  
        //validate email address is valid  
        }elseif(!filter_var($email, FILTER_VALIDATE_EMAIL)){  
            $formok = false;
            $errors['error'] = "Vous n'avez pas rentré d'email valide";
        }  
     
        if(empty($objet)){  
            $formok = false;
            $errors['error'] = "Vous n'avez pas rentré d'objet";
        }  
     
        if(empty($message)){  
            $formok = false;
            $errors['error'] = "Vous n'avez pas rentré de messages";
        }  
        //validate message is greater than 20 characters  
        elseif(strlen($message) < 2){  
            $formok = false;  
            $errors['error'] = "Votre message doit être supérieur à 20 caractères";
        }  else{
        	$message= nl2br(htmlspecialchars($message));
        }
     
        if($formok){
        	//$errors['error'] = 'Ok';
            $headers = "From: {$email}". "\r\n";
            $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
            $emailbody = "<p>Vous avez reçu un nouveau message de votre site web.</p> 
                          <p><strong>De: </strong>{$name} {$lastname}</p> 
                          <p><strong>Adresse mail: </strong>{$email}</p>
                          <p><strong>Objet du message: </strong>{$objet}</p>
                          <p><strong>Message: </strong> {$message}</p> 
                          <p>Ce message a été envoyé depuis l'adresse IP: {$ipaddress} le {$date} à {$time}</p>";  
     
            mail("monmail@mail.com","{$objet}",$emailbody,$headers);
        }  
      echo json_encode($errors);
    }  
    ?>

    merci à tous ceux qui se pencheront sur ce souci!
    Dernière modification par Bovino ; 22/05/2013 à 14h47. Motif: Merci d'indiquer le langage utilisé ([code=xxx]) + réduction d'indentation !!!

  2. #2
    Invité
    Invité(e)
    Par défaut [résolu]
    bien bien bien...

    J'ai résolu mon problème, qui se situait surtout entre la chaise et le clavier...

    en fait ce code marche très bien mais j'avais oublié de changer un chemin dans le js car je ne lance ce script que lorsque je suis sur une page contact, ce qui fatalement ne pouvait pas fonctionner après upload sur serveur...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formulaire fonctionne en local mais pas en ligne
    Par floflo25 dans le forum AJAX
    Réponses: 3
    Dernier message: 04/02/2017, 12h56
  2. Appplication fonctionne en local mais pas en ligne
    Par dreamover dans le forum Langage
    Réponses: 1
    Dernier message: 08/07/2009, 22h00
  3. [MySQL] requête fonctionne en local mais pas en ligne
    Par toams69 dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 10/02/2009, 14h22
  4. [RegEx] Regex fonctionnant en local mais pas en ligne
    Par MadSoldier dans le forum Langage
    Réponses: 2
    Dernier message: 04/12/2008, 18h04
  5. Réponses: 5
    Dernier message: 23/12/2006, 16h55

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