Eviter un $_GET !

Eviter un $_GET ! - PHP - Programmation

Marsh Posté le 23-05-2007 à 09:53:03    

Bonjour tout le monde,
 
Voila je suis en train de developper un soft en PHP. Mais je bloque sur un probleme.
En fait j'ai une boucle
TANT QUE (j'ai des donnée dans ma table SQL)
{
j'affiche un tableau avec ces fameuses données.
et deux image (poubelle.gif, modif.gif) à chaque lignes
}
 
Quand je click sur une image (poubelle.gif) je veux supprimer la ligne du tableau grace a son ID et donc vider de la table SQL.
 
Actuellement je fais: <a href='accueil.php?add=suppcompte.php&id=".$data[id_login].">
 
Je passe donc par un GET et je recup plus tard le ID pour supprimer la ligne en question.
 
Comme je suis dans une boucle, je ne peux pas faire de champs HIDDEN avec un FORM car mes champs auraient tous le meme nom (id_login) et donc lors du POST, je recup la derniere valeur du while...
 
Quelqu'un aurait-il une idée pour utiliser autre chose qu'un GET ??
 
Thx a lot ;)

Reply

Marsh Posté le 23-05-2007 à 09:53:03   

Reply

Marsh Posté le 23-05-2007 à 10:03:20    

un form par ligne

Reply

Marsh Posté le 23-05-2007 à 10:09:14    

oui j'y ai pensé mais... c'est pas un peu trop "bourrin" ?

Reply

Marsh Posté le 23-05-2007 à 10:41:07    

Nan, tu fais une balise form avec plusieurs balises input de type='image', de value='submit', et de name='monnomdebouton'.$i  
Dans cet exemple, $i est un indice de boucle.
 
Pour savoir quel bouton a été cliqué, tu fais un if (isset($_POST[monnomdebouton32_x])), ou un if (isset($_POST[monnomdebouton32_y]))
C'est au choix : comme le bouton est graphique on teste l'existence de l'une des deux coordonnées. Le 32 correspond à un exemple d'indice.
 
 :hello:

Reply

Marsh Posté le 23-05-2007 à 11:20:41    

merci pour vos réponses ! Voila la solution que j'ai utilisé:
 

Code :
  1. <script langage="javascript">
  2. function changeHiddenValue(p_sValueToAttribute)
  3. {
  4.     document.monFormulaire.monChampCache.value = p_sValueToAttribute;
  5.     document.monFormulaire.submit();
  6. }
  7. </script>
  8. <a href="javascript:void(changeHiddenValue('<?php echo $data['login_id']?>'))">[IMG POUBELLE]</a>
  9. <form name="monFormulaire" action="cequetuveux.php" method="post">
  10. <input type="hidden" name="monChampCache" value="" />
  11. </form>

Reply

Marsh Posté le 23-05-2007 à 11:22:54    

"monnomdebouton32_y" L'exemple type de la solution bourin et mal pensé : mélanger l'indice au nom d'une zone (bouton, texte, ...) .
 
guelaztapond > Fait simplement un formulaire par élément avec ton fameux "id_login" en "hidden" qui contiendra la valeur correspondant à chaque élément. Ensuite, en fonction de cette valeur et du bouton cliqué tu sauras si t'as affaire à une modif ou une supression et surtout pour quel élément l'action doit avoir lieux.
 
EDIT : Tu n'as pas besoin de javascript pour faire ce que tu cherches. Tu peux trés bien valider tes formulaires en cliquant sur une image mise dnas un boutton.
exemple :

Code :
  1. <BUTTON name="submit" value="poubelle" type="submit">
  2.     <IMG src="/icons/poubelle.gif" alt="wow"></BUTTON>


Message cité 1 fois
Message édité par omega2 le 23-05-2007 à 11:29:54
Reply

Marsh Posté le 23-05-2007 à 18:34:20    

omega2 a écrit :

"monnomdebouton32_y" L'exemple type de la solution bourin et mal pensé ...
 
EDIT : Tu n'as pas besoin de javascript pour faire ce que tu cherches. Tu peux trés bien valider tes formulaires en cliquant sur une image mise dnas un boutton.
exemple :

Code :
  1. <BUTTON name="submit" value="poubelle" type="submit">
  2.     <IMG src="/icons/poubelle.gif" alt="wow"></BUTTON>



 
Et tu oses parler de solution bourin... Et le <input type="image" /> il sert à quoi à ton avis ??

Reply

Marsh Posté le 24-05-2007 à 09:52:05    

Je ne comprends pas le problème du GET.
Les methodes POST et GET sont identiques, mis à part que l'une est dans le nom de la requete, et l'autre dans son corps. Ca ne change rien.
Tu sais que tu faire des tableaux dans tes nom de valeurs de formulaire si nécessaire ?
<input name="login[]" >

Reply

Marsh Posté le 24-05-2007 à 10:04:15    

nORKy a écrit :

Les methodes POST et GET sont identiques, mis à part que l'une est dans le nom de la requete, et l'autre dans son corps. Ca ne change rien.

un peu de lecture : http://fr.wikipedia.org/wiki/HTTP
=> GET n'est pas prévu pour modifier une ressource, c'est possible mais ça ne respecte pas les recommandations du w3c
 
 

Reply

Marsh Posté le 24-05-2007 à 23:11:48    

Et pis GET ça dévoile tes variables dans la barre d'adresse quand même !


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

Marsh Posté le 24-05-2007 à 23:11:48   

Reply

Marsh Posté le 25-05-2007 à 07:45:19    

oui quand même... :)

Reply

Marsh Posté le 25-05-2007 à 10:02:19    

CyberDenix a écrit :

Et pis GET ça dévoile tes variables dans la barre d'adresse quand même !


c'est un problème ça :??:


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

Marsh Posté le 25-05-2007 à 10:13:51    

naceroth a écrit :

Et tu oses parler de solution bourin... Et le <input type="image" /> il sert à quoi à ton avis ??

Je l'utilises tellement peu souvent que je me rapellais même plus son existance.  :lol:  
 
Je sais, je  [:gzk] .

Reply

Marsh Posté le 25-05-2007 à 18:40:38    

art_dupond a écrit :

c'est un problème ça :??:


 
ben oui ca peut etre un probleme keu meme ! Niveau sécurité par exemple...
Imaginons ke tu envoie en GET un chiffre. Et que se chiffre determine si tu es administrateur par exemple.
Donc j'envoie: index.php?monchiffre=2
par defaut toi tu arrive et tu es en "1"... Il te suffit alors dans la barre d'adresse de mettre "2" et te voila administrateur ! LOL
C'est pas le top ! :non:

Reply

Marsh Posté le 25-05-2007 à 18:43:30    

guelaztapond a écrit :

ben oui ca peut etre un probleme keu meme ! Niveau sécurité par exemple...
Imaginons ke tu envoie en GET un chiffre. Et que se chiffre determine si tu es administrateur par exemple.
Donc j'envoie: index.php?monchiffre=2
par defaut toi tu arrive et tu es en "1"... Il te suffit alors dans la barre d'adresse de mettre "2" et te voila administrateur ! LOL
C'est pas le top ! :non:


 [:wiids]  
 
Tu généralises trop, pour devenir administrateur sur X ou Y système le script fait moultes vérifications et jamais tu ne pourras devenir admin en changeant un chiffre dans un GET, ne rêves pas.
 
Et d'ailleurs toujours dans ton extreme POST ou GET, les deux sont modifiables.


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 25-05-2007 à 18:50:38    

CT un simple exemple qui permet de comprendre assez facilement un des problemes du GET... Que la variable est dans l'URL.
je me doute que je vais pas etre admin en passant un "1" par un "2" LoooooooL Gniééééé :bounce:

Reply

Marsh Posté le 25-05-2007 à 19:06:38    

ce qui est mal avec le get c'est surtout de passer user=bla&pass=toto [:joce]


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 25-05-2007 à 19:30:50    

a priori on vérifie ce qu'on reçoit en get (comme en post d'ailleurs) donc je vois toujours pas le problème [:spamafote]


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

Marsh Posté le 25-05-2007 à 19:33:02    

avoir le mot de passe dans l'historique c'est pas très malin.


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 25-05-2007 à 19:33:33    

oups je répondais pas à toi :p


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

Sujets relatifs:

Leave a Replay

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