bigsido Porte physiquement la lumière | Salut HFR, je vous la fait courte : J'ai sur www.sido.fr un formulaire de contact.
Le truc c'est que php et moi ça fait deux. Bon, je suis pas à la rue non plus, mais c'est vraiment pas mon truc.
Concrètement, il fonctionne. J'ai trois champs "Pseudo" "Email" "Message" et le problème est que quand le champ pseudo contient un espace cela ne fonctionne plus, le message part pas.
Et honnêtement, je ne sais pas pourquoi Voici mon code php :
Code :
- <?php
- if($_POST)
- {
- $to_email = "blablabla@blablabla.com"; //Recipient email, Replace with own email here
- $from_email = 'blabla@blabla.com'; //from mail, it is mandatory with some hosts and without it mail might endup in spam.
-
- //check if its not an ajax request just exit!
- if(!isset($_SERVER['HTTP_X_REQUESTED_WITH'])) {
- print "Une erreur est survenue !";
- exit;
- }
-
- //Sanitize input data using PHP filter_var().
- $sender_name = filter_var($_POST["form_user_name"], FILTER_SANITIZE_STRING);
- $sender_email = filter_var($_POST["form_user_email"], FILTER_SANITIZE_EMAIL);
- $country_code = filter_var($_POST["form_country_code"], FILTER_SANITIZE_NUMBER_INT);
- $message = filter_var($_POST["form_message"], FILTER_SANITIZE_STRING);
- $subject = "Nouveau mail depuis Sido.fr !";
-
- //additional php validation
- if(strlen($sender_name)<3){ // If length is less than 4 it will output JSON error.
- $output = json_encode(array('type'=>'error', 'text' => 'Votre nom est trop court, ou le champ est vide !'));
- die($output);
- }
- if(!filter_var($sender_email, FILTER_VALIDATE_EMAIL)){ //email validation
- print json_encode(array('type'=>'error', 'text' => 'Hmmm, votre mail semble avoir un problème !'));
- exit;
- }
- if(strlen($message)<3){ //check emtpy message
- print json_encode(array('type'=>'error', 'text' => 'Votre message semble trop court... '));
- exit;
- }
-
- //email body
- $message_body = "Message from $sender_name\n";
- $message_body .= "------------------------------\n";
- $message_body .= "$message\n";
- $message_body .= "------------------------------\n";
- $message_body .= "$sender_name\n";
- $message_body .= "$sender_email\n";
-
- //proceed with PHP email.
- $headers = 'From: '. $sender_name .'' . "\r\n" .
- 'Reply-To: '.$sender_email.'' . "\r\n" .
- 'X-Mailer: PHP/' . phpversion();
-
- $send_mail = mail($to_email, $subject, $message_body, $headers);
-
- if(!$send_mail){
- //If mail couldn't be sent, this is probably server's fault, check your mail configuration or consult your host
- print json_encode(array('type'=>'error', 'text' => 'Could not send mail! Please check your PHP mail configuration or consult your web host.'));
- exit;
- }else{
- /*$code_html = "<script>$(`#my_contact_form`).toggle();</script>"
- print $code_html*/
- print json_encode(array('type'=>'message', 'text' => 'Salut '. $sender_name.'! Merci beaucoup pour ton petit mail !'));
- exit;
- }
- }
- ?>
|
Je pense qu'il me faut modifier "$sender_name = filter_var($_POST["form_user_name"], FILTER_SANITIZE_STRING);"
Mais je pensait que FILTER_SANITIZE_STRING me nettoyait les champs dont les espaces...
Une idée les enfants ? Message édité par bigsido le 01-05-2018 à 17:55:44 ---------------
Site perso de Sido, un développeur-front gentil sur paris : www.sido.fr
|