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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Requête sql avec une variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Requête sql avec une variable

n°874653
Cpu Toaste​r
R pixel overclocking!
Posté le 16-10-2004 à 09:06:27  profilanswer
 

Bonjour à tous, j'ai décidé de m'attaquer à la programmation de ma galerie en utilisant le php et mysql :) J'arrive à faire pas mal de chose après avoir parcouru les diverses aides d'internet et ailleurs.
Mais là j'ai un problème que je ne comprends pas et demande l'aide de certains.
En gros j'ai une page où il y a 2 frames menu et view, la première c'est un menu déroulant contenant une miniatures de toutes les photos. Celle là ça marche.
À chaque miniature, je fais un link vers mon view.php en adjoignant ?image=photo.jpg
Jusque là ça marche, quand je click sur chaque miniature, ils affichent bien à dans la frame view la bonne photo.  
Maintenant, je voudrais aussi afficher les commentaires pour chaque photo.
Dans ma base de données, j'ai 2 données corespondant à 2 lignes de commentaires: comments1 et comments2.
donc ce que j'ai fait c'est une requête:
$requete="SELECT filename,comments1,comments2 from galeries WHERE filename=$_GET["image"] ";
 
J'ai essayé avec les guillemets, les simple guillemets etc... j'ai toujours une erreur (parse error). Même si je click sur une miniature pour initialiser la variable ça marche pas. :(
J'ai oublié quelque chose?
 
Aussi, autre solution, est-il possible d'enchaîner plusieurs paramètre dans le lien? style view.php?filename=photo.jpg?commentaire=photo de mon chat
ensuite dans mon view, j'ai $_GET["filename"] et $_GET["commentaire"]
 
ça peut marcher ça?
 
Merci de votre aide


Message édité par Cpu Toaster le 16-10-2004 à 09:06:52

---------------
Photo Toaster - Flickr Toaster - Blog Toaster
mood
Publicité
Posté le 16-10-2004 à 09:06:27  profilanswer
 

n°874682
Suri
Darksurious
Posté le 16-10-2004 à 10:53:52  profilanswer
 

divise ta requete en deux, c'est plus simple

Code :
  1. $filename = $_GET["image"];
  2. //eventuellement qques verifications pour la securité :D  
  3. $requete="SELECT filename,comments1,comments2 from galeries WHERE filename='$filename'";


 
sinon tu peux aussi faire:

Code :
  1. $requete="SELECT filename,comments1,comments2 from galeries WHERE filename= " . $_GET["image"] ;

 
(ou le . sert de concatenation (je me souviens plus si c'est . ou +, a verifier)
 
pour passer plusieurs parametres, faut utiliser des '&' entre tes params:
view.php?filename=photo.jpg&commentaire=photo
 
voila :hello:
 


---------------
Suri.morkitu.org : Balades au coeur de la ville...
n°874763
Cpu Toaste​r
R pixel overclocking!
Posté le 16-10-2004 à 14:02:04  profilanswer
 

Merci Suri, je crois que je vais passer plusieurs paramètre au lieu de refaire un tour dans la bdd parce qu'il me semble avoir déjà testé de diviser la requête en deux. Mais bon, je persévère :)
 
Sinon je suppose que pour passer une chaîne de caractère, il faut mettre des guillemets. oui? non? je sais pas? :D


---------------
Photo Toaster - Flickr Toaster - Blog Toaster
n°874769
Suri
Darksurious
Posté le 16-10-2004 à 14:27:45  profilanswer
 

non
mais evite d'avoir des espaces ou des caracteres bizarres dedans :d (et fait gaffe aussi, par l'url, c facile de modifier ta chaine, et tu peux te retrouver avec des chaines que tu veux pas forcement :D


---------------
Suri.morkitu.org : Balades au coeur de la ville...
n°874770
Cpu Toaste​r
R pixel overclocking!
Posté le 16-10-2004 à 14:31:49  profilanswer
 

euh, comme quoi? j'ai pas d'idée saugrenue là...
En fait mon url ressemblerait à:
"./view.php?image=sydney_001.jpg&ligne1=opera house&line2=s45 2s f4"
ça passe tout ça?


---------------
Photo Toaster - Flickr Toaster - Blog Toaster
n°874774
Cpu Toaste​r
R pixel overclocking!
Posté le 16-10-2004 à 14:45:43  profilanswer
 

Bon ça marche, suis content... :)


---------------
Photo Toaster - Flickr Toaster - Blog Toaster
n°874778
Suri
Darksurious
Posté le 16-10-2004 à 14:54:41  profilanswer
 

par ex:
./view.php?image=sydney_001.jpg&ligne1=plicploc&line2=<marquee>toto</marquee>
 
donc mettre du html a la place de tes chaines
tu peux "desactiver" ca en appelant la fonction htmlentities
genre:  
$line1 = htmlentities($_GET["line1"]);
 
un ptit lien qui explique plus en detail le pb :
http://developpeur.journaldunet.co [...] xss1.shtml
 
(c pas vital mais bon, c pas grand chose pour l'eviter :))


---------------
Suri.morkitu.org : Balades au coeur de la ville...
n°874994
Cpu Toaste​r
R pixel overclocking!
Posté le 17-10-2004 à 11:15:37  profilanswer
 

Merci Suri pour l'explication, je vais essayer de faire attention. Quelque chose qui me suprend, c'est que tu dois mettre tes paramètres de connection à la base sql quelque part... ça craint ça non?


---------------
Photo Toaster - Flickr Toaster - Blog Toaster
n°875005
Suri
Darksurious
Posté le 17-10-2004 à 11:40:09  profilanswer
 

Cpu Toaster a écrit :

Merci Suri pour l'explication, je vais essayer de faire attention. Quelque chose qui me suprend, c'est que tu dois mettre tes paramètres de connection à la base sql quelque part... ça craint ça non?


 
tu les met ds un fichier d'include que t'inclue ds tes pages apres...
si ton fichier a l'extension .php ca pose aucun pb
tu cree tes variables de config  genre $pass = "blaalb"; et tu peux les utiliser apres sans crainte.


---------------
Suri.morkitu.org : Balades au coeur de la ville...
n°875036
Cpu Toaste​r
R pixel overclocking!
Posté le 17-10-2004 à 12:27:12  profilanswer
 

Oki merci :)
bon, j'ai pas tout compris aux problèmes de sécurité (au point de vue de ce que je peux faire) Donc, j'ai essayé de voir ce que j'ai et puis prendre des mesures :)
 
Au fait est-ce qu'un utilisateur peut télécharger un fichier php?


---------------
Photo Toaster - Flickr Toaster - Blog Toaster
mood
Publicité
Posté le 17-10-2004 à 12:27:12  profilanswer
 

n°875037
Suri
Darksurious
Posté le 17-10-2004 à 12:28:42  profilanswer
 
n°875054
Cpu Toaste​r
R pixel overclocking!
Posté le 17-10-2004 à 12:46:23  profilanswer
 

Oki merchi, bon, mon site, il est dans ma signature si tu veux y aller faire un tour :)
La méthode Post si j'ai bien compris elle a pas de problème de sécurité ?


---------------
Photo Toaster - Flickr Toaster - Blog Toaster
n°875067
Suri
Darksurious
Posté le 17-10-2004 à 13:10:01  profilanswer
 

en gros faut pas faire confiance aux variables modifiables par l'utilisateur.. (a la base de la secu, faut tout verifier koi)
 
la methode post a exactement les meme pb que GET.. c juste que c un peu plus la merde pour les modifier :D
 
edit: ta galerie elle est encore en html sur ton site :d


Message édité par Suri le 17-10-2004 à 13:11:28

---------------
Suri.morkitu.org : Balades au coeur de la ville...
n°875076
Cpu Toaste​r
R pixel overclocking!
Posté le 17-10-2004 à 13:27:17  profilanswer
 

Pour l'instant oui, je suis en train d'en faire une nouvelle avec des tutures... :) ça arrive là...  
Pour l'instant ya qu'une seule galerie en php... (je suis en train de la tester mais elle est en ligne.. :D accessible en plus...)
Mince comment je fais pour sécuriser mon post alors?
J'ai un fichier où j'affiche tout mon livre d'or, et puis j'ai un fichier php où je met le code pour poster et ajouter les variables que je récupère en post pour les mettre dans ma bdd.
 
Merci de ton aide Suri.
ça marche ça? $line1 = htmlentities($_GET["line1"]);  
ou c'est amplement plus compliqué?


---------------
Photo Toaster - Flickr Toaster - Blog Toaster
n°875079
Suri
Darksurious
Posté le 17-10-2004 à 13:37:33  profilanswer
 

un htmlentities sur tes variables GET et POST c'est deja pas mal suffisant. Ya un truc aussi pour backslasher les quotes ( ' et " ) automatiquement et eviter l'injection de SQL mais c actif par defaut chez free.
tout tes fichiers d'include doivent porter l'extension .php (et pas .inc qui est juste un fichier texte)
A eviter aussi, c de prendre un fichier en parametre et de l'afficher genre toto.php?page=galerie.php a moins de faire un paquet de verification derriere :D (paske la on peut passer n'importe quel fichier texte derriere... j'ai deja rencontré ce genre de trou :D)
 
enfin apres, toi c juste une galerie, c pas le site du fbi :D
donc htmlentities c tout :D


Message édité par Suri le 17-10-2004 à 13:37:48

---------------
Suri.morkitu.org : Balades au coeur de la ville...
n°875081
Cpu Toaste​r
R pixel overclocking!
Posté le 17-10-2004 à 13:50:54  profilanswer
 

Merchi merchi, je lirai plus de littérature si je fais un site professionel un jour, mais bon c'est pas ma formation, je fais ça juste comme mini passe-(beaucoup de)-temps depuis un mois :D
En tout cas merci pour ton aide! :)


---------------
Photo Toaster - Flickr Toaster - Blog Toaster
n°875082
Cpu Toaste​r
R pixel overclocking!
Posté le 17-10-2004 à 13:55:46  profilanswer
 

Ça suffit ça :

Code :
  1. $pseudo = AddSlashes (htmlspecialchars(  htmlentities($_POST[pseudo])));
  2. $email = AddSlashes (htmlspecialchars( htmlentities($_POST[email])));
  3. $message = AddSlashes (htmlspecialchars( htmlentities($_POST[message])));


---------------
Photo Toaster - Flickr Toaster - Blog Toaster
n°875083
Suri
Darksurious
Posté le 17-10-2004 à 14:02:51  profilanswer
 

de memoire il me semble que htmlentities et htmlspecialchars font la meme chose sensiblement (je viens de verifier, htmlentities fait la meme chose mais avec plus de caracteres...)
donc tu peux enlever le htmlspecialchars :)


---------------
Suri.morkitu.org : Balades au coeur de la ville...
n°875085
Cpu Toaste​r
R pixel overclocking!
Posté le 17-10-2004 à 14:05:54  profilanswer
 

Oki merci, le début de bout de code, je l'ai pompé sur un site, (qui disait de pas pomper mais bon, j'ai compris en gros, mais je connais pas le détail exacts des fonctions)
Merci beaucoup Suri.
Si tu veux une carte postale d'ici, tu me dis :D


---------------
Photo Toaster - Flickr Toaster - Blog Toaster
n°875086
Suri
Darksurious
Posté le 17-10-2004 à 14:10:27  profilanswer
 

tu as de la doc en ligne en fr ici: http://www.php.net/docs.php
et downloadable au format chm ici: http://www.php.net/download-docs.php
:D
 
pour la carte postale, uniquement si c toi qui prend la photo :D


---------------
Suri.morkitu.org : Balades au coeur de la ville...
n°875094
Cpu Toaste​r
R pixel overclocking!
Posté le 17-10-2004 à 14:32:06  profilanswer
 

Ben si tu veux tu peux sélectionner dans ma galerie, et adresse en mp :)
Sinon, je t'envoie une photo de mon choix.
Enfin faudrait que je vois où je peux imprimer des cartes postales à partir de mes photos... :s
Mais bon, merci pour ton aide.


---------------
Photo Toaster - Flickr Toaster - Blog Toaster
mood
Publicité
Posté le   profilanswer
 


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

  [PHP] Requête sql avec une variable

 

Sujets relatifs
Exécuter une commande linux via un script PHP !?[Resolu] [ASP] PRB avec espace dans une variable et affichage en html
Problème d'affichage de chaine de caracatères en PHP[PHP] Timestamp de la date 2004-10-13 16:33:03 ? comment faire?
PHP et XMLDétruire une variable dans $_SESSION
Comment cacher une page internet dans une page PHP.[Resolu][PHP] Passer une variable dans une requete mysql_query()
[PHP] Récupération d'une variable d'un formulaire ds une requête MySQL[PHP] Variable dynamique et bouclage de requête
Plus de sujets relatifs à : [PHP] Requête sql avec une variable


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