Miniatures de gallerie d'image : second GET gênant ? - PHP - Programmation
Marsh Posté le 27-02-2008 à 16:48:03
Es-tu sût que ton $_GET['id] a bien une valeur ?
Marsh Posté le 27-02-2008 à 17:40:24
Oui, mais même si le $_GET['id'] n'est affecté à aucune variable, (si je met $_GET['id']; tout seul, bien qu'évidemment ça ne servirai à rien), les miniatures ne sont pas générées.
C'est la présence d'un second GET qui pose problème, et je ne sais pas pourquoi.
Marsh Posté le 27-02-2008 à 17:42:57
san_ a écrit : Oui, mais même si le $_GET['id'] n'est affecté à aucune variable, (si je met $_GET['id']; tout seul, bien qu'évidemment ça ne servirai à rien), les miniatures ne sont pas générées. |
Que donne un print_r($_GET) ?
Marsh Posté le 27-02-2008 à 18:11:09
ReplyMarsh Posté le 27-02-2008 à 18:14:35
Tu l'as placé où ? Juste avant if(!empty($_GET['img'])) ?
Marsh Posté le 27-02-2008 à 18:20:42
babasss a écrit : Tu l'as placé où ? Juste avant if(!empty($_GET['img'])) ? |
Non, tout à la fin de mon script. Si je le met avant le if(!empty($_GET['img'])), la même chose s'affiche, seulement mes miniatures ne s'affichent plus. A cause de la présence du print_r($_GET)... étrange n'est ce pas
Marsh Posté le 27-02-2008 à 18:46:40
Si quand tu le mets au début de ton script, il n'affiche que ce que "Array ( [p] => gallery )". cela veut dire que uniquement $_GET['gallery'] est défini et pas les autres....
Es-tu sur que dans l'URL, tu as id= et img= ?
Marsh Posté le 27-02-2008 à 19:44:50
$_GET['p'] tu veux sans doute dire.
"p" c'est la variable que j'utilise pour charger le script gallery.php de la gallerie (index.php?p=gallery).
Je veux faire fonctionner la variable $_GET['id'] pour choisir d'afficher le contenu d'un des répertoires placés dans "./img/gallery/". Par exemple si je charge "index.php?p=gallery&id=eurometal" je veux qu'il m'affiche le contenu de "./img/gallery/eurometal".
La variable "img", je n'ai pas à la préciser moi-même dans l'url, elle est générée pour chaque miniature (<img src="gallery.php?img=DSC01326.jpg" ...). Je sais pas si je suis clair .
Marsh Posté le 27-02-2008 à 23:30:51
et donc à chaque visionnage de ta galerie, les miniatures sont générées ?
Tu ferais pas mieux de les générer à l'import de tes images, ça serait fait une fois pour toutes
Marsh Posté le 28-02-2008 à 00:43:12
bricocoman a écrit : et donc à chaque visionnage de ta galerie, les miniatures sont générées ? |
Faire en sorte que le script génère physiquement les images miniatures ? je l'ai testé avec un autre script, c'est plus rapide en effet mais je préfère quand même qu'elles soient générées à la volée, question de souplesse pour les mises à jour. Si je remplace une image originale par une autre, sa miniature, elle, ne sera pas mise à jour automatiquement.
Sinon pour mon problème, personne n'a une idée je devrais peut être poster la seconde moitié du script ?
Marsh Posté le 28-02-2008 à 08:55:45
tu dois avoir une notice ou autre dans ton script qui fait foirer l'affichage, erreur fréquente.
donc un peu de debug ne ferait pas de mal, enlève le header et appelle ton script directement, tu verras les messages d'erreur
Marsh Posté le 28-02-2008 à 11:34:40
soju a écrit : tu dois avoir une notice ou autre dans ton script qui fait foirer l'affichage, erreur fréquente. |
+1
Ce qui est clair c'est que l'URL avec lequel tu appelles ce script ne contient que la varaible $_GET['p'] et pas les autres...
Donc soit l'URL d'appel doit être mauvais... Peux-tu nous le montrer ?
Marsh Posté le 28-02-2008 à 11:48:37
c'est celle-ci http://localhost/?p=gallery&id=eurometal
J'ai ajouté la seconde moitié du code. Voyez ma variable $idgal = $_GET['id']; que j'ai déplacé tout au début. Si vous la remplacez par la chaîne de caractère qui va bien ($idgal = 'eurometal'; dans mon cas), tout fonctionne. Avec un GET, c'est pas le cas .
Marsh Posté le 28-02-2008 à 11:54:39
Pour passer de http://localhost/?p=gallery&id=eurometal à ton script, tu utilises quoi : un Rewrite ?
Ce serait pas ca qui te bouffe une partie de ton URL ?
Marsh Posté le 28-02-2008 à 12:01:18
babasss a écrit : Pour passer de http://localhost/?p=gallery&id=eurometal à ton script, tu utilises quoi : un Rewrite ? |
J'utilise ça dans mon index.php :
Code :
|
(c'est bien ça que tu me demandais ?)
Marsh Posté le 28-02-2008 à 12:31:06
Yes...
Essaye de récupérer les $_GET avant de faire le include
Code :
|
Et de l'autre coté, tu appelles les varaibles $idgal et $img
Marsh Posté le 28-02-2008 à 13:03:01
j'ai essayé de mettre $idgal = $_GET['id']; dans mon index mais le résultat est le même.
Quant à la variable $img, elle ne contient pas uniquement le GET img mais
$img = get_magic_quotes_gpc() ? stripslashes($_GET['img']) : $_GET['img'];, et ce uniquement si la condition if(!empty($_GET['img'])) est respectée, donc je ne peux pas la bouger.
Et je n'ai pas à mettre de "?img=" dans l'url ce ?img corresepond uniquement à l'url générée des miniatures comme je l'ai précisé en haut
Marsh Posté le 28-02-2008 à 14:16:26
et si tu essayes ce lien : http://localhost/gallery.php?id=eurometal , il se passe quoi ?
Peux-tu nous donner aussi tout le fichier index.php ?
Marsh Posté le 28-02-2008 à 14:40:33
babasss a écrit : et si tu essayes ce lien : http://localhost/gallery.php?id=eurometal , il se passe quoi ? |
page blanche avec le get, et si je le remplace par la chaine "eurometal", j'ai ma gallerie sur fond blanc, c'est toujours le même problème.
Le reste de l'index n'est pas très interessant, c'est presque que du html pour l'instant.
Mais si tu es motivé a comprendre voila le site "complet" (j'en suis qu'au tout début) : http://sweedigel.free.fr/tmp/site.7z
Marsh Posté le 28-02-2008 à 14:43:32
san_ a écrit : |
Je regarde ca ce soir.... Ton pb me turlupine sacrément...
Marsh Posté le 28-02-2008 à 17:35:27
san_ a écrit : |
J'ai téléchargé tes sources pour faire l'essai.
--> page blanche... moi aussi, c'est ce que j'ai "en apparence", mais si tu affiche la source, c'est pas vraiment une page blanche ^^
Code :
|
c'est plutot du "blanc sur blanc", autrement appelé le "monochrome de whiteman"
Marsh Posté le 28-02-2008 à 17:39:15
Oui j'avais vu ça. Et d'ailleurs le plus troublant c'est qu'on s'aperçoit bien que mon $_GET['id'] est bel et bien pris en compte. Seulement... la miniature ne s'affiche pas. A n'y rien comprendre
Marsh Posté le 28-02-2008 à 20:48:19
Héhé, ca marche chez moi.....
Deux problèmes :
Code : |
Là on n'a toujours pas les miniatures mais quand on clique dessus, on obtient les agrandissement.... Mais pourquoi donc
Et maintenant tout roule
Marsh Posté le 29-02-2008 à 01:05:24
génial ça fonctionne. Par contre je n'ai pas le problème de l'underscore . En effet c'est plutôt logique, mais il y a quelquechose que je ne m'eplique pas : pourquoi le fait de mettre un $_GET au début, quel qu'il soit, empêchait l'affichage des miniatures ? Même lorsqu'on avait déclaré $idgal = 'eurometal' par exemple.
Un grand, grand merci en tout cas .
Marsh Posté le 29-02-2008 à 09:12:10
Si tu avais testé la page gallery.php/?img=DSC01337.jpg, tu connaitrais la réponse
En fait, tu appellais la page gallery.php avec comme variable img=DSC01337.jpg et tu ne définissais pas idgal or dans la première moitié de ton script tu en as besoin pour localiser l'image (ligne 11, 13 15 et 17)
Marsh Posté le 27-02-2008 à 16:35:39
Bonjour,
Je travaille sur un code en php qui affiche une gallerie d'images à partir du contenu d'un dossier et qui génère des miniatures à la volée.
Voici ci-dessous la portion du code qui génère (ou devrait générer) les miniatures.
Le problème vient en fait du second GET ($_GET['id']), et je ne saisis pas pourquoi.
Une fois celui-ci enlevé (si je le remplace par une chaine de caractères adequat par exemple), mes miniatures s'affichent.
Quelqu'un aurait une explication à ça il y a une règle que je n'ai pas respectée ?
Et voici la seconde moitié du script (le else du début est répété, donc évidemment a supprimer si vous le testez) :
edit : ajout du script complet
Message édité par san_ le 28-02-2008 à 11:45:51