Passer une valeur dans le liens!? GET ou POST? [RESOLUS]

Passer une valeur dans le liens!? GET ou POST? [RESOLUS] - PHP - Programmation

Marsh Posté le 02-05-2008 à 10:24:14    

Bonjour, voila, je m'apprete à envoyer un questionnaire à des personnes par mail. Je fait la liaison des  personne et du mal grace à une BDD ...
Je voudrais que dans le liens fournit dans le mail je puisse mettre un numéro pour savoir qui vient de cliquer sur le lien!
Exemple dans ma base Mr toto est le numéro 3!
Dans le mail le liens sera : http://trucmachin/index.php?numrefe=3
 
Et donc il arrive sur la page

Code :
  1. ...
  2. if(isset($_GET["numrefe"]))
  3. $numrefe = $_GET["numrefe"];
  4. else {
  5. $numrefe = $_POST["numrefe"];
  6. }
  7. ...


 

Code :
  1. <td colspan="4" class="Style9"><div align="center">
  2.         <input name="numrefer" type="hidden" value="<? echo"$numrefe"?>">
  3.         <input name="Submit" type="submit" class="Style9" value="Valider le questionnaire">
  4.     </div></td>


 
Soucis, sa ne marche pas! mas base ne prend pas le numrefe, pourtant les autre info du on bien peuplée ma base!?
 
J'ai donc tenté sa:

Code :
  1. <?php
  2. /*if(isset($_GET["numrefe"]))
  3. $numrefe = $_GET["numrefe"];
  4. else {
  5. $numrefe = $_POST["numrefe"];
  6. } */
  7. $numrefe=1;
  8. ?>


 
Et là sa marche!?
ou est le problème?
 
Merci par avance de votre aide?


Message édité par zapoutor le 05-05-2008 à 12:19:50
Reply

Marsh Posté le 02-05-2008 à 10:24:14   

Reply

Marsh Posté le 02-05-2008 à 10:28:17    

Tu envoies une variable nommée "numrefer" et tu t'attends à recevoir une variable nommée "numrefe". Forcément, ca va pas :o

Reply

Marsh Posté le 02-05-2008 à 10:30:35    

:lol:


---------------
Directeur Technique (CTO)
Reply

Marsh Posté le 02-05-2008 à 10:37:48    

heu, non rien à voir! tu confond avec ce que je vait passer à mon valider.php!!!

Reply

Marsh Posté le 02-05-2008 à 10:59:18    

d'ailleur il suffit de mettre la valeur en "dure" pour que tous ce passe bien!!!!!!

Reply

Marsh Posté le 02-05-2008 à 11:12:31    

Est-ce que cette ligne là
 

Code :
  1. <input name="numrefer" type="hidden" value="<? echo"$numrefe"?>">


 
correspond à ça :
 

Code :
  1. $numrefe = $_POST["numrefe"];

?
 
Si c'est le cas, comme l'a dit mrbebert tu devras changer le nom.
 
 
Sinon je t'aurais proposé d'écrire plutôt comme ceci :
 

Code :
  1. <input name="numrefer" type="hidden" value="<?php echo $numrefe ?>">


 
Car si tu mets ta variable entre guillemets, ça risque d'envoyer le nom de la variable plutôt que sa valeur. Par ailleurs vaut mieux utiliser des <?php plutôt que <?, car ces derniers ne sont pas toujours supportés par les serveurs.

Reply

Marsh Posté le 02-05-2008 à 11:20:08    

Comme je l'ai dit, le soucis n'est pas là.
Quand je remplace  

Code :
  1. if(isset($_GET["numrefe"]))
  2. $numrefe = $_GET["numrefe"];
  3. else {
  4. $numrefe = $_POST["numrefe"];


 
par
 

Code :
  1. $numrefe=34;


 
Sa fonctionne!!!!!
 
Le problème vient donc de récupérer la valeur indiqué dans le liens!!

Reply

Marsh Posté le 02-05-2008 à 11:25:17    

Ok, on va procéder autrement alors :
essaie de faire ceci :
 

Code :
  1. ...
  2. /*if(isset($_GET["numrefe"]))  
  3. $numrefe = $_GET["numrefe"];  
  4. else {  
  5. $numrefe = $_POST["numrefe"];  
  6. } */
  7. echo $_POST["numrefe"];
  8. echo $_GET["numrefe"];
  9. ...


 
Ca affiche quelque chose ou pas ?

Reply

Marsh Posté le 02-05-2008 à 11:26:30    

je test! 2 minutes!

Reply

Marsh Posté le 02-05-2008 à 11:28:07    

Pas d'affichage :(.

Reply

Marsh Posté le 02-05-2008 à 11:28:07   

Reply

Marsh Posté le 02-05-2008 à 11:34:45    

T'as bien cliqué sur ce lien :  http://trucmachin/index.php?numrefe=3  
pour tester l'affichage ?
 
Sinon s'il n'affiche rien c'est qu'il y a une redirection qui t'empêche d'afficher (enfin, je pense), ou alors un probleme au niveau du nom de la variable transmise.
 
Il faudrait peut-être que tu nous montres tout ton code (pages concernées + noms) pour qu'on voie ce qui ne va pas.

Reply

Marsh Posté le 02-05-2008 à 13:38:44    

tyutyuyut


Message édité par zapoutor le 05-05-2008 à 12:20:26
Reply

Marsh Posté le 02-05-2008 à 14:41:59    

Bon désolé de ne pas t'avoir répondu plus tôt dans ton mp (j'étais parti).
 
Concernan ton problème, je vais me répéter, mais je pense toujours qu'il y a un problème de nom de variable.
 
Tu mets "numrefer" partout et tu essaies de récupèrer une variable portant le nom "numrefe".
 
Fais un petit test, fais remplacer tous les "numrefe" par des "numrefer" dans ton code, et dis ce que ça donne.
 
 
Autre chose, je ne vois pas l'utilité de mettre des conditions du genre
 

Code :
  1. if(isset($_GET["levier"]))
  2. $levier = $_GET["levier"];
  3. else {
  4. $levier = $_POST["levier"];
  5. }


 
et à moins que j'aie mal compris ton code, l'un des deux seulement devrait suffire (get ou post)
 

Reply

Marsh Posté le 02-05-2008 à 15:09:38    

Vous avez du vous douter qu'il s'agissait de code récupéré!

Reply

Marsh Posté le 02-05-2008 à 15:15:26    

je viens de faire des tests.
 
en mettant simplement
un

Code :
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <title></title>
  5. </head>
  6. <body>
  7. <form name="form2" method="post" action="valider.php" >
  8. <?php
  9. /*if(isset($_GET["numrefe"]))
  10. $numrefe = $_GET["numrefe"];
  11. else {
  12. $numrefe = $_POST["numrefe"];
  13. }
  14. */
  15. #echo $_POST["numrefe"];
  16. $numrefe=$_GET["numrefe"];
  17. echo $numrefe;
  18. #$numrefe=55;
  19. ?>
  20. </form>
  21. </body>
  22. </html>


 
rien ne s'affiche!!!!!!!!!!!????????????,
 
idem pour un  

Code :
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <title></title>
  5. </head>
  6. <body>
  7. <form name="form2" method="post" action="valider.php" >
  8. <?php
  9. /*if(isset($_GET["numrefe"]))
  10. $numrefe = $_GET["numrefe"];
  11. else {
  12. $numrefe = $_POST["numrefe"];
  13. }
  14. */
  15. #echo $_POST["numrefe"];
  16. echo$_GET["numrefe"];
  17. #$numrefe=55;
  18. ?>
  19. </form>
  20. </body>
  21. </html>


 
 :heink:  :pt1cable:  
 
Je pige pas là?

Reply

Marsh Posté le 02-05-2008 à 15:55:04    

que donne print_r($_GET) ?


---------------
oui oui
Reply

Marsh Posté le 02-05-2008 à 16:00:16    

Array ( )

Reply

Marsh Posté le 02-05-2008 à 16:16:48    

Et que donne un
 
...
$numrefe=$_GET["numrefer"];
echo $numrefe;
...
 
?

Reply

Marsh Posté le 02-05-2008 à 16:18:01    

rien aucun affichage!

Reply

Marsh Posté le 02-05-2008 à 16:25:03    

Au fait t'as fait remplacer tous les "numrefe" par des "numrefer"  ?


Message édité par tostiere le 02-05-2008 à 16:26:15
Reply

Marsh Posté le 02-05-2008 à 16:27:33    

oui sa ne change rien!

Reply

Marsh Posté le 02-05-2008 à 18:18:46    

on dirait que personne n'a la réponse :(

Reply

Marsh Posté le 02-05-2008 à 23:27:21    

tostiere a écrit :

Et que donne un

 

...
$numrefe=$_GET["numrefer"];
echo $numrefe;
...

 

?


Ca risque pas de donner quelque chose si print_r donne array() :o

 


comment tu appelles ta page ?

 

que donne

Code :
  1. echo $_SERVER['REQUEST_URI']
 


Message édité par art_dupond le 02-05-2008 à 23:28:31

---------------
oui oui
Reply

Marsh Posté le 03-05-2008 à 10:16:12    

Je l'appel à partir d'un lien dans un mail!
j'essaye aussi en "dur" en tapant directement dans la barre d'adressede mon navigateur. Le lien est  
 
http://montrucmachin/index.php?numrefe=1
 
résultat de  

Code :
  1. echo $_SERVER['REQUEST_URI']


 
/~montrucmachin/index.php.
 
Donc mon numref ne passe pas :(!!  
J'utilise firefox comme navigateur, le résultat est le même avec ie!!
Je ne comprend pas pourquoi sa ne passe pas??!!!


Message édité par zapoutor le 03-05-2008 à 10:25:06
Reply

Marsh Posté le 03-05-2008 à 10:49:20    

Je propose de détourner le problème, si tu essayes dans un nouveau fichier:

Code :
  1. <?php
  2. print_r($_GET);
  3. $numrefe = 1;
  4. if ( !empty($_GET['numrefe']) ) $numrefe = $_GET['numrefe'] + 1;
  5. echo '<a href="?numrefe='.$numrefe.'">un petit lien</a>';
  6. ?>

Reply

Marsh Posté le 03-05-2008 à 11:44:02    

résultat
Array ( [numrefe] => 1 ) un petit lien
Array ( [numrefe] => 2 ) un petit lien
Array ( [numrefe] => 3 ) un petit lien
...
 
lien tapé dans la barre!
\montruc\test.php?numrefe=555
 
 :heink:

Reply

Marsh Posté le 03-05-2008 à 15:56:21    

y a de l'url rewriting (fichier .htaccess dans le répertoire) ?


---------------
oui oui
Reply

Marsh Posté le 03-05-2008 à 16:14:07    

Reply

Marsh Posté le 03-05-2008 à 16:55:17    

fait tout simplement un <?php var_dump($_get); ?>
 
et tu vera tout ceux qu'elle contient.
 
Il faut toujours avoir sous la main un code qui liste les variable $_get et $_POST avec une petite fonctions ca sert tout le temps pour voir les fautes de frappes de nom ou les variable mal transmise.
 
ps tu aurait pas appliquer une class sur le champ de formulaire que tu veut recupere ? si oui si c'est une classe de javascript pour mise en form des fois il faut recupere le contenu en javascript :(


---------------
Recette cookeo Recette de cuisine
Reply

Marsh Posté le 03-05-2008 à 22:12:45    

zapoutor a écrit :

résultat
Array ( [numrefe] => 1 ) un petit lien
Array ( [numrefe] => 2 ) un petit lien
Array ( [numrefe] => 3 ) un petit lien
...
 
lien tapé dans la barre!
\montruc\test.php?numrefe=555
 
 :heink:


Donc ça passe bien. Y'a un  truc dans ton script qui foire :spamafote:  
 
Et en effet si register_global est à on ça pourrait peut être expliquer un comportement étrange.

Reply

Marsh Posté le 05-05-2008 à 09:22:36    

register global? c'est la config d'apache sa????
Et je suis pas d'accord que cela vienne de mon script! Regarde le liens tapé dans la barre! on aurai dû commencer à incrémenter à partir de 555 ! non?:!

Message cité 1 fois
Message édité par zapoutor le 05-05-2008 à 09:27:32
Reply

Marsh Posté le 05-05-2008 à 09:32:40    

Reply

Marsh Posté le 05-05-2008 à 09:36:23    

OK... donc sa ne venais pas de mon script mais de la config d'apache de mon hébergeur.
Et donc je ne peux pas toucher à mon register globals!! erf! :(

Reply

Marsh Posté le 05-05-2008 à 09:38:14    

J'ai pas trop compris comment on peux contourner cette config? en faisait quel genre de vérif?

Reply

Marsh Posté le 05-05-2008 à 09:45:03    

Une solution consiste à faire un truc du genre :

Code :
  1. import_request_variables('p', '_post_');
  2. import_request_variables('c', '_cookie_');


 
Après quoi tu pourrais récupérer ta valeur avec $_get_numrefe.
 
Mais si t'as pas accès au serveur tu peux toujours demander à ton hébergeur de te virer ça, ça doit pouvoir se faire. :o

Message cité 1 fois
Message édité par sielfried le 05-05-2008 à 09:46:39

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

Marsh Posté le 05-05-2008 à 09:46:28    

merci de ton aide précieuse! je commencé à piétinner. Je pense qu'en effet cela pourrai ce gérer au pret de l'hébergeur, mais contre quelque deniers à mon avis ...
Sinon au pire j'héberge moi même!

Reply

Marsh Posté le 05-05-2008 à 10:04:20    

"ton code" c'est pas du php? c'est à mettre où?

Reply

Marsh Posté le 05-05-2008 à 10:08:28    

Si c'est du php. :spamafote:
 
Fous-le en haut de ton/tes scripts.


Message édité par sielfried le 05-05-2008 à 10:08:48

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

Marsh Posté le 05-05-2008 à 10:23:34    

ok j'essaye!

Reply

Marsh Posté le 05-05-2008 à 10:27:11    

Code :
  1. <?php
  2.       import_request_variables('g', '_get_');
  3.       import_request_variables('p', '_post_');
  4.       import_request_variables('c', '_cookie_');
  5. */
  6. $numrefer = $_GET['numrefer'];
  7. echo $numrefer;
  8. ?>


 
 
AUCUN affichage :(

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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