PHP - Résultat dans une nouvelle page php
Fermé
zevinny
Messages postés
164
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
13 février 2010
-
8 août 2008 à 22:22
kryoportail Messages postés 222 Date d'inscription dimanche 10 août 2008 Statut Membre Dernière intervention 22 mai 2014 - 10 août 2008 à 22:34
kryoportail Messages postés 222 Date d'inscription dimanche 10 août 2008 Statut Membre Dernière intervention 22 mai 2014 - 10 août 2008 à 22:34
A voir également:
- PHP - Résultat dans une nouvelle page php
- Darkino nouvelle adresse - Guide
- Darkino : le grand site pirate change d'adresse et d'interface - Accueil - Services en ligne
- Supprimer une page word - Guide
- Flixcord nouvelle adresse - Accueil - Outils
- Traduire une page - Guide
5 réponses
ddez
Messages postés
19
Date d'inscription
vendredi 8 août 2008
Statut
Membre
Dernière intervention
10 août 2008
9
9 août 2008 à 10:03
9 août 2008 à 10:03
Bonjour,
Le mieux est peut etre de gérer le changement d'image en javascript. Cela t'évitera de recharger la page.
Voila un exemple :
Le mieux est peut etre de gérer le changement d'image en javascript. Cela t'évitera de recharger la page.
Voila un exemple :
<img id="laGrandeImage"> <div class="listeDesMiniatures"> <img src="miniature/photo1.jpg" onClick="document.getElementById('laGrandeImage').src='enGrand/photo1.jpg'"> <img src="miniature/photo2.jpg" onClick="document.getElementById('laGrandeImage').src='enGrand/photo2.jpg'"> <img src="miniature/photo3.jpg" onClick="document.getElementById('laGrandeImage').src='enGrand/photo3.jpg'"> <img src="miniature/photo4.jpg" onClick="document.getElementById('laGrandeImage').src='enGrand/photo4.jpg'"> <img src="miniature/photo5.jpg" onClick="document.getElementById('laGrandeImage').src='enGrand/photo5.jpg'"> <img src="miniature/photo6.jpg" onClick="document.getElementById('laGrandeImage').src='enGrand/photo6.jpg'"> <img src="miniature/photo7.jpg" onClick="document.getElementById('laGrandeImage').src='enGrand/photo7.jpg'"> </div>
zevinny
Messages postés
164
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
13 février 2010
56
9 août 2008 à 20:52
9 août 2008 à 20:52
Merci...
Mais le nombre est une variable... cela ne marche que quand le nombre d'images est connu!
Mais le nombre est une variable... cela ne marche que quand le nombre d'images est connu!
kryoportail
Messages postés
222
Date d'inscription
dimanche 10 août 2008
Statut
Membre
Dernière intervention
22 mai 2014
125
10 août 2008 à 03:29
10 août 2008 à 03:29
Bonjour,
1. Je suis tout à fait d'accord avec 'zevinny', le mieux pour ce que tu veux faire c'est JavaScript (inutile de gaspiller des ressources serveurs pour régénérer une page et la renvoyer alors que seule une image est nécessaire. Il y a des modules tout fait JQuery pour faire ce que tu souhaites rapidement et facilement (TickBox par exemple) si tu te sens pas à l'aise en Javascript, c'est généralement simple à mettre en œuvre et très bien expliqué.
"Le nombre est une variable", ça ne change rien, si tu fait un 'tant que' ou une énumération sur le tableau, exemple (en complétant ce qui a été proposé) :
ATTENTION : si les urls ou le titre de l'image peuvent recevoir des 'quotes', il faudra les échappés ! Si non le javascript risque de ne pas marcher ou la page sera mal-interprétée !
2. Si tu veux que la page chargée lors du clique de souris ressemble à celle de la galerie, rien ne t'empêche de copier-coller le code HTML et PHP de la page précédente en modifiant uniquement les parties ou l'image doit être agrandie !
Ou alors, j'ai pas compris ce que tu veux faire...
Amicalement,
S@M...
http://kryoportail.ath.cx
1. Je suis tout à fait d'accord avec 'zevinny', le mieux pour ce que tu veux faire c'est JavaScript (inutile de gaspiller des ressources serveurs pour régénérer une page et la renvoyer alors que seule une image est nécessaire. Il y a des modules tout fait JQuery pour faire ce que tu souhaites rapidement et facilement (TickBox par exemple) si tu te sens pas à l'aise en Javascript, c'est généralement simple à mettre en œuvre et très bien expliqué.
"Le nombre est une variable", ça ne change rien, si tu fait un 'tant que' ou une énumération sur le tableau, exemple (en complétant ce qui a été proposé) :
<img id="laGrandeImage"> <div class="listeDesMiniatures"> <?php // Tableau des images à afficher $aImgProperties = array( array( 'miniature/photo1.jpg', 'enGrand/photo1.jpg', 'Description Photo 1' ), array( 'miniature/photo2.jpg', 'enGrand/photo2.jpg', 'Description Photo 2' ), ... array( 'miniature/photoN.jpg', 'enGrand/photoN.jpg', 'Description Photo N' ) ); // Pour chaque image foreach( $aImgProperties as $aImgProperty ) { $sUrlThumb = $aImgProperty[0]; $sUrlImg = $aImgProperty[1]; $sTitle = $aImgProperty[2]; echo( "<img src=\"{$sUrlThumb}\" onClick=\"javascript:document.getElementById('laGrandeImage').src='{$sUrlImg}';\" alt=\"{$sTitle}\">" ); } ?> </div>
ATTENTION : si les urls ou le titre de l'image peuvent recevoir des 'quotes', il faudra les échappés ! Si non le javascript risque de ne pas marcher ou la page sera mal-interprétée !
2. Si tu veux que la page chargée lors du clique de souris ressemble à celle de la galerie, rien ne t'empêche de copier-coller le code HTML et PHP de la page précédente en modifiant uniquement les parties ou l'image doit être agrandie !
Ou alors, j'ai pas compris ce que tu veux faire...
Amicalement,
S@M...
http://kryoportail.ath.cx
zevinny
Messages postés
164
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
13 février 2010
56
10 août 2008 à 21:04
10 août 2008 à 21:04
Je suis d'accord avec sur ce point, mais le fait que se soit une variable, ça m'intrigue un peu!
héhé la page est blanche, mais le code proposé doit pas être si compliqué que ça...
pour réduire l'image, j'utilise en php,
Allé, j'avoue mon code il est hyper compliqué et je commence à ne plus m'en sortir... Ce code ci ouvre ensuite une autre page et affiche les photo en miniature sur un ratio à 150.
Pas mal hein!
Le principale est que me chérie, qui utilisera cette fonction aussi, puis simplement charger les photos sur le site en incluant la page de garde pour les photos et qu'elle ne doivent pas commencer à coder!
Ici ce que vous démontrrez en javaS est un nombre connu, alors est ce que
array (".$tableau[i].") peut également fonctionner?
héhé la page est blanche, mais le code proposé doit pas être si compliqué que ça...
pour réduire l'image, j'utilise en php,
$ratio = 150; $image = $_GET['f']; // on récupère les infos de cette image $tableau = @getimagesize('./'.$image); $src = imagecreatefromjpeg($dir.'/'.$image); // on teste si notre image est de type paysage ou portrait if ($tableau[0] > $tableau[1]) { $im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio); imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]);
Allé, j'avoue mon code il est hyper compliqué et je commence à ne plus m'en sortir... Ce code ci ouvre ensuite une autre page et affiche les photo en miniature sur un ratio à 150.
<?php $tableau = array(); $dossier = opendir ('./'); while ($fichier = readdir ($dossier)) { if (eregi('.jpg', $fichier)) { $tableau[] = $fichier; } } closedir ($dossier); $nbcol=4; $nbpics = count($tableau); if ($nbpics != 0) { echo '<table>'; for ($i=0; $i<$nbpics; $i++){ if($i%$nbcol==0) echo '<tr>'; echo '<td><a href="' , $tableau[$i] , '">'; echo '<img src="photos.php?f=' , $tableau[$i] , '" alt=',$tableau[$i],' border="0"/></a>'; echo '<br><center>'.$tableau[$i].'</center></td>'; if($i%$nbcol==($nbcol-1)) echo '</tr>'; } echo '</table>'; } else echo 'Aucune image à afficher'; ?>
Pas mal hein!
Le principale est que me chérie, qui utilisera cette fonction aussi, puis simplement charger les photos sur le site en incluant la page de garde pour les photos et qu'elle ne doivent pas commencer à coder!
Ici ce que vous démontrrez en javaS est un nombre connu, alors est ce que
array (".$tableau[i].") peut également fonctionner?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
kryoportail
Messages postés
222
Date d'inscription
dimanche 10 août 2008
Statut
Membre
Dernière intervention
22 mai 2014
125
10 août 2008 à 22:34
10 août 2008 à 22:34
Re,
Pour commencer,
Erratum : je voulais dire que j'étais d'accord avec 'ddez' concernant le Javascript dans mon post précédent !...
Concernant le premier script fourni (création des miniatures) pourquoi pas, mais il me semble qu'il puisse être amélioré au niveau de la sécurité...
1. Tu récupères une variable utilisateur 'f', celle-ci peut donc être choisie à tes dépends...
2. Par conséquent, imagine que sur ton site tu stockes dans un répertoire ou le serveur web peut lire, une image de ta copine nue.... Si je connais l'endroit ou est placée cette photo, je peux alors récupérer une miniature de celle-ci : f=../../../un_répertoire/la_photo_de_ta_copine_nue.jpg
( Ne pas oublier que '../' permet de revenir à un dossier parent...)
- Une solution serait donc de lister les images contenues dans le répertoire de ta galerie dans un tableau puis de contrôler que f (fournit par l'utilisateur) existe bien dans ce tableau.
- Une autre solution serait de créer le tableau des images à partir d'une base de données, d'un fichier XML, ou directement en PHP ce qui te permettrait de fournir un titre pour chaque image.
- Encore une autre solution serait d'utiliser la fonction PHP 'realpath' voir le manuel PHP : https://www.php.net/manual/fr/function.realpath.php qui permet de récupérer le chemin absolu d'une fichier ou d'un répertoire et de le comparer avec le chemin absolu du répertoire de la galerie.
Toujours concernant, le premier script, le dernier 'if' ne semble pas être fermé.
Et enfin ce script ne semble pas terminé, car effectivement il semble que tu puisse obtenir une miniature mais celle-ci ne semble ni enregistrée dans un fichier, ni renvoyée vers le navigateur...
Ce qui peut expliquer le symptôme de la page blanche...
Un 'imagejpeg( $im );' ne serait pas de trop à la fin de ce script !... Il permettra d'envoyer vers le navigateur de l'internaute l'image miniature que tu précédement créé.
Un conseil, procède par étape.
- Vérifie que tu puisses afficher les images en grand.
- Réalise et teste ton script renvoyant les miniatures
- Enfin termine en créant la page qui affichera les miatures et qui chargera l'image en grand lorsqu'une miature est sélectionner.
Si tu te noies dans ton code, c'est peut être un manque d'expérience, mais cela peut aussi venir d'une mauvaise organisation. As-tu penser à créer des objets PHP ? Cela permettrai de segmenter ton code et de le rendre ainsi plus clair et plus 'malléable'...
Amicalement,
S@M
http://kryoportail.ath.cx
Pour commencer,
Erratum : je voulais dire que j'étais d'accord avec 'ddez' concernant le Javascript dans mon post précédent !...
Concernant le premier script fourni (création des miniatures) pourquoi pas, mais il me semble qu'il puisse être amélioré au niveau de la sécurité...
1. Tu récupères une variable utilisateur 'f', celle-ci peut donc être choisie à tes dépends...
2. Par conséquent, imagine que sur ton site tu stockes dans un répertoire ou le serveur web peut lire, une image de ta copine nue.... Si je connais l'endroit ou est placée cette photo, je peux alors récupérer une miniature de celle-ci : f=../../../un_répertoire/la_photo_de_ta_copine_nue.jpg
( Ne pas oublier que '../' permet de revenir à un dossier parent...)
- Une solution serait donc de lister les images contenues dans le répertoire de ta galerie dans un tableau puis de contrôler que f (fournit par l'utilisateur) existe bien dans ce tableau.
- Une autre solution serait de créer le tableau des images à partir d'une base de données, d'un fichier XML, ou directement en PHP ce qui te permettrait de fournir un titre pour chaque image.
- Encore une autre solution serait d'utiliser la fonction PHP 'realpath' voir le manuel PHP : https://www.php.net/manual/fr/function.realpath.php qui permet de récupérer le chemin absolu d'une fichier ou d'un répertoire et de le comparer avec le chemin absolu du répertoire de la galerie.
Toujours concernant, le premier script, le dernier 'if' ne semble pas être fermé.
Et enfin ce script ne semble pas terminé, car effectivement il semble que tu puisse obtenir une miniature mais celle-ci ne semble ni enregistrée dans un fichier, ni renvoyée vers le navigateur...
Ce qui peut expliquer le symptôme de la page blanche...
Un 'imagejpeg( $im );' ne serait pas de trop à la fin de ce script !... Il permettra d'envoyer vers le navigateur de l'internaute l'image miniature que tu précédement créé.
Un conseil, procède par étape.
- Vérifie que tu puisses afficher les images en grand.
- Réalise et teste ton script renvoyant les miniatures
- Enfin termine en créant la page qui affichera les miatures et qui chargera l'image en grand lorsqu'une miature est sélectionner.
Si tu te noies dans ton code, c'est peut être un manque d'expérience, mais cela peut aussi venir d'une mauvaise organisation. As-tu penser à créer des objets PHP ? Cela permettrai de segmenter ton code et de le rendre ainsi plus clair et plus 'malléable'...
Amicalement,
S@M
http://kryoportail.ath.cx