Tutoriel : comment faire une galerie en php ?

Pour divers tutos

Tutoriel : comment faire une galerie en php ?

Messagede Vally8 le 09 Aoû 2005 15:52

Bien, ryoko m'a demandé comment on faisait une galerie.... autant que tout le monde en profite, alors voici un petit script qui va vous faciliter la vie....

Je vous explique :

* il faut que vous activiez la librairie graphique gd : pour les utilisateurs de free, c'est deja activé. Pour les autres, ceux qui utlisent easyphp : cliquez sur l'icone d'easyphp dans la barre des taches, cherchez extensions : dans la liste cherchez gd2 : cochez la case, appliquez, fermez, et relancez easyphp : c'est bon....

* pour que le script fonctionne, copiez tout le script dans un fichier php.... ensuite regardez dans les premieres lignes : il y a des choses à parametrer : 4 pour etre exactes : le repertoire ou se trouvent vos images, le nom de la galerie, le nom qui va s'afficher dans votre navigateur, et le nombre d'images que vous voudrez par ligne...

* uploadez ce fichier et créez un repertoire dans lequel vous mettrez toutes vos photos (et mettez le nom du répertoire dans le fichier php sans le "/" final )

* demandez l'affichage de la page php : il va créer les imagettes (maximum de 200 pixel en hauteur ou 200 pixel en largeur)

* ce script gere les fichiers images de type : jpg, jpeg, gif et png...
toutefois, un fichier gif étant le plus souvent animé, je ne vous conseille pas d'utiliser ce script pour des gifs animés.

* le code html est W3C :)

* l'affichage se fait dans un tableau : mais l'affichage n'est pas le plus difficile à changer si vous n'aimez pas cette solution ;)

* le code est commenté, mais si vous avez la moindre question ou le moindre commentaire, n'hesitez pas

Code: Tout sélectionner
<?
/*
   galerie.php par Vally8 (vally8@free.fr) - Aout 2005

   Un fichier php qui permet d'afficher des images sous forme de tableaux
   Vous pouvez changer le nom du repertoire ou se trouvent les images et le nombre d'images qui s'afficheront par ligne
   Vous pourrez aussi changer le titre de la galerie et le nom qui va apparaitre dans la barre de navigation.

*/


// le repertoire où se trouvent les images
$rep = "images";
// le nom qui va apparaitre en tant que titre
$titre_page = "Ma galerie";
// le nom qui apparait dans la barre du navigateur
$titre_navigateur = "Un exemple de galerie";
// le nombre d'images par lignes
$nb = 3;

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//FR"   "http://www.w3.org/TR/html4/loose.dtd">

<html>                       
<head>

<title><? echo $titre_navigateur; ?></title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<?

echo "<h1 align=\"center\">$titre_page</h1>\n";
// les images seront representées en tableaux avec $nb images par ligne : on commence le tableau
echo "<table width=\"100%\">
       <tr>
         <td>&nbsp;</td>\n";

// on ouvre le repertoire
$d = dir("./$rep");
   
// si le repertoire ne contient pas de dossier "miniatures", on le cree   
if  ( ! (is_dir("./$rep/miniatures")))
   {
      mkdir("./$rep/miniatures");
   }
$i = 0;
   
   
// on boucle sur les entrées du fichiers
while($fichier = $d->read())
{
   // pour récuperer le nom du fichier et son extension
   $noms=explode('.',$fichier,2);
      
   $name=$noms[0];
   $ext=$noms[1];

   // pas de traitement sur le dossier courant ni sur son pere ni sur les eventuels fichiers php
   if ($fichier != "." && $fichier != ".."  && $ext != "php")
   {
      // on verifie qu'on a bien affaire à un dossier
      if (is_file("./$rep/$fichier"))
         {
            // si on veut commencer une nouvelle ligne : on ferme la ligne, on met un peu d'espace et on en commence une nouvelle
            if (($i%$nb) == 0)
               {
                  echo "
                       </tr>
                       <tr>
                                <td>&nbsp;</td>
                       </tr>
                       <tr>\n";
               }
            
            // comment s'appellerait la miniature ?
            $min = $rep."/miniatures/".$name."_m.".$ext;
            
            // si elle n'existe pas, il faut la créer
            if (! (file_exists($min)))
               {           
               ImageRedim ($rep, $fichier);
               }

                     echo "<td align=center><a href =\"$rep/$fichier\" target=\"_blank\"> <img src=\"$min\" alt=\"$fichier\"></a></td>\n";
                     $i++;
                 }
       }
}
   
// fermeture du tableau puis du dossier
echo"</tr>
</table>\n";
$d->close();
?>

<p align="center">
<a href="http://validator.w3.org/check?uri=referer" target="_blank"><img border="0" src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" height="31" width="88"></a>
</p>

</body>
</html>


<?
function ImageRedim ($rep, $fichier)
{

$filename = "./$rep/$fichier";

// Définition de la largeur et de la hauteur maximale
$width = 200;
$height = 200;

// Cacul des nouvelles dimensions
list($width_orig, $height_orig) = getimagesize($filename);

if ($width && ($width_orig < $height_orig))
{
    $width = ($height / $height_orig) * $width_orig;
}
else
{
    $height = ($width / $width_orig) * $height_orig;
}
   // on recupere le nom et l'extension du fichier
   $noms=explode('.',$fichier,2);
   
   $name=$noms[0];
   $ext=$noms[1];   
   
   // Redimensionnement
   $image_p = imagecreatetruecolor($width, $height);
      
   if ($ext == "jpg" || $ext == "jpeg")
      $image = imagecreatefromjpeg($filename);
   if ($ext == "png")
      $image = imagecreatefrompng($filename);
   if ($ext == "gif")
      $image = imagecreatefromgif($filename);
   
   imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);

   // comment va s'appeler la miniature et dans quel dossier sera t'elle ?
   $min = "./".$rep."/miniatures/".$name."_m.".$ext;
       
   // il ne reste plus qu'a enregistrer la miniature en fonction de l'extension
   if ($ext == "jpg" || $ext == "jpeg")
      imagejpeg($image_p,$min);
   if ($ext == "png")
      imagepng($image_p,$min);
   if ($ext == "gif")
      imagegif($image_p,$min);


?>
Dernière édition par Vally8 le 09 Aoû 2005 17:01, édité 1 fois.
Moi, j'aime schtroumpfer...
Si vous voulez faire une soluce, plutôt que de m'envoyer un MP, postez-là ici (j'ai rarement le temps de répondre à tous les MP)
Avatar de l’utilisateur
Vally8
Gouroute du Site
Gouroute du Site
 
Messages: 15567
Inscription: 07 Mai 2004 18:14
Localisation: Au pays des schtroumpfs
Jeu(x) du moment: Professor Layton, Tales of Vesperia, Dragon Quest 9

Messagede ryoko.lila le 09 Aoû 2005 16:44

bon j'ai esseyé (merci :heart:)
Mais avant de mettre le dessin ca me met cat
Code: Tout sélectionner
 
Notice: Undefined variable: ext in c:\program files\easyphp1-8\www\site\galerie.php on line 100

Notice: Undefined variable: image in c:\program files\easyphp1-8\www\site\galerie.php on line 188

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\program files\easyphp1-8\www\site\galerie.php on line 188
   
   
Notice: Undefined variable: image in c:\program files\easyphp1-8\www\site\galerie.php on line 188

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\program files\easyphp1-8\www\site\galerie.php on line 188
   
     
Notice: Undefined variable: image in c:\program files\easyphp1-8\www\site\galerie.php on line 188

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\program files\easyphp1-8\www\site\galerie.php on line 188
   
   
Notice: Undefined variable: image in c:\program files\easyphp1-8\www\site\galerie.php on line 188

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\program files\easyphp1-8\www\site\galerie.php on line 188
   
  Fatal error: Maximum execution time of 30 seconds exceeded in c:\program files\easyphp1-8\www\site\galerie.php on line 191
Les gens compliquent tout pour avoir l'impression de vivre.
Patrick Rambaud


:mimi:
Avatar de Nacrym
Avatar de l’utilisateur
ryoko.lila
Chocobo Ode
Chocobo Ode
 
Messages: 4271
Inscription: 20 Oct 2004 14:50
Localisation: A votre avis....
Jeu(x) du moment: P3 et FF3 (que de 3)

Messagede Vally8 le 09 Aoû 2005 16:47

humm... moi ligne 100 j'ai rien

et le script s'arrete ligne 162.... je t'ai envoyé le fichier par mail : essayes avec celui la :ok:
Moi, j'aime schtroumpfer...
Si vous voulez faire une soluce, plutôt que de m'envoyer un MP, postez-là ici (j'ai rarement le temps de répondre à tous les MP)
Avatar de l’utilisateur
Vally8
Gouroute du Site
Gouroute du Site
 
Messages: 15567
Inscription: 07 Mai 2004 18:14
Localisation: Au pays des schtroumpfs
Jeu(x) du moment: Professor Layton, Tales of Vesperia, Dragon Quest 9

Messagede ryoko.lila le 09 Aoû 2005 16:57

Code: Tout sélectionner
Notice: Undefined variable: ext in c:\program files\easyphp1-8\www\site\galerie2.php on line 58

  Notice: Undefined variable: image in c:\program files\easyphp1-8\www\site\galerie2.php on line 146

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\program files\easyphp1-8\www\site\galerie2.php on line 146
   
Notice: Undefined variable: image in c:\program files\easyphp1-8\www\site\galerie2.php on line 146

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\program files\easyphp1-8\www\site\galerie2.php on line 146
   
   
Notice: Undefined variable: image in c:\program files\easyphp1-8\www\site\galerie2.php on line 146

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\program files\easyphp1-8\www\site\galerie2.php on line 146
   
   
Notice: Undefined variable: image in c:\program files\easyphp1-8\www\site\galerie2.php on line 146

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\program files\easyphp1-8\www\site\galerie2.php on line 146
   Notice: Undefined variable: image in c:\program files\easyphp1-8\www\site\galerie2.php on line 146

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\program files\easyphp1-8\www\site\galerie2.php on line 146
 
Notice: Undefined variable: image in c:\program files\easyphp1-8\www\site\galerie2.php on line 146

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\program files\easyphp1-8\www\site\galerie2.php on line 146
 
   
Notice: Undefined variable: image in c:\program files\easyphp1-8\www\site\galerie2.php on line 146

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\program files\easyphp1-8\www\site\galerie2.php on line 146
 
 

Notice: Undefined variable: image in c:\program files\easyphp1-8\www\site\galerie2.php on line 146

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\program files\easyphp1-8\www\site\galerie2.php on line 146
   
 
 
Notice: Undefined variable: image in c:\program files\easyphp1-8\www\site\galerie2.php on line 146

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\program files\easyphp1-8\www\site\galerie2.php on line 146
 
   
Warning: Division by zero in c:\program files\easyphp1-8\www\site\galerie2.php on line 128

Warning: imagecreatetruecolor(): Invalid image dimensions in c:\program files\easyphp1-8\www\site\galerie2.php on line 137

Notice: Undefined variable: image in c:\program files\easyphp1-8\www\site\galerie2.php on line 146

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\program files\easyphp1-8\www\site\galerie2.php on line 146
   
 

Warning: Division by zero in c:\program files\easyphp1-8\www\site\galerie2.php on line 128

Warning: imagecreatetruecolor(): Invalid image dimensions in c:\program files\easyphp1-8\www\site\galerie2.php on line 137

Notice: Undefined variable: image in c:\program files\easyphp1-8\www\site\galerie2.php on line 146

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\program files\easyphp1-8\www\site\galerie2.php on line 146
 
Fatal error: Maximum execution time of 30 seconds exceeded in c:\program files\easyphp1-8\www\site\galerie2.php on line 120

Merci -_-"
Les gens compliquent tout pour avoir l'impression de vivre.
Patrick Rambaud


:mimi:
Avatar de Nacrym
Avatar de l’utilisateur
ryoko.lila
Chocobo Ode
Chocobo Ode
 
Messages: 4271
Inscription: 20 Oct 2004 14:50
Localisation: A votre avis....
Jeu(x) du moment: P3 et FF3 (que de 3)

Messagede Vally8 le 09 Aoû 2005 17:07

premiere erreur trouvée :)
4 lignes à remonter (corrigé dans le code)

en revanche, apres, je ne vois pas .... ligne 146 : tes fichiers sont des gif ????
Moi, j'aime schtroumpfer...
Si vous voulez faire une soluce, plutôt que de m'envoyer un MP, postez-là ici (j'ai rarement le temps de répondre à tous les MP)
Avatar de l’utilisateur
Vally8
Gouroute du Site
Gouroute du Site
 
Messages: 15567
Inscription: 07 Mai 2004 18:14
Localisation: Au pays des schtroumpfs
Jeu(x) du moment: Professor Layton, Tales of Vesperia, Dragon Quest 9

Messagede ryoko.lila le 09 Aoû 2005 17:25

jpeg! mais je vais faire le menage :D
Les gens compliquent tout pour avoir l'impression de vivre.
Patrick Rambaud


:mimi:
Avatar de Nacrym
Avatar de l’utilisateur
ryoko.lila
Chocobo Ode
Chocobo Ode
 
Messages: 4271
Inscription: 20 Oct 2004 14:50
Localisation: A votre avis....
Jeu(x) du moment: P3 et FF3 (que de 3)

Messagede Zeus le 15 Aoû 2005 16:05

Excellent ce tutorial !
Si j'ai besoin de faire une galerie un jour, je viendrai jeter un coup d'oeil c'est sur !
Avatar de l’utilisateur
Zeus
Chocobo qui a mangé trop de chocolat
Chocobo qui a mangé trop de chocolat
 
Messages: 5365
Inscription: 05 Avr 2005 14:30
Localisation: Montpellier
Le jeu qui vous a fait connaître le site: Star Ocean 3

Messagede Vally8 le 15 Aoû 2005 18:13

merci :ok:
visiblement, ca fait des warning (juste sous windows), mais chez free, ca s'exécute sans soucis :ok:
Moi, j'aime schtroumpfer...
Si vous voulez faire une soluce, plutôt que de m'envoyer un MP, postez-là ici (j'ai rarement le temps de répondre à tous les MP)
Avatar de l’utilisateur
Vally8
Gouroute du Site
Gouroute du Site
 
Messages: 15567
Inscription: 07 Mai 2004 18:14
Localisation: Au pays des schtroumpfs
Jeu(x) du moment: Professor Layton, Tales of Vesperia, Dragon Quest 9

Messagede ryoko.lila le 15 Aoû 2005 21:40

Pareil pour Lycos, ca marche bien :oui:
Merci, val :pouce:
Les gens compliquent tout pour avoir l'impression de vivre.
Patrick Rambaud


:mimi:
Avatar de Nacrym
Avatar de l’utilisateur
ryoko.lila
Chocobo Ode
Chocobo Ode
 
Messages: 4271
Inscription: 20 Oct 2004 14:50
Localisation: A votre avis....
Jeu(x) du moment: P3 et FF3 (que de 3)

Messagede ryoko.lila le 24 Aoû 2005 12:25

Je fait ma galerie et tout s'affiche bien (sur le web local ;) )
Mais y'a un étrange "Thumbs.db" qui s'affiche au milieu des images! c'est normal?
Les gens compliquent tout pour avoir l'impression de vivre.
Patrick Rambaud


:mimi:
Avatar de Nacrym
Avatar de l’utilisateur
ryoko.lila
Chocobo Ode
Chocobo Ode
 
Messages: 4271
Inscription: 20 Oct 2004 14:50
Localisation: A votre avis....
Jeu(x) du moment: P3 et FF3 (que de 3)

Messagede FF pro le 24 Aoû 2005 12:33

c'est normal que je comprenne rien ???
FF pro
 

Messagede Aéris le 24 Aoû 2005 12:34

Kikoo Vally

Merci ca va servir à un copain depuis le temps que je l'embête pour qu'il fasse sa galerie.

Là y va plus pouvoir dire : je sais pas.

coooooooooollll !!! piégé le tit gars maintenant je vais le mettre au boulot. lol
Aéris
 

Messagede Vally8 le 24 Aoû 2005 12:39

ryoko.lila a écrit:Je fait ma galerie et tout s'affiche bien (sur le web local ;) )
Mais y'a un étrange "Thumbs.db" qui s'affiche au milieu des images! c'est normal?


il faut que tu le supprime sur ton ftp ce fichier....
c'est un fichier généré par windows quand tu demande un affichage en miniature de tes dossiers : il ne sert qu'à windows ce fichier :ok:
Moi, j'aime schtroumpfer...
Si vous voulez faire une soluce, plutôt que de m'envoyer un MP, postez-là ici (j'ai rarement le temps de répondre à tous les MP)
Avatar de l’utilisateur
Vally8
Gouroute du Site
Gouroute du Site
 
Messages: 15567
Inscription: 07 Mai 2004 18:14
Localisation: Au pays des schtroumpfs
Jeu(x) du moment: Professor Layton, Tales of Vesperia, Dragon Quest 9

Messagede ryoko.lila le 24 Aoû 2005 13:09

Dac merci :pouce:
Les gens compliquent tout pour avoir l'impression de vivre.
Patrick Rambaud


:mimi:
Avatar de Nacrym
Avatar de l’utilisateur
ryoko.lila
Chocobo Ode
Chocobo Ode
 
Messages: 4271
Inscription: 20 Oct 2004 14:50
Localisation: A votre avis....
Jeu(x) du moment: P3 et FF3 (que de 3)

Messagede ryoko.lila le 30 Oct 2005 22:21

J'ai un petit probléme avec une de mes galerie! En effet, les nouveaux dessins se mettent a la fin (meme en mettant bien le nom!)
Est-ce que le nombre est limité? ou est ce que j'ai fait une connerie ?
http://ryoko.lila.free.fr/site/nb.php
merci
Les gens compliquent tout pour avoir l'impression de vivre.
Patrick Rambaud


:mimi:
Avatar de Nacrym
Avatar de l’utilisateur
ryoko.lila
Chocobo Ode
Chocobo Ode
 
Messages: 4271
Inscription: 20 Oct 2004 14:50
Localisation: A votre avis....
Jeu(x) du moment: P3 et FF3 (que de 3)

Messagede Vally8 le 30 Oct 2005 22:26

non, en fait, les dessins sont d'abord triés par date d'upload puis par nom de fichier : cela fait que tes nouveaux dessins apparaissent en dernier...
si tu veux que ca se mette en 1er, il faut reuploder toutes tes images... (chez free, ca change souvent de type de tri, je ne sais pas pourquoi :non:)
Moi, j'aime schtroumpfer...
Si vous voulez faire une soluce, plutôt que de m'envoyer un MP, postez-là ici (j'ai rarement le temps de répondre à tous les MP)
Avatar de l’utilisateur
Vally8
Gouroute du Site
Gouroute du Site
 
Messages: 15567
Inscription: 07 Mai 2004 18:14
Localisation: Au pays des schtroumpfs
Jeu(x) du moment: Professor Layton, Tales of Vesperia, Dragon Quest 9

Messagede ryoko.lila le 30 Oct 2005 22:31

dacord merci :bisou:
c'est bizare, ca me fait que pour celle la o0"
Les gens compliquent tout pour avoir l'impression de vivre.
Patrick Rambaud


:mimi:
Avatar de Nacrym
Avatar de l’utilisateur
ryoko.lila
Chocobo Ode
Chocobo Ode
 
Messages: 4271
Inscription: 20 Oct 2004 14:50
Localisation: A votre avis....
Jeu(x) du moment: P3 et FF3 (que de 3)

Messagede Vally8 le 30 Oct 2005 22:36

je te dis, si ca se trouve, c'est free qui a fait une mise à jour de quelque chose qui modifie le listage du répertoire :oui:
Moi, j'aime schtroumpfer...
Si vous voulez faire une soluce, plutôt que de m'envoyer un MP, postez-là ici (j'ai rarement le temps de répondre à tous les MP)
Avatar de l’utilisateur
Vally8
Gouroute du Site
Gouroute du Site
 
Messages: 15567
Inscription: 07 Mai 2004 18:14
Localisation: Au pays des schtroumpfs
Jeu(x) du moment: Professor Layton, Tales of Vesperia, Dragon Quest 9

Messagede ryoko.lila le 11 Juin 2006 16:29

Ce topic n'est pas dans la bonne partie *siflote*

Mais j'ai surtout une question (qui revient au probléme ci dessus)
En effet, au bout d'un certain nombre d'image, les dessins se mettent a la fin (au lieu du début :grrr: ) c'est possible de faire en sorte que le programme crée une nouvelle page? :question:
Les gens compliquent tout pour avoir l'impression de vivre.
Patrick Rambaud


:mimi:
Avatar de Nacrym
Avatar de l’utilisateur
ryoko.lila
Chocobo Ode
Chocobo Ode
 
Messages: 4271
Inscription: 20 Oct 2004 14:50
Localisation: A votre avis....
Jeu(x) du moment: P3 et FF3 (que de 3)

Messagede Vally8 le 11 Juin 2006 20:39

oui c'est possible, mais il faut que je modifie le script :)
tu me laisse combien de temps pour le faire ????
Moi, j'aime schtroumpfer...
Si vous voulez faire une soluce, plutôt que de m'envoyer un MP, postez-là ici (j'ai rarement le temps de répondre à tous les MP)
Avatar de l’utilisateur
Vally8
Gouroute du Site
Gouroute du Site
 
Messages: 15567
Inscription: 07 Mai 2004 18:14
Localisation: Au pays des schtroumpfs
Jeu(x) du moment: Professor Layton, Tales of Vesperia, Dragon Quest 9

Suivante

Retourner vers Tutoriels

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités

cron