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

  FORUM HardWare.fr
  Programmation
  PHP

  [php] Insérer un ID dans une url

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[php] Insérer un ID dans une url

n°1813142
honeykent
Posté le 17-11-2008 à 20:22:10  profilanswer
 

bonjour à tous,
 
J'ai un petit problème que je n'arrive pas à résoudre j'ai beau chercher je ne trouve pas. :euh:
Je vous explique :
 
J'ai un mini formulaire qui permet de créer un nouvel objet.
 
Quand je clique sur 'créer une voiture' une requête SQL inscrit le nom de l'objet dans une table et donc lui crée automatiquement un ID.
 
Je souhaite ensuite récupérer l'ID qui a été crée pour l'insérer dans l'url courante. En fait je souhaite tout simplement savoir comment inscrire dans une url un ID qui est stocké dans une base de donnée.
 
Je suis débutante, je ne sais pas si je suis très claire...
merci par avance :)


Message édité par honeykent le 17-11-2008 à 20:22:46
mood
Publicité
Posté le 17-11-2008 à 20:22:10  profilanswer
 

n°1813148
mr simon
Posté le 17-11-2008 à 20:35:04  profilanswer
 

Pour récupérer l'id, tu peux regarder du côté de mysql_insert_id : http://fr.php.net/mysql_insert_id si bien sûr tu utilises MySQL, il doit exister des équivalents pour les autres SGBD. Si tu utilises PDO: http://www.manuelphp.com/php/funct [...] sertid.php
 
 
 

n°1813159
honeykent
Posté le 17-11-2008 à 20:54:05  profilanswer
 

merci beaucoup pour le lien, oui en effet en PDO :)  

n°1813266
cvb
Posté le 18-11-2008 à 10:05:59  profilanswer
 

Bonjour,
 
exemple :  
 

http://forum.hardware.fr/hfr/Programmation/PHP/inserer-id-sujet_119284_1.htm&id=[valeur de l'ID que tu récupère ].


 
Quand tu récupère cette valeur, fait un traitement pour voir s'il est "correct", qu'elle ne possède pas de caractères invalides, afin d'éviter les injections SQL,ect. C'est une régle importante quand on récupère des valeurs avec GET_ ... !  
 
Dans ton cas, suffit de tester si c'est un entier...!  :o  
 
 
 
 :jap:  :jap:


Message édité par cvb le 18-11-2008 à 12:20:02
n°1813358
Alisteroid
Posté le 18-11-2008 à 12:15:29  profilanswer
 

Suffit de tester si c'est un entier  [:_jbm]

n°1813570
Profil sup​primé
Posté le 18-11-2008 à 18:16:27  answer
 

ou bien de forcer le type  

Code :
  1. $id = (int) $_GET['id'];

n°1813604
omega2
Posté le 18-11-2008 à 19:05:21  profilanswer
 

Il vaut mieux tester le contenu d'une variable et agir en conséquence que de forcer le type de ne pas savoir si la valeur correspond à ce qui est saisie.
 
En utilisant un "(int)" sans tester au préalable, tu ne sais rien de ce qui se passe. Tu ne sais pas si quelque chose a été saisie (il vaut souvent mieux dire "vous avez oubliez d'indiquer le nombre d'enfant" que considérer qu'il n'en a pas) si la saisie est un nombre tronqué par le "(int)" (5e2 = 500 en notation mathématique mais vaut 5 quand c'est un texte transformé avec (int) ), si le nombre était dans une autre base ( "(int) 012" = 12 alors que dans pleins de domaine, c'est un nombre en base 8 qui vaut 10 en décimal, idem avec "(int) 0xb3" qui vaut 0 alors que d'habitude ce nombre vaut 179 en base 10)
 
En fait, utiliser du typage comme (int) sur une valeur saisie par l'utilisateur sans contrôler au préalable le contenu, c'est comme utiliser l'arobase devant une fonction : c'est se dire "c'est sensé marcher, mais même si ça marche pas, je m'en fous, je le cache et ne dit rien à personne".

n°1813823
Profil sup​primé
Posté le 19-11-2008 à 13:35:33  answer
 

oui et non !
moi je fais presque toujours (pour mes requête de récup de données seuleùent ) :
 

Code :
  1. if(!empty($_GET['id'])) {
  2.    $id = (int); $_GET['id'];
  3. } else {
  4.    // Traitement si GET id incorrect...
  5. }


 
Si l'id devient zéro car la valeur était d'un format complètement incorrect, alors la requete échoue comme si la donnée recherchée n'existait pas.
 
Attention : j'utilise (int) pour une requete qui ne dépend pas tout à fait du client : un lien que je lui fourni par exemple.
Si il devait entrer lui même un entier je ferais des vérifications ;)

n°1813831
skeye
Posté le 19-11-2008 à 13:53:12  profilanswer
 

khakha.


---------------
Can't buy what I want because it's free -
n°1813868
Profil sup​primé
Posté le 19-11-2008 à 15:06:04  answer
 

:'(

mood
Publicité
Posté le 19-11-2008 à 15:06:04  profilanswer
 

n°1813873
Alisteroid
Posté le 19-11-2008 à 15:14:16  profilanswer
 

C'est aussi propre que de faire un extract($_POST);  :whistle:


Message édité par Alisteroid le 19-11-2008 à 15:14:41
n°1813878
Profil sup​primé
Posté le 19-11-2008 à 15:19:26  answer
 

edited :o

n°1813956
NewsletTux
<Insérez ici votre vie />
Posté le 19-11-2008 à 18:22:37  profilanswer
 

je ne vois pas en quoi c'est censé être "khakha" tout le temps ... Pour ma part, j'utilise à peu près le même type de solution que luc@s, lorsque je mets un ID dans l'URL (puisque ce topic en parle et semble borné sur ça) et que l'ID correspond à une entrée numérique dans une DB, par exemple (ou un numéro de page si affichage multipages) alors je caste volontairement en intval et j'en prends la valeur absolue, ceci me permettant de savoir par la suite que mon $id récupéré du $_GET est forcément un entier positif ou nul.
 
Bien entendu, dans le cas d'un nombre plus complexe (et dans un autre contexte) je comprends ce que tu dis, omega2, et évidemment il y a d'autres tests un peu plus softs à faire. Mais je ne vois pas en quoi le fait de forcer par abs + intval un $_GET de qqch qu'on attend numérique serait une solution douteuse ... Après tout, ce n'est pas le gerne de donnée que l'utilisateur entre à la main, donc forcément je sais à quoi je m'attends, même si une modif de l'URL est faisable. Justement le transtypage permet de s'affranchir de certains soucis de la modif par le hacker du dimanche de l'URL ...
 
pour le extract($_POST), par contre, je n'utilise pas  :)


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°1813964
Profil sup​primé
Posté le 19-11-2008 à 18:30:56  answer
 

moi non plus, heureusement :)


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

  [php] Insérer un ID dans une url

 

Sujets relatifs
inserer une requete dans une tableInsérer flash appli java
[résolu] Hibernate Annotations et oneToMany EAGERinserer une classe dans du code php
inserer une session dans ma table?Insérer une image dans un tableau
Open XML API : insérer une image dans Word[PHP + PDF] Insérer un filigrane
[php]Insérer une table dans une autre table en fonction d'une variableinsérer une carte météo dans une iframe
Plus de sujets relatifs à : [php] Insérer un ID dans une url


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