Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/01/2012, 12h25   #1
Invité de passage
 
Inscription : juin 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 8
Points : 0
Points : 0
Par défaut Formulaire POST problème de caractère

Hello à tous,

Ma question n'est pas très originale, mais apres avoir lu pas mal de truc sur le net je n'arrive tjs pas à écrire mon script correctement.

Le problème est que s'il y a des caractères spéciaux dans mon formulaire il ne sont pas retranscrit correctement.

Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
$TO = "conception@lesbons7.com";
$subject = '=?UTF-8?B?'.base64_encode("Quelqu'un s'est inscrit sur votre site pour recevoir des informations").'?=';
$h = "From: " . $TO;
$message = "";
while (list($key, $val) = each($_POST)) {
$message .= "$key : $val\n";
}
mail($TO, $subject, $message, $h);
header("Location:index.html");
?>
Je ne pense pas que ça soit compliqué mais je suis novice en php.

Merci d'avance à celui qui pourra me dire quoi faire ;-)
kevinlc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/01/2012, 13h32   #2
Nouveau Membre du Club
 
Inscription : mai 2004
Messages : 84
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : mai 2004
Messages : 84
Points : 36
Points : 36
Hello,
un coup de utf8_decode sur ton $var, ça passe pas mieux ?
lionheart33806 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 11h34   #3
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Salut,
tu dois préciser l'encodage dans le header. Tu l'ajoutes dans ta variable $h.
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 12h28   #4
Invité de passage
 
Inscription : juin 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 8
Points : 0
Points : 0
Merci pour vos réponses.

Par contre je n'arrive pas à écrire cela correctement. J'ai fais plusieurs essais mais rien ne marche.

N'est-ce pas comme ça que je doit l’écrire ?

Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
$TO = "conception@lesbons7.com";
$subject = '=?UTF-8?B?'.base64_encode("Quelqu'un s'est inscrit sur votre site pour recevoir des informations").'?=';
$h = utf8_encode("From: " . $TO);
$message = "";
while (list($key, $val) = each($_POST)) {
$message .= "$key : $val\n";
}
mail($TO, $subject, $message, $h);
header("Location:index.html");
?>
Désolé mais le PHP c'est pas ma tasse de thé
kevinlc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 12h39   #5
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Bonjour,

je pense qu'il voulait plutôt dire d'ajouter la directive charset dans ton header :

Code :
1
2
3
 
$h = "From: ".$TO."\\n";
$h .= "Content-Type: text/plain; charset=UTF-8\\n";
__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 14h41   #6
Invité de passage
 
Inscription : juin 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 8
Points : 0
Points : 0
Merci mais malheureusement ça ne marche tjs pas.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$TO = "conception@lesbons7.com";
$h = "From: ".$TO."";
$h .= "Content-Type: text/plain; charset=UTF-8\\n";
$subject = '=?UTF-8?B?'.base64_encode("Quelqu'un s'est inscrit sur votre site pour recevoir des informations").'?=';
$message = "";
while (list($key, $val) = each($_POST)) {
$message .= "$key : $val\n";
}
mail($TO, $subject, $message, $h);
header("Location:index.html");
?>
Y a-t-il une erreur ?
kevinlc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 14h46   #7
Membre Expert
 
Avatar de ska_root
 
Homme
Développeur informatique
Inscription : août 2005
Messages : 1 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : août 2005
Messages : 1 179
Points : 1 580
Points : 1 580
Citation:
Envoyé par kevinlc Voir le message
Y a-t-il une erreur ?
ahh affirmatif

un indice :
compares mes 2 lignes avec les tiennes...


__________________
http://cdemarche.developpez.com/

Tu as la réponse à ta question ? N'oublies pas le petit en bas à gauche de ton message...
ska_root est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 15h10   #8
Rédacteur/Modérateur
 
Avatar de Thes32
 
Homme
Développeur Web
Inscription : décembre 2006
Messages : 2 335
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2006
Messages : 2 335
Points : 3 774
Points : 3 774
Citation:
Envoyé par ska_root Voir le message
Bonjour,

je pense qu'il voulait plutôt dire d'ajouter la directive charset dans ton header :

Code :
1
2
3
 
$h = "From: ".$TO."\\n";
$h .= "Content-Type: text/plain; charset=UTF-8\\n";
Code :
1
2
3
 
$h = "From: $TO \r\n";
$h .= "Content-Type: text/plain; charset=UTF-8\r\n";
__________________
Développeur | Zend Certified Engineer

Étapes Pour mieux se servir du forum:
1. Commencez par lire les cours et tutoriels ;
2. Faites une recherche;
3. Faites un post si rien trouvé dans les deux étapes précédentes en respectant les règles;

Nix>_Rien n'est plus pratique que la théorie
Thes32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 15h10   #9
Invité de passage
 
Inscription : juin 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 8
Points : 0
Points : 0
Bon indice

Par contre ça ne change pas mon problème



J'ai une erreur qui vient se mettre dans la tete du mail.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$TO = "conception@lesbons7.com";
$h = "From: ".$TO."\\n";
$h .= "Content-Type: text/plain; charset=UTF-8\\n";
$subject = '=?UTF-8?B?'.base64_encode("Quelqu'un a est inscrit sur votre site pour recevoir des informations").'?=';
$message = "";
while (list($key, $val) = each($_POST)) {
$message .= "$key : $val\n";
}
mail($TO, $subject, $message, $h);
header("Location:index.html");
?>
kevinlc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2012, 15h12   #10
Invité de passage
 
Inscription : juin 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : juin 2011
Messages : 8
Points : 0
Points : 0
Citation:
Envoyé par Thes32 Voir le message
Code :
1
2
3
 
$h = "From: $TO \r\n";
$h .= "Content-Type: text/plain; charset=UTF-8\r\n";
Ca MARCHE !!!


Merci à tous
kevinlc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h41.


 
 
 
 
Partenaires

Hébergement Web