Valeur de POST perdue après affichage resultats suivants

Valeur de POST perdue après affichage resultats suivants - PHP - Programmation

Marsh Posté le 09-11-2005 à 00:40:26    

Salut...
 
Je bosse sur un petit moteur de recherche et ma page est composée de:
 
-->première partie: Une TEXTBOX qui récupère la valeur INPUT
    (cette valeur est envoyée au moteur PHP par la méthode POST)
-->deuxième partie: Le code PHP qui déroule les résultats
 
Le problème arrive quand j'affiche la page 2 ou suivante :
je reviens sur la même page mais la valeur de INPUT est perdue... le moteur plante et me renvoie l'erreur
Got error 'empty (sub)expression' from regexp
 
Donc voici ma question : comment "sauvegarder ma valeur que j'ai appelée $input dans le code PHP  ou dans le HTML tant qu'une nouvelle recherche n'a pas été entrée ?
 
Merci pour votre aide (précieuse)
PS Comme d'hab : CA URGE.....

Message cité 1 fois
Message édité par erwan83 le 28-11-2005 à 07:23:03

---------------
http://www.ypikay.com
Reply

Marsh Posté le 09-11-2005 à 00:40:26   

Reply

Marsh Posté le 09-11-2005 à 00:43:49    

Re PS
J'ai été voir http://www.phpdebutant.org
J'ai pas trouvé...
Merci quand même pour votre aide


Message édité par erwan83 le 28-11-2005 à 07:22:46

---------------
http://www.ypikay.com
Reply

Marsh Posté le 09-11-2005 à 00:48:14    

ben faut que tu remettes tes valeurs dans des champs de formulaire
soit les memes
soit des cachés
ca depends de ta page
 
pour savoir si c'est un cas ou l'autre tu peux tester leur existence (la 1ere fois non, apres oui)


---------------
The Rom's, à votre service
Reply

Marsh Posté le 09-11-2005 à 01:33:16    

merci mais quelle est l'opération pour basculer une valeur existante dans un champ caché ?


Message édité par erwan83 le 28-11-2005 à 07:22:36

---------------
http://www.ypikay.com
Reply

Marsh Posté le 09-11-2005 à 01:51:31    

c'est un tag html genre
<input type="hidden" name="taVariable" value="saValeur" />
 
il suffit de remplacer 'saValeur' par '<? php echo $saValeur ?>' par exemple


Message édité par TheRom_S le 09-11-2005 à 01:58:08

---------------
The Rom's, à votre service
Reply

Marsh Posté le 09-11-2005 à 09:51:04    

erwan83 a écrit :

Salut...
 
Je bosse sur un petit moteur de recherche et ma page est composée de:
 
-->première partie: Une TEXTBOX qui récupère la valeur INPUT
    (cette valeur est envoyée au moteur PHP par la méthode POST)
-->deuxième partie: Le code PHP qui déroule les résultats
 
Le problème arrive quand j'affiche la page 2 ou suivante :
je reviens sur la même page mais la valeur de INPUT est perdue... le moteur plante et me renvoie l'erreur
Got error 'empty (sub)expression' from regexp


 
Erreur à la ligne 14, classique.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 09-11-2005 à 12:33:14    

Heu... merci à tous mais non.
ma page  de démarrage s'appelle page1.php
ma page de résultat s'appelle page1.php
ma page suivante s'appelle page1.php?resultat=1_a_11 (exemple)
etc...
DONC =>  
c'est toujours la même page mais avec une incrémentation qui s'affiche (OK ?)
Le problème apparait quand je passe à la page suivante :
Lorsque le navigateur recharge la page, le champ INPUT est automatiquement vidé...
DONC DONC =>  
comment faire pour ne pas le vider ou encore  
comment stocker la valeur INPUT dans un champ (sorte de post)
 
Merci


Message édité par erwan83 le 28-11-2005 à 07:22:20

---------------
http://www.ypikay.com
Reply

Marsh Posté le 09-11-2005 à 12:48:07    

JE crois que sielfried comme moi voulons un bout de code qui plante pour comprendre ;)
Sinon à priori faut juste que tu fasses ce qu'on t'a dit avec le champs caché ;)


Message édité par leflos5 le 09-11-2005 à 12:48:49
Reply

Marsh Posté le 09-11-2005 à 14:52:46    

Ben suffit de prendre le contenu du INPUT passé par POST ou par GET et le remettre dans le INPUT de la nouvelle page. Elle est où la difficulté?

Reply

Marsh Posté le 09-11-2005 à 15:00:26    

Y'en a pas :D

Reply

Marsh Posté le 09-11-2005 à 15:00:26   

Reply

Marsh Posté le 09-11-2005 à 15:01:18    

Tu peux aussi sauvegarder le contenu du input dans les varables de session, comme ça tu y auras accès sur toutes les pages, sans avoir besoin de les transmettre de page en page via un input hidden.

Reply

Marsh Posté le 09-11-2005 à 15:04:40    

Ou y passer dans le lien vers la page suivante, j'aime pas trop mais ca se fait...

Reply

Marsh Posté le 09-11-2005 à 17:28:31    

Minute je balance "une partie" de code ==>
 
OUPS... OUKILEPACE ?
?>


Message édité par erwan83 le 28-11-2005 à 07:22:08

---------------
http://www.ypikay.com
Reply

Marsh Posté le 09-11-2005 à 17:33:27    

omega2 a écrit :

Ben suffit de prendre le contenu du INPUT passé par POST ou par GET et le remettre dans le INPUT de la nouvelle page. Elle est où la difficulté?


 
La difficulté est que quand je passe de la page Result.php?id=1 à Result.php?id=2 il n'y a pas d'action de POST sur cette valeur.
Elle n'est postée que quand je passe de Requete.php à Result.php?id=1
Vois tu ?
Dans les pages de reponse, la valeur postée est nulle, car déjà postée

Message cité 1 fois
Message édité par erwan83 le 28-11-2005 à 07:21:55

---------------
http://www.ypikay.com
Reply

Marsh Posté le 09-11-2005 à 17:34:54    

erwan83 a écrit :

La difficulté est que quand je passe de la page Result.php?id=1 à Result.php?id=2 il n'y a pas d'action de POST sur cette valeur.
Elle n'est postée que quand je passe de Requete.php à Result.php?id=1
Vois tu ?
Dans les pages de reponse, la valeur postée est nulle, car déjà postée


dwogsi a écrit :

Ou y passer dans le lien vers la page suivante, j'aime pas trop mais ca se fait...


Voilà donc une solution possible. ;)

Reply

Marsh Posté le 09-11-2005 à 17:57:19    

omega2 a écrit :

Voilà donc une solution possible. ;)


 
nIET kaMARAD...
J'ai essayé et ça marche mal...
cafouillage au niveau des résultats...


Message édité par erwan83 le 28-11-2005 à 07:21:44

---------------
http://www.ypikay.com
Reply

Marsh Posté le 09-11-2005 à 18:16:18    

Tiens il a pas affiché ma réponse.
je disais donc que j'ai essayé (passer dans le lien vers la page suivante) mais ca marche pas...


Message édité par erwan83 le 28-11-2005 à 07:23:24

---------------
http://www.ypikay.com
Reply

Marsh Posté le 09-11-2005 à 18:21:51    

en javascript y'aurait pas moyen ?


Message édité par erwan83 le 28-11-2005 à 07:21:31

---------------
http://www.ypikay.com
Reply

Marsh Posté le 09-11-2005 à 18:51:14    

arretes de refaire le meme topic partout :o
 
tu teste ta variable : (je me rapelle plus exactement comment s'écrie un formulaire mais grosso modo ca donne ca)

Code :
  1. <? php>
  2. echo '<form method="POST" href="toujours_la_meme_page.php">
  3. if (isset($_POST['choix'])) {
  4.     // ici ta variable existe donc tu es en train d'afficher des réponses
  5.     echo '<input type="hidden" name="choix" value="$_POST['choix']" />
  6.     echo '<input type="submit" value="suite des réponses" />
  7. }
  8. else {
  9.     // ici c'est que tu es sur la page pour la première fois donc tu change la gueule de ton formulaire
  10.     echo '<input type="text" name="choix" value="valeurpardefaut" />
  11.     echo '<input type="submit" value="première réponse" />
  12. }
  13. echo '</form>'
  14. <?>


c'est plus clair ?


---------------
The Rom's, à votre service
Reply

Marsh Posté le 09-11-2005 à 20:03:39    

Avec des sessions (j'insiste  :) ) :

Code :
  1. <?php
  2. // au tout début du script
  3. session_start();
  4. ?>
  5. <form action="RETOUR_SUR_MOI_MEME.php" method="post">
  6.   <input name="input" type="text" id="input" size="60">
  7.   <br>
  8.   <input type="hidden" name="action_moteur" value="submitted">
  9.   <input type="submit" name="submit" value="LANCEZ LA RECHERCHE">
  10. </form>
  11. <?php
  12.   if(isset($_GET['limite']))
  13.     $limite=$_GET['limite'];
  14.   else
  15.     $limite=0;
  16.   // ...
  17.   if (isset($_POST['input'])) {
  18.     // nouvelle valeur reçue, on est en page 2
  19.     $input = $_POST['input'];
  20.     // sauvegarde de la valeur dans la session
  21.     $_SESSION['valeur_input'] = $input;
  22.   }
  23.   elseif (isset($_SESSION['valeur_input'])) {
  24.     // on récupère la valeur, on est en page 3 ou suivante
  25.     $input = $_SESSION['valeur_input'];
  26.   }
  27.   else {
  28.     // page 1
  29.     $input = '';
  30.   }
  31.   // ...
  32. ?>


Reply

Marsh Posté le 09-11-2005 à 21:13:43    

merci à tous je pense que je vais y arriver...


Message édité par erwan83 le 28-11-2005 à 07:23:37

---------------
http://www.ypikay.com
Reply

Marsh Posté le 09-11-2005 à 21:21:48    

TheRom_S a écrit :

arretes de refaire le meme topic partout :o
 
tu teste ta variable : (je me rapelle plus exactement comment s'écrie un formulaire mais grosso modo ca donne ca)
 


 
merci j'ai éffacé les autres posts.
j'ai fini par trouver.
 
MERCI A TOUS

Reply

Marsh Posté le 10-11-2005 à 03:10:39    

Session ou simplement tu "forces" un formulaire qui ne fait que servir à transmettre les données et sur tout lien tu fais un submit en JS :) C'est laid mais au moins ça marche :D

Reply

Marsh Posté le 11-11-2005 à 02:09:53    

COOOOOL... j'ai résolu le problème...
Si vous voulez aller voir ce que ça donne :
 
Merci encore à tous...


Message édité par erwan83 le 28-11-2005 à 07:24:22

---------------
http://www.ypikay.com
Reply

Marsh Posté le 11-11-2005 à 04:07:43    

arretes le clignotant, c'est insupportable !
j'te l'demande gentiment, mais c'est l'enfer :bounce:  :bounce:  :bounce:  :bounce:  :bounce:  :bounce:  :bounce:


---------------
The Rom's, à votre service
Reply

Marsh Posté le 12-11-2005 à 10:17:17    

TheRom_S a écrit :

arretes le clignotant, c'est insupportable !
j'te l'demande gentiment, mais c'est l'enfer :bounce:  :bounce:  :bounce:  :bounce:  :bounce:  :bounce:  :bounce:


 
Heu désolé. problème réglé maintenant ?
je ne le vois ni sur mon navigateur ni sur mon éditeur... désolé... O U P S S S


Message édité par erwan83 le 28-11-2005 à 07:25:04

---------------
http://www.ypikay.com
Reply

Marsh Posté le 28-11-2005 à 07:25:37    

LOL


---------------
http://www.ypikay.com
Reply

Marsh Posté le 28-11-2005 à 23:01:35    

j'avais juste besoin de savoir que je devais attraper $GET et non $POST
mais j'ai mis du temps...


---------------
http://www.ypikay.com
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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