Problème de galerie photo avec des DIV

Eléphanteau du PHP | 13 Messages

27 août 2008, 15:48

Bonjour voila je vous explique mon problème. J'ai crée un site de sport en div et j'ai décidé de mettre une galerie photo, cependant mon script ne fonctionne pas, mais par contre il fonctionne lorsque le site est dans un site fait avec des frameset. Vous pouvez regarder le site ici http://fabasket.free.fr/
Donc voila mon script
<?php 



// Configuration 
$nbr_page = 1; 
// Nombre d'affichage par page 

$nmr_page = 100; 
// Nombre de Numéro par page 


$folder = "page/administration/photo/galerie"; 
//--->>> C'EST ICI QUE L'ON MODIFIE LE NOM DU DOSSIER OU L'ON PLACE LES IMAGES <<<---/// 


$dossier = opendir($folder); 

while ($Fichier = readdir($dossier)) 
{ 
    if ($Fichier != "." && $Fichier != "..") 
    { 
        if (is_file($folder."/".$Fichier)) 
        { 
            // si c'est une extension d'image 
            $ext = strtolower(substr($Fichier, strrpos($Fichier, '.') + 1)); 
             
            if($ext=="jpg"||$ext=="jpeg"||$ext=="gif"||$ext=="bmp"||$ext=="png") 
            { 
                // On stocke les résultats dans un array() 
                $manuel[] = $Fichier; 
                $compteur++; 
            } 
        } 
    } 
} 

// Fermeture du dossier 
closedir($dossier); 

if (empty($_GET['page'])) 
{ 
    $cpt = 0; 
} 
else 
{ 
    $cpt = $_GET['page']; 
} 

$max_page = $cpt+$nbr_page; 
$page = $_GET['page']; 

// On défini le nombre max 
$max = $compteur-1; 

// On affiche le contenu de la page demandée 
while ($cpt < $max_page) 
{ 

    $fonction = $manuel[$cpt]; 
$total=$folder.'/'.$fonction;
    echo "<table align='center'><tr><img src='".$total."' width='400' height='300' border='no'></tr></table>"; 
    $cpt++; 
} 
echo '<table align="center"><tr>';
// On affiche le lien pour la page précedente 
if ($page >= $nbr_page) 
{ 
    echo "<td><a href=\"".$PHP_SELF."?page=".($page-$nbr_page)."\" dir=\"".$dir."\"><<</a></td>&nbsp;\n"; 
} 

// On calcule le numéro des pages 
if (!isset($page)) 
{ 
    $page = 0; 
} 

if ($page >= ($nmr_page * $nbr_page)) 
{ 
    $cpt_fin = $nmr_page / $nbr_page + 1; 
    $cpt_deb = $cpt_fin - $nmr_page + 1; 
} 
else 
{ 
    $cpt_deb = 1; 
    $cpt_fin = (int)($max / $nbr_page); 
     
    if (($max % $nbr_page) != 0) 
    { 
        $cpt_fin++; 
    } 
     
    if ($cpt_fin > $nmr_page) 
    { 
        $cpt_fin = $nmr_page; 
    } 
     
    for ($cpt = $cpt_deb; $cpt <= $cpt_fin; $cpt++) 
    { 
        if ($cpt == ($page / $nbr_page) + 1) 
        { 
            echo "<td><span style=\"".$style."; font-weight: bold\">&nbsp;".$cpt."&nbsp;</span></td>\n"; 
        } 
        else 
        { 
            echo "&nbsp;<td><a href=\"".$PHP_SELF."?page=".(($cpt-1)*$nbr_page)."\" dir=\"".$dir."\">".$cpt."</a></td>&nbsp;\n"; 
        } 
    } 
} 
     
// On affiche le lien pour la page suivante 
if ($page + $nbr_page < $max) 
{ 
    echo "&nbsp;<td><a href=\"".$PHP_SELF."?page=".($page+$nbr_page)."\" dir=\"".$dir."\">>></a></td>\n"; 
} 

echo '</tr></table>';
?> 
Merci de bien vouloir m'aider

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

27 août 2008, 16:44

Modération :
PHPFrance n'est pas un site de distribution de scripts gratuits,
ni de débuggage de scripts téléchargés et utilisés sans compréhension.

Merci de prendre le temps de lire les règlements.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphanteau du PHP | 13 Messages

27 août 2008, 17:07

je ne suis pas le seul à faire alors soit tu arrête de m'embeter avec tes messages ou soit tu fermes tout les topics qui font la même chose ke moi

ViPHP
ViPHP | 4039 Messages

27 août 2008, 19:37

Moi, ma pelouse, il faut la tondre. Voilà.

Merci de bien vouloir le faire.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 août 2008, 19:55

je ne suis pas le seul à faire alors soit tu arrête de m'embeter avec tes messages ou soit tu fermes tout les topics qui font la même chose ke moi
C'est pas la meilleure chose que tu puisses faire de prendre la modération à rebrousse-poil

Les messages de modérations sont là lorsqu'un membre ne respectent pas les règlements du site. Donc, soit tu les lis, tu les comprends, soit tu risques d'être modéré souvent.

En 2 thread, tu as réussi à avoir 3 modérations, c'est surement signe qu'il faudrait que tu lises les réglements.

En ce qui concerne ton soucis, "ça ne marche pas" ne nous aide pas.
Est-ce que tu peux nous détailler plus précisement ce que tu entends par là ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

27 août 2008, 21:37

A mon avis, tu dois séparer le code qui sert pour ta galerie du reste du code pour mieux voir les erreurs. Même si on voit déjà quelques unes dans ton script. Tu pourra plutard inclure le script séparé par un include() à l'emplacement où tu veux afficher son résultat dans ta page principale.

C'est mieux de découper un p'tit peu en modules pour faire des tests unitaires séparés.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 13 Messages

28 août 2008, 00:01

Bon voila j'ai trouvé une partie de mon problème aprés quelques test effectué et voila mon problème :
- Quand j'affiche la première image tout va bien pas de souci, mais le hic c'est lorsque je passe à l'image suivante en cliquant sur suivant, il me met un message d'erreur comme quoi 1.php n'existe pas, normal car la page effectivement n'existe pas.
- Mais le souci c'est que je ne vois pas comment résoudre se problème et donc le souci est dans cette partie du code :
<td><a href=\"index.php?page=page/administration/photo/supphoto&red=".($pager-$nbr_page)."\" dir=\"".$dir."\"><<</a></td>&nbsp;\n";
A chaque fois que je change de page je passe obligatoirement par index.php qui contient le code suivant :
if(isset($_GET['page'])){
include($_GET['page'].'.php');
}
puis retourne sur la page.

Donc en fait il faut que je trouve la solution pour que le code
a href=\"index.php?page=page/administration/photo/supphoto
et le code :
red=".($pager-$nbr_page)
aille ensemble de façon a pouvoir changer de page en passant par la page index.php


merci de m'aider

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

28 août 2008, 09:17

Ne manquerait-il pas un \ pour un guillemet interne à la chaine après href= ?

Correction:
// On affiche le lien pour la page suivante 
if ($page + $nbr_page < $max) 
{ 
    echo "<td><a href=\"index.php?page=page/administration/photo/supphoto&red=".($pager-$nbr_page)."\" dir=\"".$dir."\"><<</a></td>&nbsp;\n";
} 
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

28 août 2008, 10:27

je ne suis pas le seul à faire alors soit tu arrête de m'embeter avec tes messages ou soit tu fermes tout les topics qui font la même chose ke moi
Mieux vaut prévenir que guérir !
Je vois que tu ne veux pas qu'on te fasse tout, et que tu es prêt à expérimenter, cela me fait bien plaisir. Je ne pouvais pas le savoir avant que tu ne répondes.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphanteau du PHP | 13 Messages

28 août 2008, 12:43

j'ai essayé de mettre le \ aprés le href= mais j'ai toujours
Warning: Failed opening '1.php' for inclusion (include_path='.;C:\Program Files\EasyPHP\php\pear\') in c:\program files\easyphp\www\fa\index.php on line 98
j'ai beau cherché mais je ne trouve pas la solution

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

28 août 2008, 12:57

Revérifie ton code car tu as probablement toujours ce morceau de code erroné qui traine et que tu nous a donné au début de ton post :
// On affiche le lien pour la page suivante 
if ($page + $nbr_page < $max) 
{ 
    echo "&nbsp;<td><a href=\"".$PHP_SELF."?page=".($page+$nbr_page)."\" dir=\"".$dir."\">>></a></td>\n"; 
}  
Car ce code envoi effectivement un nombre dans le paramètre page, ce qui explique l'erreur que tu reçois.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 13 Messages

29 août 2008, 11:01

Voila j'ai enfin résolu mon problème il y avait un problème de variable lors de l'affichage des pages. Merci à tous pour votre aide .
Cependant j'ai autre problème c'est que dans mon dossier image par exemple si j'ai 4 images il m'en affiche que 3 alors si vous avez des indications sur ce problème ?

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

29 août 2008, 12:52

Pour ce dernier problème vérifie les formules de comptage que tu applique à ta variable $cpt et notamment là où tu calcule la fin de ce compteur.

Personnellement, je trouve que ton algorithme de comptage est compliqué. Essaye de le simplifier en diminuant le nombre de variables et de conditions utilisées.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphanteau du PHP | 13 Messages

29 août 2008, 23:29

Donc voilà je peux vous annoncer que le script est totalement opérationnel car éffectivement j'ai réussi à trouver le problème du fait qu'il manquait une image et cela était du à cette partie du code
// On défini le nombre max 
$max = $compteur-1;
le -1 était en trop.
Pour de répondre sadeq le script de comptage est long car j'ai eu du mal a le réaliser mais je réfléchirai à une diminution de cette partie du script.
Merci à tous de votre aide