Accueil > > > GALLERIE DEPUIS UN DOSSIER AVEC PAGINATION DE TYPE GOOGLE
GALLERIE DEPUIS UN DOSSIER AVEC PAGINATION DE TYPE GOOGLE
Information sur la source
Description
Bon salut tout le monde^^ une petite gallerie depuis un dossier de votre choix avec la pagination de type google qui va bien avec^^ Bon je balance ca un peu comme un pavé dans la marre, en m'apprétant a éssuyer les éclaboussures. Mais bon je fait ce que je peut avec mes variables :P. mais ne soyez pas indulgent. De toutes façons les compliments ca ne fait pas avancer le shmilblick^^. Enfin voila, j'éspére surtout que ca aideras des gens qui voudrait avoir une galerie avec une pagination sans passer par la table SQL.
Source
<?php
//////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////A EDITER////////////////////////////////////////////
$dossier = 'gallerie';//le nom de votre dossier ou se trouve vos photos //
//////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
function secure($requette){
$date = strftime('%Y-%m-%d %H:%M:%S');
$date2= strftime('%Y-%m-%d');
$ip = $_SERVER['REMOTE_ADDR'];
$chemin1 = $_SERVER['PHP_SELF'];
touch('info-'.$date2.'.log');
/////////////////////////////////A EDITER SI NECESSAIRE//////////////////////////////////////
$fp=fopen('admin/log/info/info-'.$date2.'.log','a');//chemin par defaut: admin/log/info/ //
/////////////////////////////////////////////////////////////////////////////////////////////
fwrite($fp,"[Date:$date]<->[IP:$ip]<->[Origine:$chemin1]<->[Requette:$requette]\n\r");
echo '<script language=\'Javascript\'>
alert ("Votre requette n\'est pas authorisé! Pour des raisons de sécurités votre IP et votre requette ont été enregistrés et seront analysés.")
window.location.replace("'.$_SERVER['PHP_SELF'].'");
</script>';
exit();
}
if(isset($_COOKIE['affichage'])){
$cookie = $_COOKIE['affichage'];
$val=split('[;.-]',$cookie);
if(is_numeric($val[0]) && strlen($val[0]) < 5){
$max_images = addslashes($val[0]);
}
else{
$requette = $val[0];
secure($requette);
}
if(is_numeric($val[1]) && strlen($val[1]) < 5){
$miniatures = addslashes($val[1]);
}
else{
$requette = $val[1];
secure($requette);
}
}
else{
$max_images = 10;
$miniatures = 150;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="style.css" type="text/css" media="all">
<meta http-equiv="Content-Type" content="text/html/css; charset=ISO-8859-1"><title>Ma_gallerie</title>
<meta name="Asherah Gallerie v1.0.2" content="crée par benjamin Peneaux pour Phpcs.com">
</head>
<body>
<table width="800"><tr><td width="800"><img src="images/logo.png" alt="logo"></td></tr>
<tr><td class="tableau" width="800" valign="middle">
<form method="get" action="">
<p>
Nombe d'images: <select name="nombre" size="1" id="select1">
<option>2</option>
<option>4</option>
<option>6</option>
<option selected>10</option>
<option>20</option>
<option>30</option>
<option>40</option>
<option>50</option>
<option>60</option>
<option>70</option>
<option>80</option>
<option>90</option>
<option>100</option>
<option>150</option>
</select>
Taille des miniatures: <select name="taille" size="1" id="select2">
<option>30</option>
<option>50</option>
<option selected>100</option>
<option>150</option>
<option>200</option>
<option>250</option>
<option>300</option>
<option>400</option>
</select>
<input type="submit" value="Valider">
</p>
</form>
<?php
if(isset($_GET['nombre'])){
if(is_numeric($_GET['nombre']) && strlen($_GET['nombre']) < 5){
$max_images = addslashes($_GET['nombre']);
}
else{
$requette = $_GET['nombre'];
secure($requette);
}
}
if(isset($_GET['taille'])){
if(is_numeric($_GET['taille']) && strlen($_GET['taille']) < 5){
$miniatures = addslashes($_GET['taille']);
}
else{
$requette = $_GET['taille'];
secure($requette);
}
}
if(!isset($_GET['images'])){
$affichage = 0;
$index = $affichage/$max_images+1;
}
else{
$affichage = addslashes($_GET['images']);
if(is_numeric($affichage) && strlen($_GET['images']) < 5){
$index = $affichage/$max_images+1;
}
else{
$requette = $_GET['images'];
secure($requette);
}
}
if(!isset($_GET['pages'])){
}
else{
$page = addslashes($_GET['pages']);
if(is_numeric($page) && strlen($_GET['pages']) < 5){
$affichage = $page*$max_images;
$index = $page+1;
}
else{
$requette = $_GET['pages'];
secure($requette);
}
}
echo '
<form method ="post" action="sauvegarde.php">
<input type="hidden" name="nombre" value="'.$max_images.'">
<input type="hidden" name="taille" value="'.$miniatures.'">
<input type="submit" value="Sauvegarder">
</form>
</td></tr><tr><td width="800" align="left">';
$tableau = array();
if(is_dir($dossier)) {
$dir = opendir($dossier) or die('Impossible d\'ouvrir le dossier');
while (false !== ($file = readdir($dir))) {
if ($file != '.' && $file != '..') {
$tableau[] = $file;
}
}
}
$total = count($tableau);
if($total == 0 ){
echo'Le Dossier '.$dossier.' est vide ou n\'éxiste pas.';
exit();
}
closedir($dir);
if($total < $max_images){
$unique = 1;
}
$max = $max_images;
$suivant = $affichage+$max;
$precedent = $affichage-$max;
for ($i=$affichage; $i<$suivant; $i++){
if($i < $total){
echo '<a href="'.$dossier.'/'.$tableau[$i].'"><img class="image" src="'.$dossier.'/'.$tableau[$i].'" height="'.$miniatures.'" alt="'.$tableau[$i].'"></a>';
}
else{
$fin = 'fin';
break;
}
}
if(!isset($fin)){
$url = $_SERVER['PHP_SELF'].'?images=';
$pointeur = $suivant;
$suivant='<a class="lien1" href="'.$url.$pointeur.'&nombre='.$max.'&taille='.$miniatures.'"><img class="image" src="images/suivant.PNG" alt="suivant"></a>';
}
else{
$suivant='';
$suite = $suivant;
}
if($precedent >= 0){
$url2 = $_SERVER['PHP_SELF'].'?images=';
$pointeur2 = $precedent;
$precedent = '<a class="lien1" href="'.$url2.$pointeur2.'&nombre='.$max.'&taille='.$miniatures.'"><img class="image" src="images/precedent.PNG" alt="precedent"></a>';
}
else{
$precedent = '';
}
if(!isset($unique)){
$retour = $precedent;
$suite = $suivant;
echo '<tr><td class="tableau" align="center" valign="middle"><p>'.$retour;
}
$pages = ceil($total/$max);
$index2 = $index-4;
if($index2 < 0){
$index2 = 0;
}
$index3 = $index+4;
if($index3 > $pages){
$index3 = $pages;
}
for ($j=$index2; $j<$index3; $j++){
$url3 = $_SERVER['PHP_SELF'].'?pages=';
$pointeur3 = $j;
$numero = $j+1;
$numero1 = ereg_replace(''.$index.'','<b><font size="5">'.$index.'</font></b>',$numero);
$pagination = '<a href="'.$url3.$pointeur3.'&nombre='.$max.'&taille='.$miniatures.'">'.$numero1.'|</a>';
if(!isset($unique)){
///////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////mise en page pagination//////////////////////////////////
echo $pagination; //
///////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
}
}
echo $suite;
?>
</p></td></tr>
<tr><td align="center" valign="middle">
<p>
<a href="http://jigsaw.w3.org/css-validator/"><img class="image" src="http://jigsaw.w3.org/css-validator/images/woolly-icon" alt="CSS"></a>
<a href="http://validator.w3.org/check?uri=referer"><img class="image" src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01 Transitional" height="31" width="88"></a>
</p>
</td></tr>
</table>
</body>
</html>
Historique
- 17 août 2007 22:44:40 :
- ajout du script dans la partie code.
- 17 août 2007 22:46:50 :
- ajout du script dans la partie code.
- 18 août 2007 21:24:42 :
- Update1:
1-ajout d'une fonction de sécurité plus fiable et d'un fichier .log
2-possibilité de choisir en visuel la taille et le nombre d'images a afficher.
3-verification de l'éxisitence du fichier demandé (merci Syllebreton ^^).
4-quelque corréctions par-ci par-la.
- 19 août 2007 14:44:08 :
- Update2 mise a jour de la securité
- 19 août 2007 19:15:22 :
- Update3 ajout de la possibilité d'enregistrer les parametres d'affichage via un cookie.
Mise a la norme graphique IE ><" (malgrés que le fichier CSS soit validé W3C, mais apparament IE n'en fait pas parti), et au passage petit bidouillage graphique des liens suivant et precedents ^^.
- 20 août 2007 01:22:04 :
- Update4 correction du bug de la variable $suite.
- 27 août 2007 11:36:45 :
- Update version stable
- 28 septembre 2007 09:35:23 :
- erf, Ajout de la page "sauvegarde.php" que j'avais oublié de joindre ^^"
- 02 octobre 2007 22:44:17 :
- modif'
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Calendrier pour gallerie photo [ par gandalf76fr ]
Bonjour, ayant ma famille distante, je crée une gallerie photos pour qu'il puisse voir ma fille grandire.Jusque la je l'ai fait sous photoweb gal
J'ai un chemin vers un fichier , je voudrai qu'il se crée automatiquement si il n'existe pas [ par ranouf ]
Bonjour, J'ai un chemin: /var/www/test/fonctions/voir.php en l'occurence ce "fonctions/voir.php" n'existe pas. Ce que je voudrai savoir c si il exist
Recherche un script de création de dossier [ par manusoron ]
Bonjour. Je recherche un script en PHP, qui est composé d'un champs et que lorse que qelq'un ecrit un nom, un dossier dans le FTP est imédia
Vérification dossier, problème [ par Satan2k ]
Voila je fais un explorateur de dossier multi-utilisateurs en ligne mais voila j'ai un problème que je n'arrive pas à résoudre. Je veu
script Image du jour [ par mike501 ]
Bonjour, j ai un petit souci avec mon code qui permet de mettre sur mon site une image qui change chaque jour mais le souci qui a ces que les ima
problème de "pagination" !! [ par ysn ]
bonjour tout le monde,je voudrais savoir comment faire pour gérer la pagination au niveau des message postés dans mon forum, je m'expli
Parcourir un dossier [ par samunet ]
Pour upload un fichier on fait input type=file etc... J ai fait un script que copier un dossier sur le serveur et je veut savoir si c est possibl
Pb Include ! [ par yoarf ]
Bonjour, Ma page : gallerie.php?cat=place clemenceau et raidillon permet de m'afficher une gallerie de photo en n'affichant que celles faisant partie
Preg_match [ par w_minisplash_w ]
Bonjour à tous,Voici mon problème :J'ai une chaine './dossier_1/dossier_2/....../dossier_n'Je veux en extraire dossier_nJ'ai donc essayé
créer dossier [ par fartounet ]
salut, je cherche a créer un dossier défini par une fonction et si jamais le dossier existe déjà rien ne se passe... j'ai vu plusi
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|