Page 1 sur 1

reprendre un valeur inscrite dans l'url

Posté : 16 févr. 2007, 07:58
par AleXXi
Bonjour,

Mon problème est le suivant:

j'ai crée une première page demandant l'Email du visiteur ce qui le renvoit à une deuxième page lui proposant de lui envoyer un mail mais voila ou je bloque:

1ere page:

demande du mail + fonction input

Code : Tout sélectionner

<input name="email" type="text" value="E-mail" maxlength="50" /> </strong></p> <p align="center"> <input name="Submit" type="submit" value="GO--------->" />
2eme page:

url de la page: http://mon-site.com/connect.php?email=[email protected]&Submit=Envoyer

cette page contient un formulaire

3eme page indiquant que le mail est bien envoyé:

Code : Tout sélectionner

<?php $to = '$email'; $sujet = 'Vous avez bien recu ce mail!!!'; $from = "From:[email protected]\n"; $from .= "MIME-version: 1.0\n"; $from .= "Content-type: text/html; charset= iso-8859-1\n"; $message = "voici les bonnes reponses:". $_POST['rep']; mail($to,$sujet,$message,$from); Votre mail a été envoyé! ?>

Par exemple si je met $to = 'mon-adresse-email';

je reçoit bien le mail

mais je n'arrive pas a récupérer l'adresse email inscrite dans l'url de la page précédente :cry:

Ma méthode peut paraître bizarre mais je veux qu'à tout moment linternaute puisse reconsulter la deuxième page sans passer par la première! si vous connaissez une autre solution pas trop complexe je suis preneur

Cordialement AleXXi
Et merci d'avance à ceux qui savent et qui font partager leur savoir^^

Posté : 16 févr. 2007, 09:36
par Ajoloca
Bonjour,

Je suppose que tu récupères $email en fonction de la méthode de ta première form (soit $_GET[] ou bien $_POST[])

Ensuite tu as une erreur ici
$to = '$email'; 
La variable $to, tel que tu le fais contiendra la chaine de caractères $+e+m+a... et non pas le contenu de la variable $mail.

Quand tu utilises les apostrophes ('') pour entourer une variable, la variable n'est pas évaluée.

Tu peux le faire de deux manières
 //1 - En affectant directement la variable 
$to =  $mail;
// ou bien en entourant la variable contenant la valeur par des guillemets
$to = "$mail";

Posté : 16 févr. 2007, 10:08
par AleXXi
Merci beaucoup pour ta réponse mais ca ne fonctionne toujours pas.

en effet j'ai bien placé :

Code : Tout sélectionner

<?php $email=$_GET["email"]; ?>
je veux qu'à tout moment l'internaute puisse reconsulter la deuxième page sans passer par la première juste en placant le lien dans ses favoris par exemple.

Si je pouvais trouver une solution sans passer par la base de donné ca m'arrangerais beaucoup car je débute en php.

Merci quand même

Posté : 16 févr. 2007, 10:22
par Ajoloca
Re,

Quand tu dis, "ça ne marche toujours pas", ça veut dire quoi ?
Tu as un message d'erreur ?
Ça ne fais pas quoi ?
Tu dois être plus explicite.

Ensuite, je ne comprends pas bien ta question (accéder à tout moment à cette page).

Il faut bien qu'à un moment l'utilisateur te donne les informations nécessaires, dans ta seconde page tu ne fais que les traiter.

Si ce que tu veux dire c'est, Une fois que l'utilisateur à saisi les infos qu'il puisse directement accéder à la page d'envoi de mail (seconde page) il faut que tu conserves les infos QQ part, non ??

La solution la plus simple c'est d'utiliser les variables de session.

Posté : 16 févr. 2007, 10:31
par AleXXi
Quand j'ai dis non ca ne fonctionne toujours pas, ca n'affiche aucun message d'erreur simplement ca envois aucun mail :(.

dans la page 1 l'utilisateur entre juste un E-mail.

il est redirigé vers une page qui a une adresse du type:

Code : Tout sélectionner

http://monsite.tonsite.biz/[email protected]&Submit=GO--------%3E
Cette adresse fonctionne a tout moment pour accéder à la deuxième page et l'email de l'utilisateur est dedans donc il doit bien il y avoir une solution pour la reprendre et envoyer le mail via la page 3. Enfin j'espère

Posté : 16 févr. 2007, 10:39
par Ajoloca
Re,

Si tu n'as pas de message d'erreur, il faut passer par l'affichage des valeurs et s'assurer qu'elles contiennent bien ce que l'on attend.
Fais donc un affichage de chacune des variables avant l'envoi et regarde le résultat.

Comme je te l'ai dit les méthodes GET et POST te permettent de passer des valeurs entre deux pages suivies mais ne conservent pas les valeurs transmises. Tu dois le faire toi-même et la solution la plus simple c'est de les conserver dans des variables de session.

Regarde la documentation sur les sessions. Si tu as des soucis pour les utiliser, reviens nous voir avec le bout de code que tu auras fait.

Posté : 16 févr. 2007, 10:46
par charabia
Si tu ne souhaites pas utiliser les sessions tu peux passer tes variables de formulaire en formulaire avec la méthode POST.

Page 1 :
Un formulaire contenant le champ pour mettre son mail + bouton submit
--> envoi à page 2

Page 2 :
Récupération de la valeur du champs avec POST dans le second formulaire. Tu mets la valeur récupérée dans un champs caché (hidden).
--> envoi à page 3

Page 3 :
Ta page d'envoi de mail avec la récupération de toutes les variables nécessaires.

Posté : 16 févr. 2007, 10:58
par AleXXi
je suis en trainde lire l'aide sur les sessions

Sinon pour la page 1 j'ai fais:

Code : Tout sélectionner

<input name="email" type="text" maxlength="113" class="css0034" />
page 2:

Code : Tout sélectionner

<?php $email = $_POST['email']; ?>
page 3:

Code : Tout sélectionner

$to = "$email";
La page 2 recoit bien l'email de la page 1 mais cela ne va pas jusqu'a la page 3 puis j'ai peur qu'en faisant comme ca , il sera impossible de reprendre la manip en partant de la page 2

Posté : 16 févr. 2007, 11:06
par charabia
Tout dépend de ta façon de gérer la page 2. Si tu passes par un autre formulaire tu peux en refaire un champ. C'est sûr que si tu tentes de récupérer cette variable comme ça sans formulaire ce n'est pas possible sans session.

Mais les sessions sont mieux pour la gestion.