Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1310 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  page précédente en php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

page précédente en php

n°1083205
Orchrist
Life is a war
Posté le 14-05-2005 à 15:00:36  profilanswer
 

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:

mood
Publicité
Posté le 14-05-2005 à 15:00:36  profilanswer
 

n°1083209
skeye
Posté le 14-05-2005 à 15:06:16  profilanswer
 

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 -
n°1083219
Orchrist
Life is a war
Posté le 14-05-2005 à 15:25:47  profilanswer
 

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
n°1083222
skeye
Posté le 14-05-2005 à 15:27:17  profilanswer
 

lis des tutos sur les sessions en php.


---------------
Can't buy what I want because it's free -
n°1083223
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 14-05-2005 à 15:29:22  profilanswer
 

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

n°1083224
skeye
Posté le 14-05-2005 à 15:31:18  profilanswer
 

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 -
n°1083239
Orchrist
Life is a war
Posté le 14-05-2005 à 15:44:59  profilanswer
 

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?

n°1083252
cesarr89
Posté le 14-05-2005 à 15:57:01  profilanswer
 

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

n°1083913
Orchrist
Life is a war
Posté le 15-05-2005 à 08:21:19  profilanswer
 

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...)

n°1084405
Orchrist
Life is a war
Posté le 15-05-2005 à 17:55:55  profilanswer
 

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...

mood
Publicité
Posté le 15-05-2005 à 17:55:55  profilanswer
 

n°1084414
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 15-05-2005 à 17:59:31  profilanswer
 

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


Message édité par pmusa le 15-05-2005 à 18:00:15
n°1084598
Orchrist
Life is a war
Posté le 15-05-2005 à 19:34:53  profilanswer
 

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...

n°1084601
yoyo354
Yoyo, le roi du ...
Posté le 15-05-2005 à 19:37:01  profilanswer
 

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

n°1084603
dingonono1
Posté le 15-05-2005 à 19:40:03  profilanswer
 

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 :)
 

n°1084655
yoyo354
Yoyo, le roi du ...
Posté le 15-05-2005 à 20:14:19  profilanswer
 

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
n°1084664
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 15-05-2005 à 20:19:21  profilanswer
 

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
n°1084679
yoyo354
Yoyo, le roi du ...
Posté le 15-05-2005 à 20:24:59  profilanswer
 

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

n°1084687
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 15-05-2005 à 20:29:36  profilanswer
 

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
n°1084696
yoyo354
Yoyo, le roi du ...
Posté le 15-05-2005 à 20:34:17  profilanswer
 

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

n°1084702
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 15-05-2005 à 20:39:11  profilanswer
 

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
n°1084718
yoyo354
Yoyo, le roi du ...
Posté le 15-05-2005 à 20:47:35  profilanswer
 

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
n°1084732
pmusa
&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;&#9619;
Posté le 15-05-2005 à 20:56:39  profilanswer
 

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


Message édité par pmusa le 15-05-2005 à 21:06:26
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  page précédente en php

 

Sujets relatifs
afficher une page pendant x seconde puis revenir a la page précédente?page précédente en php
Récupérer l'url de la page précédentepage precedente et POST
Mémorisation des variables pour une page "précédente"Revenir à la page précédente après plusieurs refresh
Page précedente historiqueFrames - Prob clique page "Précédente" et "Suivante"
[résolu] Faire une redirection automatique sur la page précédentefonction pour recupperer les inputs de la page précedente
Plus de sujets relatifs à : page précédente en php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR