page précédente en php

page précédente en php - PHP - Programmation

Marsh Posté le 14-05-2005 à 15:00:36    

Bonjour à tous!!
 
Alors, voila mon problème: j'ai un formulaire, a envoyer avec un script php. Tout marche pour l'envoi, mais j'aimerais qu'à la fin de l'envoi, les visiteurs soient automatiquement redirigés vers la page précédente, mais avec conservation de ce qu'ils ont inscrit dans le formulaire...
 
Merci de m'aider pour la fonction "page précédente avec conservation des données" ^^
 
 :hello:  :jap:

Reply

Marsh Posté le 14-05-2005 à 15:00:36   

Reply

Marsh Posté le 14-05-2005 à 15:06:16    

sauvegarde les données de ton formulaire quelque part (base de données, session...) et ensuite header('Location: tapage.php');


Message édité par skeye le 14-05-2005 à 15:06:28

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-05-2005 à 15:25:47    

comment faire pour faire une save de la session? voila ma page regarde:
 

Code :
  1. <?php 
  2.     $name = $_POST['name'];
  3.     $sender = $_POST['email'];
  4.     $subject = $_POST['sujet'];
  5.     $demande = $_POST['choix'];
  6.     $instructions = $_POST['instruc'];
  7.     $message = "Demande envoyée par ".$name."\n Son adresse mail est ".$sender."\n Voici son type de demande : ".$demande."\n Ses instructions de réalisation sont: ".$instructions. 
  8.      
  9.     $rec = 'bfvww2@hotmail.com';
  10.      
  11.      
  12.    
  13.     $entete =  "From: $sender\n 
  14.          Reply-To: $sender\n 
  15.          X-Mailer: bfv PHP/".phpversion(); 
  16.      
  17.    mail($rec, $subject, $message, $entete);
  18.      
  19.    header('location:'??????????);  <--- je sais pas quoi mettre pour revenir en arrière avec les conservations de session
  20.     ?>


 
Voila...


Message édité par Orchrist le 14-05-2005 à 15:26:10
Reply

Marsh Posté le 14-05-2005 à 15:27:17    

lis des tutos sur les sessions en php.


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-05-2005 à 15:29:22    

tu stock les resultats de ton formulaire dans des variables puis tu les passe dans ton url et tu les reprends avec GET pour les mettre en VALUES dans ton formulaire.  :heink:  
 
je crois que pour la page precedente c'est $_SERVER['HTTP_REFERER']  :??:  
 
donc tu fais:
header('Location: ${_SERVER['HTTP_REFERER']}?var1=$var1&var2=$var2');
 
puis dans la page du formulaire pour les champs:
 
value="<?php echo $_GET['var1']; ?>"
 
enfin je pense...  :D

Reply

Marsh Posté le 14-05-2005 à 15:31:18    

oui, tu peux aussi les passer en GET...sinon une manière très simple c'est que la cible de la page du formulaire soit...elle-même!


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-05-2005 à 15:44:59    

j'ai essayé en mettant pour cible la page de mon formulaire, mais ça efface tout... sinon, je n'ai pas compris pour les gets... enfin, pour les restituer, oui, mais dans mon formulaire j'ai cela:
 

Code :
  1. <FORM action=http://finalforums.free.fr/demand.php method=post enctype="multipart/form-data">
  2. <TABLE>
  3.   <TBODY>
  4.   <TR>
  5.     <TD width="122">Votre Nom*:</TD>
  6.     <TD width="314"><INPUT size=30 name=name></TD></TR>
  7.   <TR>
  8.     <TD>Votre Email*:</TD>
  9.     <TD><INPUT size=30 name=email></TD></TR>
  10.   <TR>
  11.     <TD>Type de demande*:</TD>
  12.     <TD> <select name="choix" size="9">
  13. <option selected="selected">-- Type de votre demande --</option>
  14. <option value="Episode spé personnalisé">Episode spécial personnalisé</option>
  15. <option value="Publicité">Publicité personnalisée</option>
  16. <option value="Anniversaire">Episode d'anniversaire</option>
  17. <option value="Dédicace">Dédicace pour quelqu'un</option>
  18. <option value="Declaration">Declaration en tout genre</option>
  19. <option value="Répondeur">Répondeur personnalisé</option>
  20. <option value="Sons">Des sons pour windows ou autre</option>
  21. <option value="Clin d'oeil">Clin d'oeil dans un épisode officiel</option>
  22.                                             </select></TD></TR>
  23.   <TR>
  24.     <TD colSpan=2>Vos instructions pour votre demande (dialogues, consignes&nbsp;particulières, script en gros)*:<BR>
  25.       <textarea name="instruc" cols="49" rows="8"></textarea>  </TD></TR></TBODY></TABLE>
  26. <p>
  27.   <input name="submit2" type="submit" value="Envoyer" />
  28. -
  29. <input name="reset" type="reset" value="Annuler" /></FORM>


 
je sais c'est le bord$ù* mais je débute... alors, comment je place mes gets? un exemple pour le mail?

Reply

Marsh Posté le 14-05-2005 à 15:57:01    

On ta dis de regarder les SESSIONS.
http://php.developpez.com/

Reply

Marsh Posté le 15-05-2005 à 08:21:19    

je veux bien, mais je ne comprend pas tout... je ne sais pas ou placer mon code de sessions... (j'ai dit que je débutais, et je commence a comprendre les ficelles du php...)

Reply

Marsh Posté le 15-05-2005 à 17:55:55    

alors, j'ai essayé...
voila ce que j'ai mis au début de ma page de formulaire (ondemand.php) pour essayer de sauver mes champs:
 

Code :
  1. <?php
  2. session_start();
  3. $_SESSION['name'] = $_POST['name'];
  4. $_SESSION['email'] = $_POST['email'];
  5. $_SESSION['instruc'] = $_POST['instruc'];
  6. $_SESSION['choix'] = $_POST['choix']; ?>


 
Ensuite, voila mon formulaire:

Code :
  1. <form action="demand.php" method="post" enctype="multipart/form-data">
  2.                       <table>
  3.                         <tbody>
  4.                           <tr>
  5.                             <td width="122">Votre Nom*:</td>
  6.                             <td width="314"><input size="30" name="name" /></td>
  7.                           </tr>
  8.                           <tr>
  9.                             <td>Votre Email*:</td>
  10.                             <td><input size="30" name="email" /></td>
  11.                           </tr>
  12.                           <tr>
  13.                             <td>Type de demande*:</td>
  14.                             <td>
  15.                               <select name="choix" size="9">
  16.                                 <option selected="selected">type</option>
  17.                                 <option value="Echoix1">episode</option>
  18.                                 <option value="choix2">choix2</option>
  19.                                 <option value="choix3">Choix 3</option>
  20.                                 <option value="choix4">4</option>
  21.                                 <option value="Declaration">Declaration</option>
  22.                                 <option value="Rep">repondeur</option>
  23.                                 <option value="Sons">Des sons</option>
  24.                                 <option value="Clin d'oeil">Clin d'oeil</option>
  25.                             </select></td>
  26.                           </tr>
  27.                           <tr>
  28.                             <td colspan="2">Vos instructions pour votre demande:
  29.                                 <textarea name="instruc" cols="49" rows="8"></textarea>
  30.                             </td>
  31.                           </tr>
  32.                         </tbody>
  33.                       </table>
  34.                       <p>
  35.                         <input name="submit2" type="submit" value="Envoyer" />
  36.     -
  37.     <input name="reset" type="reset" value="Annuler" />
  38.                       </p>
  39.   </form>


 
je sais c'est le bazare... mais bon passons: et voici mon demand.php appelé dans ce formulaire:
 

Code :
  1. <?php     
  2.     session_start();
  3. $_SESSION['name'] = $_POST['name'];
  4. $_SESSION['email'] = $_POST['email'];
  5. $_SESSION['instruc'] = $_POST['instruc'];
  6. $_SESSION['choix'] = $_POST['choix'];
  7. $name = $_POST['name'];
  8.     $sender = $_POST['email'];
  9.     $subject = "Flagelleurs -- On-Demand";
  10.     $demande = $_POST['choix'];
  11.     $instructions = $_POST['instruc'];
  12.     $message = "Demande envoyée par ".$name."\n Son adresse mail est ".$sender."\n Voici son type de demande : ".$demande."\n Ses instructions de réalisation sont: ".$instructions."\n Merci de se mettre au boulot! "; 
  13.     $rec = 'bfvww2@hotmail.com';
  14.     $entete = "From: $sender"; 
  15.     mail($rec, $subject, $message, $entete);
  16.     header('location:ondemand.php'); 
  17.     ?>


 
Alors, voila, quand je clique sur envoyer, je reviens a ma page, mais les champs sont effacés...

Reply

Marsh Posté le 15-05-2005 à 17:55:55   

Reply

Marsh Posté le 15-05-2005 à 17:59:31    

value=""
 
foutre les sessions dedans si isset.  :whistle:


Message édité par pmusa le 15-05-2005 à 18:00:15
Reply

Marsh Posté le 15-05-2005 à 19:34:53    

dac, donc je fais:

Code :
  1. Votre Email*:
  2. <td><input size="30" value= "$_SESSION['name']" name="email" /></td>


 
Mais le isset, je sais pas ce que c'est...

Reply

Marsh Posté le 15-05-2005 à 19:37:01    

http://fr2.php.net/isset Maintenant, tu sais :)

Reply

Marsh Posté le 15-05-2005 à 19:40:03    

En fait c tout simple ce que tu veux faire.  
 
Tu met cette balise META dans la page que tu appelle lorsque tu envoie ton formulaire.
 
<META http-EQUIV="Refresh" CONTENT="0.5; url=http://URL DE LA PAGE SUR LAQUELLE TU VEUX REVENIR">
 
Et ca roule :)
 

Reply

Marsh Posté le 15-05-2005 à 20:14:19    

En effet, c'est simple. Mais en miniscule c'est mieux :p :  
 

Code :
  1. <meta http-equiv="refresh" content="15,url='http://www.tonsite.com/tapage.php'" />


Message édité par yoyo354 le 15-05-2005 à 20:14:58
Reply

Marsh Posté le 15-05-2005 à 20:19:21    

header location avec un timout.  :o  
 
ça s'pa bien. avec googlebot c'est "ban!"... cash. j'en ai déjà fais les frais, c'est PR -2 au moins.  :sol:
 
edit:  
 
merde, le code.

Code :
  1. header("Refresh: 15; URL=http://www.tonsite.com/tapage.php" );


Message édité par pmusa le 15-05-2005 à 20:22:49
Reply

Marsh Posté le 15-05-2005 à 20:24:59    

Je sais bien que les bots et crawlers ont banni les meta refresh pour éviter les abus liés aux mirroirs, MAIS dans ce cas c'est différent.  
En effet, googlebot et autres ne vont pas remplir son formulaire pour lui envoyer de mails.... Par conséquent, je ne pense pas qu'il y ai de problèmes majeurs.
Si je me trompe (ce qui est fort probable), alors en effet, un header location avec un timeout serait plus aproprié. Mais je ne pense pas que ce soit le cas : HFR utilise meta refresh lorsque l'on post un message... :p

Reply

Marsh Posté le 15-05-2005 à 20:29:36    

googlebot i peut pas le lire parce que le meta refresh est dans une structure de contrôle probablement.
genre,
if ($TaRempliLeFormulaire == TRUE){
echo '<meta http-equiv="refresh" etc etc etc...';
}
 
et cette ligne n'est pas renvoyée au moteur car lui il rempli pas le formulaire.
 
edit:
je parle pour HFR.


Message édité par pmusa le 15-05-2005 à 20:32:48
Reply

Marsh Posté le 15-05-2005 à 20:34:17    

Tout à fait d'accord pour HFR, mais il faut évidemment faire de même pour `finalforums.frxx.fr` .

Reply

Marsh Posté le 15-05-2005 à 20:39:11    

ben il se debrouille on lui a tout dit la ohh.  :o  
 
 :D
 
moi on me dit jamais rien. cf. esox_ch.  :o


Message édité par pmusa le 15-05-2005 à 20:39:47
Reply

Marsh Posté le 15-05-2005 à 20:47:35    

pmusa a écrit :

ben il se debrouille on lui a tout dit la ohh.  :o


T'as raison, faut qu'on arrête de l'aider :jap:  
 
C'est pas marrant quand on cherche pas  :lol: Et on est toujours plus content lorsqu'on trouve la solution par soi-même.
 
 
Note : Je vais rater mon bac de français à cause de ce forum, impossible de le décrocher pour aller faire mes révisions  :sol:


Message édité par yoyo354 le 15-05-2005 à 20:48:48
Reply

Marsh Posté le 15-05-2005 à 20:56:39    

édité.
le "thread forwarding" c'eyy mal. :D


Message édité par pmusa le 15-05-2005 à 21:06:26
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed