PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 03-03-2010 02:16:46

dobi19
Membre
Inscription : 23-07-2009
Messages : 35

Formulaire spécifique

Bonjour,

je rencontre un petit soucis avec un formulaire, je m'explique:

Sur la page petite annonce j'ai mis un formulaire qui sera renvoyé à la personne qui a mis l'annonce.

Enfin je voudrais parce que ça cloche un peu....

ça marché bien, le mail était envoyé a la personne qui a mis l'annonce, l'email du site apparaissé comme expéditeur
par contre l'objet "subject" lui apparaissé dans le mail... Donc j'ai bidouillé un peu et depuis ça ne marche plus.

Aussi un probléme avec les accents aussi qui font des carrés...

A la base je suis parti d'un script sur le web d'un formulaire simple et tout béte, mais la je cale...

Je vous met le formulaire pour ceux qui voudront bien y jetter un oeil ce serait super sympas:

Le formulaire

<form method=POST action=formmail.php >
<input type=hidden name=subject value=2>
<input type=hidden name=id value=<?php echo $row_Recordset4['email']; ?>>

<table widht="20%">

<tr><td>Votre Email:<font color="red">*</font></td>
    <td><input type=text name=Email size=30></td></tr>

<tr><td>Votre Nom:</td>
    <td><input type=text name=Nom size=30></td></tr>

<tr><td>Sujet:</td>
    <td><input type=text name=Sujet size=30></td></tr>

<tr><td colspan=2>Votre demande:<br>
  <textarea COLS=55 ROWS=6 name=Descriptif></textarea>
</td></tr>
</table>
<br> <input type=submit value=Envoyer> -
    <input type=reset value=Annuler>
</form>

Le code du traitement:

<?php
$TO = "$id";
$OR = "webmaster@monsite.eu";

$h  = "From: " . $OR;

$message = "";

while (list($key, $val) = each($HTTP_POST_VARS)) {
  $message .= "$key : $val\n";
}

mail($TO, $subject, $message, $h);

Header("Location: ../index.php?page=merci" );

?>

Merci d'avance!

Hors ligne

#2 03-03-2010 06:38:04

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Formulaire spécifique

Saluton,
$HTTP_POST_VARS est obsolète depuis peut-être 10 ans.
On utilise dorénavant $_POST


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#3 03-03-2010 14:24:05

dobi19
Membre
Inscription : 23-07-2009
Messages : 35

Re : Formulaire spécifique

Re bonjour,

j'ai changé pour $_POST, je te remercie!

Par contre, saurais tu me dire comment récupérer "<?php echo $row_Recordset4['email']; ?>" du formulaire
dans le traitement à cette ligne "$TO = "$id";"  ($id pour moi = <?php echo $row_Recordset4['email']; ?>)

Autre soucis éviter que $id n'apparaisse dans le mail ainsi que subject, subject à la base devrait apparaitre
dans objet logiquement et il n'en ai rien, il apparait dans le mail...

je suis novice, désolé...

Merci encore en tous cas!

Hors ligne

#4 03-03-2010 14:53:04

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Formulaire spécifique

Dans ton script, la variable $subject n'est pas définie.

Si le champ a pour attribut name="id" alors il devrait être accessible sous la forme $_POST['id']


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#5 03-03-2010 15:41:39

dobi19
Membre
Inscription : 23-07-2009
Messages : 35

Re : Formulaire spécifique

Merci Maljuna Kris,

pour l'objet j'ai rajouté cette ligne et ça marche:

$subject = "Vous avez 1 nouveau message pour votre annonce auto ";

par contre ce que j'ai fait pour récupérer "<?php echo $row_Recordset4['email']; ?>"

j'ai rajouté:

$TO = "$id";

$id = $_POST['id'];

Mais ça ne marche pas...

Hors ligne

#6 03-03-2010 17:08:24

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : Formulaire spécifique

Si tu réfléchis 2 secondes tu vas trouver.
Que contient $id quand tu fais

$TO = "$id";

On n'en sait rien, mais tu affectes $_POST['id'] dans $id seulement après dans ton code;
C'est ballot, non ?


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#7 03-03-2010 17:23:13

dobi19
Membre
Inscription : 23-07-2009
Messages : 35

Re : Formulaire spécifique

En effet... désolé!

ça marche impeccable, il me reste juste a comprendre comment ne pas faire apparaitre
"$id" dans le mail.

Merci beaucoup!

Hors ligne

#8 03-03-2010 20:12:16

dobi19
Membre
Inscription : 23-07-2009
Messages : 35

Re : Formulaire spécifique

Re,

pour l'id dans l'email, je n'arrive toujours pas à l'enlever...

Une petite question, personne ne connaitrait un petit javascript pour protéger
les formulaires du spam avec une question pour valider et l'irradiquation de code html dans le message etc...

J'ai déja mis un javascript en message d'alert pour que tout les champs soient remplis, mais je pense
qu'un peu + de sécurité ne serait pas plus mal.


Merci!

Dernière modification par dobi19 (03-03-2010 20:13:37)

Hors ligne

#9 03-03-2010 22:45:02

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Formulaire spécifique

Le javascript n'est pas une sécurité.
Le javascript peut se désactiver sur tout navigateur.

C'est pour cela qu'il faut tout vérifier avec le PHP.

Hors ligne

#10 04-03-2010 03:03:52

dobi19
Membre
Inscription : 23-07-2009
Messages : 35

Re : Formulaire spécifique

Et en effet oui, j'y avais pas pensé!!! Je vais revoir ça alors...

Merci xTG

Le sujet est résolu, merci encore!

Dernière modification par dobi19 (07-03-2010 03:23:46)

Hors ligne

Pied de page des forums