Une variable dans un input hidden?

Une variable dans un input hidden? - PHP - Programmation

Marsh Posté le 19-09-2009 à 20:33:54    

Bonjour, je me demandais si c'était risqué de passer une variable dans un input de type hidden?
 
Un input dans ce genre là:  

Code :
  1. <input type=text value="<?php echo $line[idArticle]; ?>" name='idArticle'>

Reply

Marsh Posté le 19-09-2009 à 20:33:54   

Reply

Marsh Posté le 19-09-2009 à 20:56:51    

pas plus que ça
après , l'utilisateur peut les modifier , comme toute autre variable


---------------

Reply

Marsh Posté le 19-09-2009 à 21:27:39    

En fait je pense utiliser cette méthode parce que je suis en train de créer un site (projet pour mes études) où l'on peut créer, modifier et supprimer des articles d'une base de données MYSQL.

 

Donc je créer un article en y mentant les valeurs idArticle, redacteur, titre et contenu.

 

Si je veux le supprimer, je choisis l'article et je le supprime.

 

Par contre, c'est pour le modifier que j'ai un peu de mal, je fais la liste de tout mes articles dans un tableau avec des liens sur chaque articles, une fois que je clique sur un des articles, ça m'envoie sur une autre page qui récupère l'idArticle et à partir de là, affiche toutes les caractéristiques le concernant dans des input ou textarea (d'où mon topic). Je modifie donc ce que je veux et une fois fait, je clique sur un submit qui m'emmène sur une autre page mais je ne sais pas trop comment récupérer l'idArticle parce que dans la page où je modifie, je ne mets pas l'idArticle donc je ne peux pas l'envoyer et le récupérer par un $_POST ni l'envoyer d'une quelconque façon dans l'adresse url avec une variable puisque le lien est dans un form et je sélectionne tout les caractéristiques de l'article en question avec une requête SQL mais je la fait plus bas dans le code..


Message édité par absot77 le 19-09-2009 à 21:33:09
Reply

Marsh Posté le 19-09-2009 à 21:53:31    

t'as 2 solutions,
- soit tu le mets dans un inpout type=hidden et tu récupères $_POST['name_ton_champ_hidden'],
 
- soit dans ta balise form, tu mets action="fichier_de_traitement.php?id_article=$ton_id_article et là tu récupères $_GET['id_article']
 
Quoiqu'il en soit, passé en post/hidden ou en get, il faudra sécuriser ta variable parce que l'utilisateur peut la modifier ...
Ce que j'entends par "sécuriser", c'est p.ex. dans une requête SQL, faire un SELECT ... where (id_article='50' AND author='30') par exemple, si 30 est ton id_user (à toi de voir, mais de façon à ce qu'on récupère les data d'un article que le user soit en droit de modifier)


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Marsh Posté le 19-09-2009 à 22:07:11    

Je montre mon code pour que ce soit plus clair:
 

Code :
  1. $query = "SELECT idArticle,titre,contenu FROM Article WHERE idArticle = '$idArticle'";
  2. /* execution de la requete */
  3. $result = mysql_query($query) or die(mysql_error());
  4. /* la fonction mysql_fetch_array retourne les résultats sous la forme d'un tableau associatif dans lequel on accède aux différents éléments de la manière suivante
  5. */
  6. $line = mysql_fetch_array($result)
  7. ?>
  8. <FORM method=post action="traitementarticle.php?traitement=2&amp;idArticle=$line[idArticle]">
  9. <fieldset class="identhification">
  10. <table>
  11. <tr>
  12.  <td>Titre de la news :</td>
  13. <?php
  14. echo "      <td><input type=text value='$line[titre]' name='titre'></td>";
  15. ?>
  16. </tr>
  17. <tr>
  18.        <td>Contenu :</td>
  19. <?php
  20. echo "     <td><TEXTAREA rows='5' cols='60' name='contenu'>$line[contenu]</TEXTAREA></td>";
  21. ?>
  22. </tr>
  23. </table>
  24. </fieldset>
  25. <input type=submit value="Modifier" class="submit2">
  26. </FORM>


 
 
Quand je clique sur mon bouton submit, ça m'emmène sur une autre page pour traiter ma demande et ma variable idArticle vaut $line[idArticle] donc ce n'est pas bon, comment je pourrais faire pour qu'il y est la vrai valeur?
 
Je sais qu'en mettant la valeur de l'idArticle dans l'url, un utilisateur pourrait modifier tout et n'importe quoi mais c'est pour un projet de cour donc pas encore très important mais si il y a une meilleur méthode, je prends.  :)

Reply

Marsh Posté le 21-09-2009 à 13:53:30    

en type=hidden d'un formulaire, l'utilisateur peut tout autant la modifier, sois sans crainte ;)
 
le pb c'est que la ligne où tu mets ton FORM est de l'HTML, et à aucun moment tu n'affiches le contenu de la variable PHP ...
afficher $line['cequetuveux'] en HTML n'est jamais qu'une suite de caractères, il n'interprète donc rien.
 
Essaie plutôt avec :

Code :
  1. <form method="post" action="traitementarticle.php?traitement=2&idArticle=<?php echo $line[idArticle]; ?>">


---------------
NewsletTux - outil de mailing list en PHP MySQL
Reply

Sujets relatifs:

Leave a Replay

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