Sujet : Erreur Offset ...

Bonsoir, :)

cette erreur me colle aux basques depuis quelques jours ....

En fait, tous mes albums commencent à la page 2, les dernieres photos n'apparaissent et quand je clique sur la page 1, il apparait ceci =

Notice: Undefined offset: -20 in d:\mes images\01 - mes albums\explore.php on line 288
Notice: Undefined offset: -20 in d:\mes images\01 - mes albums\explore.php on line 289

j'ai essayé de réparer mais je cale, alors je fais appel au gourou .... :cool:

La partie concernée de mon explore.php =

// GESTION DE LA LISTE DES PHOTOS (si un répertoire est défini)
//

$iNbPhotos = sizeof( $aListePhotos );

if ( !empty( $sRep ) && is_dir( $sDossierPhotos.$sRep ) &&  $iNbPhotos > 0 )
{
    
    // calcul du nombre de pages
    $iNbPages = ceil( sizeof( $aListePhotos ) / $iImgParPage );
    
    // concaténation des numéros de page
    for( $i = 0 ; $i < $iNbPages ; $i++ )
    {

    $sIndex = $i + 1;
    $sNavigation .= ( $i != $iPage ) ? '<a href="'.$_SERVER['PHP_SELF'].'?rep='.rawurlencode(stripslashes( $sRep )).'&amp;page='.$i.'" class="page" >'.$sIndex.'</a>' : '<span class="pageActive">'.$sIndex.'</span>';
            
    }
    
    // creation du dossier des miniatures s'il n'existe pas
    $sDossierMiniatures = $sDossierPhotos.$sRep.'/'.$sNomDossierMiniatures;
    
    if ( $iNbPhotos !== 0 && !is_dir( $sDossierMiniatures ) )
    {

        if ( !@mkdir( $sDossierMiniatures ) )
            exit( '# ALBULLES # <strong>[ Erreur ]</strong> => Impossible de cr&eacute;er le dossier des miniatures. V&eacute;rifiez les droits d\'acc&egrave;s.' );
        
        @chmod( $sDossierMiniatures, $iChmodDossierMiniatures );
        
    }

Merci d'avance et bonne soirée

***************************************************************************************
"Si tu téléphone à une voyante et qu'elle ne décroche pas avant que ça sonne, raccroche."  JC Vandamme

Re : Erreur Offset ...

Salut,

Je pense savoir d'où vient ton erreur. Il y a eu un changement dans la gestion de l'indexation entre la version 0.5 et la 0.6. Hors l'astuce que je t'ai donné pour retrouver un index complet vient de la version 0.5 sans adaptation.

Je regarde et je te dis ça dès que je peux.

Bonne soirée à toi aussi smile

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

Re : Erreur Offset ...

Bon j'ai peut-être une idée. Je pars du principe que tu n'as touché à rien au code d'origine (à part revenir à l'index complet comme je te l'avais donné dans ton autre post).

Essaie ça :

Ouvre explore.php et rends-toi ligne 100. Tu dois trouver ça :

( isset( $_GET['page'] ) )    ? $iPage    = $_GET['page']    : $iPage    = 1;

Il faut dans cette ligne remettre la valeur par défaut à 0. Donc remplace le 1 en fin de ligne par 0 et teste.

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

Re : Erreur Offset ...

Salut,

Ca ne fonctionne pas, pire, je n'accede pas à l'album quand je clique dans l'arborescence, et il me renvoie exactement la même erreur ...

( quel logiciel pourrais-je utiliser pour ecrire le code ? Wordpad c gonflant .... )

***************************************************************************************
"Si tu téléphone à une voyante et qu'elle ne décroche pas avant que ça sonne, raccroche."  JC Vandamme

Re : Erreur Offset ...

Bon faut que je regarde plus profondément...

Pour le code, tu peux utiliser Scite ou Eclipse ou bien Zend Studio (payant) qui est celui édité par les concepteurs de PHP.

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

Re : Erreur Offset ...

je crois que j'ai trouvé le problème, du moins je l'ai arrangé ...

j'y suis allé à tatillons en mettant des -1 ou des +1

J'ai rajouté +1 au calcul du nombre de pages, ce qui me permet de d'avoir les derniers photos de l'album.

Pour la concaténation des numéros de pages, je fais commencer la boucle à 1 mais je n'ajoute pas de valeur à l'index.

// GESTION DE LA LISTE DES PHOTOS (si un répertoire est défini)
//
$iNbPhotos = sizeof( $aListePhotos );

if ( !empty( $sRep ) && is_dir( $sDossierPhotos.$sRep ) &&  $iNbPhotos > 0 )
{
    
    // calcul du nombre de pages
    $iNbPages = ceil( sizeof( $aListePhotos ) / $iImgParPage )+ 1;
    
    // concaténation des numéros de page
    
for( $i = 1 ; $i < $iNbPages ; $i++ )
{

    $sIndex = $i ;
    $sNavigation .= ( $i != $iPage ) ? '<a href="'.$_SERVER['PHP_SELF'].'?rep='.rawurlencode(stripslashes( $sRep )).'&amp;page='.$i.'" class="page" >'.$sIndex.'</a>' : '<span class="pageActive">'.$sIndex.'</span>';
            
}

Qu'en penses tu ?

***************************************************************************************
"Si tu téléphone à une voyante et qu'elle ne décroche pas avant que ça sonne, raccroche."  JC Vandamme

Re : Erreur Offset ...

Bon ! J'ai enfin eu 5 minutes pour regarder...Je pense avoir la solution. J'avais en toute hâte oublié une autre partie des modifications...

Je récapitule donc ici la marche à suivre pour pouvoir remettre l'indexation complète, c'est-à-dire sans ellipse.

1/ Il faut donc que tu reprennes explore.php, et ligne 100 :

( isset( $_GET['page'] ) )    ? $iPage    = $_GET['page']    : $iPage    = 1;

// A REMPLACER PAR  :

( isset( $_GET['page'] ) )    ? $iPage    = $_GET['page']    : $iPage    = 0;

(Etape que tu as déjà faite)

2/ Ensuite, direction ligne 248 :

// génération de la pagination
$sNavigation = $oOutils->paginer( $iNbPages, $iPage, $_SERVER['PHP_SELF'].'?rep='.rawurlencode(stripslashes( $sRep )) );

// A REMPLACER PAR :

// concaténation des numéros de page
for( $i = 0 ; $i < $iNbPages ; $i++ )
{

    $sIndex = $i + 1;
    $sNavigation .= ( $i != $iPage ) ? '<a href="'.$_SERVER['PHP_SELF'].'?rep='.rawurlencode(stripslashes( $sRep )).'&amp;page='.$i.'" class="page" >'.$sIndex.'</a>' : '<span class="pageActive">'.$sIndex.'</span>';
            
}

(Etape que tu as déjà faite aussi).

3/ Et pour finir, on redescend ligne 268 pour trouver :

// vérification qu'on ne dépasse pas la taille du tableau
$iImgAAfficher = ( ( ($iPage-1) * $iImgParPage ) >$iNbPhotos - $iImgParPage ) ? $iNbPhotos - ( ($iPage-1) * $iImgParPage ) : $iImgParPage;

// pour chaque photo dans l'intervalle de la page
for ( $i = ($iPage - 1) * $iImgParPage ; $i < ( ($iPage - 1) * $iImgParPage ) + $iImgAAfficher ; $i++ )
{

// A REMPLACER PAR :

// vérification qu'on ne dépasse pas la taille du tableau
$iImgAAfficher = ( ( ($iPage) * $iImgParPage ) >$iNbPhotos - $iImgParPage ) ? $iNbPhotos - ( ($iPage) * $iImgParPage ) : $iImgParPage;

// pour chaque photo dans l'intervalle de la page
for ( $i = ($iPage) * $iImgParPage ; $i < ( ($iPage) * $iImgParPage ) + $iImgAAfficher ; $i++ )
{

Etape qu'il te manquait ! Il fallait enlever tous les -1 que j'ai du introduire dans la version 0.6 (le point de départ de l'indexation ayant changé par rapport à la version 0.5).

Voilà, je pense qu'avec ça, ca devrait le faire. J'espère ne rien oublier. Je te prie de bien vouloir m'excuser pour cet oubli qui t'a fait chercher une solution...

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

8

Re : Erreur Offset ...

tu plaisantes ou quoi ?

Sur certains forums, j'attends encore des réponses à des posts qui datent d'avant la révolution ...ou presque !!!

J'ai testé vite fait ce que tu m'as donné, ça marche en effet mais j'arrive directement en page 2 mais bon, j'ai peut être été un peu vite.

Je vais refaire ça calmement et je te dis quoi.