Aller au contenu

Demande d'aide pour php dans formulaire


Sujets conseillés

Posté

Bonjour Occi,

j'étais exaspérée et je n'ai pas envie de m'énerver encore. Excuses-moi de t'avoir répondu ainsi. Disons, que t'étais enragée envers moi-même (et le suis toujours).

En admettant que je créée ma variable ::)

<?php
$maVariable = 'je veux recevoir les emails en utf';
echo $maVariable;
?>

('Content-Type: text/html; charset="charset=utf-8"

'Content-Transfer-Encoding: 8bit';)

Ce même formulaire que j'utilisais jusqu'à l'année dernière fonctionnait parfaitement, mais l'année dernière mon site était en HTML 4.01 Transitional//EN - charset iso-8859-1.

Maintenant il est en XHTML 1.0 Transitional//EN - charset utf-8.

Ma demande d'aide en 2005

Occi, ne me demande pas mes essais, je ne sais pas comment essayer. Je ne sais pas où la mettre ni comment l'attribuer. Les internautes doivent juste remplir un formulaire en indiquant leur adresse email, leur prénom, nom, etc ...

et moi je voudrais juste recevoir les informations en texte sans caractères bizarres.

Je peux me contenter de recevoir les emails avec des hiéroglyphes :)

Posté (modifié)

Bonjour Nullette,

ok :)

Disons, que t'étais enragée envers moi-même (et le suis toujours).

Je pense que que tu veux dire "que tu étais enragée envers toi même", parce que moi je n'étais pas enragée envers toi. :D

Donc le formulaire, concernant l'exemple de la variable c'était pour te montrer comment utiliser une variable et donc te permettre de les utiliser comme tu veux dans le formulaire mais passons on va aller directement à l'essentiel.

Essaye ça ci-dessous et si tu n'obtiens pas ce que tu veux, poste le code entier (parce que j'imagine qu'il y a eu des changements entre celui de 2005, de la page 1 de ce sujet et celui que tu as actuellement sur ton site) :

Donc on va déclarer notre header (entête du mail) et le mettre dans la fonction mail comme ça :

/* En-tetes de l'e-mail */
$headers = 'From: '.$nom.' <'.$email.'>'."\n";
$headers .='Reply-To:'.$nom.' <'.$email.'>'."\n";
$headers .='Content-Type: text/html; charset="charset=utf-8"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';

//On envoit un mail contenant les donnees
mail("nullette_AT_nullette.com","Inscription pique-nique 2009",
"Email : $email
Prénom : $prenom
Nom : $nom
Ville : $ville
Téléphone : $telephone
Nombre de personnes : $nbpersonnes
Places disponibles : $nbplaces
Demande de places : $demande

Commentaire :
$comments", $headers);

Tu fais un copier / coller du code ci-dessus pour remplacer la partie envoi de mail.

Si tu reçois toujours des hiéroglyphes, essaye plutôt ce code :

// Le message
$message = "Email : $email
Prénom : $prenom
Nom : $nom
Ville : $ville
Téléphone : $telephone
Nombre de personnes : $nbpersonnes
Places disponibles : $nbplaces
Demande de places : $demande

Commentaire :
$comments";

// Décode UTF-8 en iso-8859-1
$message = utf8_decode($message);

//On envoit un mail contenant les donnees
mail("nullette_AT_nullette.com","Inscription pique-nique 2009", $message, "From: $email\nReply-To: $email");

IMPORTANT ! Que tu utilises le 1er code ou le 2eme, pense à modifier ton adresse email dans le code car là l'adresse est nullette_AT_nullette.com tu ne le recevras donc pas.

Voila normalement tu recevras le mail à ton adresse et depuis ton client mail préféré tu pourras répondre à la personne, ta réponse sera envoyé à l'adresse email que la personne a indiqué dans le formulaire.

Occi

Modifié par Occi
Posté

Bonjour Occi,

:):)

IMPORTANT ! Que tu utilises le 1er code ou le 2eme, pense à modifier ton adresse email dans le code car là l'adresse est nullette_AT_nullette.com tu ne le recevras donc pas.

Après une migraine qui m'a clouée au lit hier. Me voici plus reposée.

Ca fonctionne !

La première suggestion n'a pas fonctionné

/* En-tetes de l'e-mail */
$headers = 'From: '.$nom.' <'.$email.'>'."\n";

etc.

Voici le code complet :

<?php
$tab_required = split('[, ]+', $_POST[required]);
$nb_manquant = 0;
foreach ($tab_required as $required) {
if (empty($_POST[$required])) {
$nb_manquant = $nb_manquant + 1;
if ($required == 'email') {
$leChamp = 'adresse email';
} else if ($required == 'prenom') {
$leChamp = 'prénom';
} else if ($required == 'nom') {
$leChamp = 'Nom';
} else if ($required == 'ville') {
$leChamp = 'ville';
} else if ($required == 'telephone') {
$leChamp = 'téléphone';
} else if ($required == 'nbpersonnes') {
$leChamp = 'Nombre de personnes';
}
echo '<p class="postinfo3">Vous n\'avez pas rempli le champ "'.$leChamp.'" !<br /></p>';
}
}
if ($nb_manquant > 0) {
echo 'Le formulaire n\'a pas eté envoyé. Utilisez le bouton Précédent de votre navigateur...<a href="java script:window.history.go(-1)" target="_self" title="retour">ou cliquez ici pour retourner au bulletin</a>';
exit;}

//informations saisies
echo " Email : $email<br />";
echo " Prénom : $prenom<br />";
echo " Nom : $nom<br />";
echo " Ville : $ville<br />";
echo " Téléphone : $telephone<br />";
echo " Nombre de personnes : $nbpersonnes<br />";
echo " Places disponibles : $nbplaces<br />";
echo " Demande de place : $demande<br />";
echo " Commentaires : $comments<br />";
// Le message
$message = "Email : $email
Prénom : $prenom
Nom : $nom
Ville : $ville
Téléphone : $telephone
Nombre de personnes : $nbpersonnes
Places disponibles : $nbplaces
Demande de places : $demande
Commentaire : $comments";
// Décode UTF-8 en iso-8859-1
$message = utf8_decode($message);

//On envoit un mail contenant les donnees
mail("nullette_AT_nullette.com","Inscription pique-nique 2009", $message, "From: $email\nReply-To: $email");
?>

Il y a juste le slash qui s'affiche si on écrit quelque chose avec une apostrophe :

Commentaires : J\'espère que ça fonctionne. à bientôt!

Mais c'est un moindre mal.

Merci beaucoup beaucoup. :flower:

Posté (modifié)

Bonjour,

content pour toi :)

Pour ton problème de slash, je pense que ça vient de la config de ton php.ini :

Au niveau de //informations saisies

rajoute :

if (get_magic_quotes_gpc()) {
$comments = stripslashes($comments);
}

Bon week end

Modifié par Occi
Posté

Impeccable !!!

Je vais m'exercer pour ajouter la même chose pour $nom

Voir si il faut un else if.

Bon week-end.

Avec mon site, je suis dans les Pâques orthodoxes ...les oeufs, les liturgies, etc..

Posté

Salut,

dans ce cas tu peux le faire pour tous en remplaçant

if (get_magic_quotes_gpc()) {
$comments = stripslashes($comments);
}

Par

if (get_magic_quotes_gpc()) {
$message = stripslashes($message);
}

Posté

Salut et merci Occi,

moi j'avais fait et ça fonctionne !

if (get_magic_quotes_gpc()) {
$comments = stripslashes($comments);
}
if (get_magic_quotes_gpc()) {
$nom = stripslashes($nom);
}

L'idée de mettre la variable $message

ne m'était même pas venue en tête :)

Posté

Salut,

oui sinon, bien vue. :)

Par contre si tu laisses tel quel, tu peux éviter de tester 2 fois en remplaçant par :

if (get_magic_quotes_gpc()) {
$comments = stripslashes($comments);
$nom = stripslashes($nom);
}

Posté

Salut,

je ne me complique pas la vie (j'ai un autre problème où ni l'hébergeur ni les forums phpbb3 me répondent ...).

J'ai gardé la suggestion que tu m'avais faite l'autre jour avec la variable $message.

Tout va bien (à part que tout le monde est en vacances et personne ne s'inscrit :)).

Merci.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...