Problème de caractères spéciaux

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème de caractères spéciaux

Re: Problème de caractères spéciaux

par Henry » 03 avr. 2011, 17:19

C'était bien ça ! Merci !

Re: Problème de caractères spéciaux

par - HXSS - » 03 avr. 2011, 14:50

je ne connais pas la structure de ta page mais il semblerait que ton code php soit intégré dans la structure de ta page html
<html><body>
<?php ... ?>
</body></html>

dans ce cas c'est normal que la fonction header ne fonctionne pas étant donné qu'il ne doit y avoir aucun caractère envoyé avant
pour fonctionner il faudrait que ta page ressemble à
<?php ... ?>
<html> etc

Re: Problème de caractères spéciaux

par Henry » 03 avr. 2011, 14:01

Merci de ton aide, mais hélas ça me marche pas...
La page que j'appelle est une page .html, mais je ne pense pas que cela joue ?

Re: Problème de caractères spéciaux

par - HXSS - » 03 avr. 2011, 11:39

if  (mail($to, $subject, $msg, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n")){
                 
                  header('Location: tapage.php'); //redirection vers tapage
		  exit(); 
                 
                  }else{
                         
                  echo "<h3>echoue</h3>";  // message affiché s'il y a une erreur

Re: Problème de caractères spéciaux

par Henry » 02 avr. 2011, 11:42

J'ai suivi vos conseils et ça marche, merci !

J'ai une autre question, comment faire pour remplacer le message "echo" par un lien vers une autre page ?
if  (mail($to, $subject, $msg, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n")){
                  
                  echo "<h3>Thanks! / Merci !</h3>"; // message affiché si le mail est bien envoyé
                  
                  }else{
                          
                  echo "<h3>echoue</h3>";  // message affiché s'il y a une erreur

Re: Problème de caractères spéciaux

par AB » 01 avr. 2011, 19:22

Faut être cohérent et choisir le même encodage pour toutes les pages.

Je vois dans ton code php : header('Content-Type: text/html; charset=iso-8859-1'); et dans ton code html : <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />.

C'est l'un ou l'autre pas les deux. Relis autant que nécessaire le tuto sur le lien que t'a donné moogli.

Re: Problème de caractères spéciaux

par Invité » 01 avr. 2011, 15:55

Merci de ta réponse, mais je m'y perds un peu...

La page html qui contient le formulaire est encodée en : UTF-8
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Elle envoie les données à la page PHP ci-dessus.

Faut-il que cette page PHP contienne uniquement le script , ou le script doit-il être mis dans les balises body d'une page html ?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Document sans titre</title>
</head>

<body>
<?php

?>
</body>
</html>

Re: Problème de caractères spéciaux

par moogli » 01 avr. 2011, 14:54

Salut,

A tu verifier l'encodage de ton fichier (qu'il soit bien iso) idem pour la page d'origine ainsi que le charset du formulaire ?

A tu regarder le tuto sur l'encodage ( bon c'est utf-8 faut juste appliquer pour l'iso).


@+

Problème de caractères spéciaux

par Henry » 01 avr. 2011, 14:49

Bonjour,

Je suis débutant en PHP et j'aurai besoin de votre aide.

Pour le formulaire de contact de mon site j'utilise le script ci-joint.
Mon problème vient des caractères accentués reçus dans le mail, mais aussi de ceux affichés par le message "echo" dans la page html, je n'arrive pas à faire que les deux soient bons ?

Merci d'avance !
<?php 
		  // Encodage d'une page html en iso-8859-1
          header('Content-Type: text/html; charset=iso-8859-1');
		  
		  // Mettre votre adresse email ci-dessous :
		  $to = '[email protected]';
		  
		  // Les information de l'expéditeur (NE PAS MODIFIER !)
		  
		  $name = stripslashes($_POST['name']); // récupère le nom de l'expéditeur
		  $email = stripslashes($_POST['email']); // récupère l'adresse mail de l'expéditeur
		  
		  // Le sujet
		  $subject .= "Sujet : ".stripslashes($_POST['subject']);
		  
		  
		  // Le message que vous allez recevoir dans votre boîte mail (NE PAS MODIFIER SI VOUS NE MAITRISEZ PAS LE SUJET !)

		  $msg  = "From : $name \r\n";  // le nom de l'expéditeur
		  $msg .= "e-Mail : $email \r\n"; // l'adresse mail de l'expéditeur
		  $msg .= "$subject \r\n\n"; // le sujet
		  $msg .= "Message : \r\n\n".stripslashes($_POST['message'])."\r\n\n";  // le message
		  
		  // Informations optionnelles

		  $msg .= "Informations sur l'expéditeur : \r\n\n"; // Titre
		  $msg .= "Adresse IP : ".$_SERVER["REMOTE_ADDR"]."\r\n"; // adresse IP de l'expéditeur
		  $msg .= "Navigateur : ".$_SERVER["HTTP_USER_AGENT"]."\r\n"; // informations sur le navigateur
		  $msg .= "Page d'expédition : ".$_SERVER["HTTP_REFERER"]; // lien d'expédition
		  
		  // Fin Informations optionnelles
		  
				
		  if  (mail($to, $subject, $msg, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n")){
		  
		  echo "<h3>Thanks! / Merci !</h3>"; // message affiché si le mail est bien envoyé
		  
		  }else{
			  
		  echo "<h3>echoue</h3>";  // message affiché s'il y a une erreur
		  
		  }
?>