Problème d'accents avec PHP

Fermé
kenzzzi Messages postés 6 Statut Membre -  
Chris 94 Messages postés 1937 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour à vous tous,

J'ai un souci avec un script PHP! Lors de la récupération d'infos, dans le message, les lettres avec accent sont transformées. Faut savoir que je débute en PHP et que je n'ai pas vraiment de références :

Voici le script :

<?php

define("WEBMASTER_EMAIL", 'moi@host.com');

error_reporting (E_ALL ^ E_NOTICE);

function ValidateEmail($email)
{
$regex = '/([a-z0-9_.-]+)'.
'@'.
'([a-z0-9.-]+){2,255}'.
'.'.
'([a-z]+){2,10}/i';

if($email == '')
return false;
else
$eregi = preg_replace($regex, '', $email);
return empty($eregi) ? true : false;
}

$post = (!empty($_POST)) ? true : false;

if($post)
{
$name = stripslashes($_POST['name']);
$email = trim($_POST['email']);
$subject = stripslashes($_POST['subject']);
$message = stripslashes($_POST['message']);

$error = '';

if(!$name || $name == "Name*")
$error .= 'Veuillez indiquer votre nom.<br />';

if(!$email || $email == "Email*")
$error .= 'Veuillez indiquer votre adresse email.<br />';

if($email && !ValidateEmail($email))
$error .= 'Adresse email invalide.<br />';

if(!$message)
$error .= "Veuillez entrer un message avant de poster.<br />";

if(!$error)
{
$mail = mail(WEBMASTER_EMAIL, $subject, $message,
"From: ".$name." <".$email.">\r\n"
."Reply-To: ".$email."\r\n"
."X-Mailer: PHP/" . phpversion());

if($mail)
echo 'OK';
}
else
echo '<div class="formstatuserror">'.$error.'</div>';
}

?>

Quelqu'un peut m'aider à corriger ça svp! Merci d'avance

4 réponses

  1. Pierrecastor Messages postés 10830 Date d'inscription   Statut Modérateur Dernière intervention   4 215
     
    Salut

    Problème d'encodage (souvent etre UTF8 et ASCII)

    Remplace tes caractère accentuer par leur code HTML :
    https://www.commentcamarche.net/contents/489-caracteres-speciaux-html
    0
  2. kenzzzi Messages postés 6 Statut Membre
     
    Salut Pierrecastor;

    Non non, c'est plutôt au moment de récupérer les informations. Quand je reçois le mail, dans la partie $message, les lettres accentués sont transformées... Mais merci de ta réponse
    0
    1. Pierrecastor Messages postés 10830 Date d'inscription   Statut Modérateur Dernière intervention   4 215
       
      Ca n'empêche pas que c'est un problème d'encodage de caractères et que tu devrait essayer de remplacer tes caractères accentué.

      Exemple :
      Le numéro de téléphone ne doit contenir que des chiffres

      En :

      Le numéro de téléphone ne doit contenir que des chiffres



      Rhaaa, saleté d'interpréteur HTML :

      https://pastebin.com/cbKtAXNY
      0
  3. kenzzzi Messages postés 6 Statut Membre
     
    Oui, oui ça je sais! C'était juste une erreur dans ma part! Au fait, je pense que le problème est dans cette partie du script :

    $mail = mail(WEBMASTER_EMAIL, $subject, $message,
    "From: ".$name." <".$email.">\r\n"
    ."Reply-To: ".$email."\r\n"
    ."X-Mailer: PHP/" . phpversion());

    Je cherche une fonction, ou autre qui encode les accents au moment de l'envoi
    0
    1. Pierrecastor Messages postés 10830 Date d'inscription   Statut Modérateur Dernière intervention   4 215
       
      Pourquoi ne pas le faire en dure dans ton code ?
      0
    2. kenzzzi Messages postés 6 Statut Membre
       
      Comment ça? Explique stp
      0
    3. Pierrecastor Messages postés 10830 Date d'inscription   Statut Modérateur Dernière intervention   4 215
       
      Dans ton code PHP, tu remplace tout les caractères accentué par leur code HTML.

      Tu peut le faire avec un rechercher / remplacer sur ton éditeur de texte (je sais pas sur quoi tu code.
      0
  4. Chris 94 Messages postés 1937 Date d'inscription   Statut Modérateur Dernière intervention   7 536
     
    Bonsoir,

                                  Doublon !
    Merci de n'ouvrir qu'une discussion par sujet.
    0