IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Register-globals=OFF et pagination


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 152
    Par défaut [Système] Register-globals=OFF et pagination
    Bonjour,

    J ai un petit soucis...

    J ai optimisé mon site de facon a ce qu il fonctionne avec register_globals=off. Je viens de m apercevoir que le systeme de pagination ne fonctionne plus.

    En effet, j ai beau cliquer sur le lien "suivant" mais il n affiche pas la suite...

    Je pense qu il y a quelque vhose qui manque dans mon script mais je ne sais quoi....

    Voici le script !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
     
    <?php 
    include ('dbconnect.php'); 
     
    session_start(); 
     
    $pseudo = $_SESSION['pseudo'];  
    $statut = $_GET['limite']; 
     
     // on va afficher 4 résultats par page.
    $nombre = 4; 
     
    // si on arrive sur la page pour la première fois limite = 0
    if (!isset($limite)) $limite = 0;  
     
    $path_parts = pathinfo($_SERVER['PHP_SELF']);
    $page = $path_parts['basename'];
    $page2 = 'loteries-divers';
     
    $select = 'SELECT count(idccargent) FROM listeconcoursDivers';
     
    $result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
     
    $row = mysql_fetch_row($result);
     
    $total = $row[0];
     
    // on crée la requete SQL
    $sql = 'SELECT idccargent, lienconcoursdivers, jeuxconcoursdivers, nomconcoursdivers, descriptionLongue, datefin FROM listeconcoursDivers WHERE idccargent NOT IN (SELECT idconcoursconfirme FROM confirmeconcoursDivers WHERE pseudo="'.$pseudo.'" GROUP BY idconcoursconfirme) ORDER BY typeconcours DESC LIMIT '.$limite.','.$nombre; 
     
    // on envoie la requête
     
    $req = mysql_query($sql,$db) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
     
    $limitesuivante = $limite + $nombre;
    $limiteprecedente = $limite - $nombre;
     
    if (mysql_num_rows($req) > 0 & session_is_registered('id')==true) 
    {
     // on fait une boucle qui va faire un tour pour chaque enregistrement
            while($data = mysql_fetch_array($req)) 
            {       
                    echo '<table width="534" height="31" border="0">
                    <tr>
                      <td width="410" height="25" bordercolor="#044A74" bgcolor="#025384">'.$data['nomconcoursdivers'].'</td>
                      <td width="107" bordercolor="#044A74" bgcolor="#025384"><div align="center">';
                                     if (empty($data['descriptionLongue'])) {
                     $date = $data['datefin']; 
                             ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})", $date, $params);
                                     $datefr = ''.$params[3]."-".$params[2]."-".$params[1].'';
                                     $cont =  $datefr;
    }
    else {
            $cont = '<a href="'. $page2 .'-'. $data['idccargent'] .'-'. str_replace(" ", "-", $data['nomconcoursdivers']) .'.html">Détails</a>';
    }
                    echo '<strong>'.$cont.'</strong></td></tr></table>
                              <table width="534" border="0">
                    <tr>
                      <td width="155" height="83" bordercolor="#044A74" bgcolor="#025384">Lots mis en jeu : </td>
                      <td width="354" bordercolor="#044A74" bgcolor="#025384">'.$data['jeuxconcoursdivers'].'</td>
                    </tr>
                  </table>                    
                              <table width="534" border="0">
                    <tr>
                      <td width="522" bordercolor="#044A74" bgcolor="#025384"><div align="center">'.$data['lienconcoursdivers'].'</div></td>
                    </tr>
                  </table>
                                <table width="534" border="0">
                      <tr>
                        <td bordercolor="#044A74" bgcolor="#025384"><div align="center"><form action="supprimerConcoursDivers.php?limite='.$statut.'" method="post">
                    <input name="idccargent" type="hidden" value="'.$data['idccargent'].'">
                    <input name="pseudo" type="hidden" value="'.$pseudo.'">
                    <input type="submit" class="fondblanc" value="Effacer ce jeu concours de mon compte">
                     </form></div></td>
                      </tr>
                    </table><br><br>';
     
    }   
    echo '<table width="530" border="0"><tr>';
    if($limite != 0) {
    echo '<td width="215" bordercolor="#044A74" bgcolor="#025384"><div align="center"><a href="'.$page.'?limite='.$limiteprecedente.'">Page précédente</a></div></td>';
    }
    if($limitesuivante < $total)
    {
    echo '<td width="215" bordercolor="#044A74" bgcolor="#025384"><div align="center"><a href="'.$page.'?limite='.$limitesuivante.'">Page Suivante</a></div></td>';
    } echo '</tr></table>';
    }
    else
    {
    while($data = mysql_fetch_array($req))
    {
                                    echo '<table width="534" height="31" border="0">
                    <tr>
                      <td width="410" height="25" bordercolor="#044A74" bgcolor="#025384">'.$data['nomconcoursdivers'].'</td>
                      <td width="107" bordercolor="#044A74" bgcolor="#025384"><div align="center">';
                                     if (empty($data['descriptionLongue'])) {
                     $date = $data['datefin']; 
                             ereg("([0-9]{4})-([0-9]{2})-([0-9]{2})", $date, $params);
                                     $datefr = ''.$params[3]."-".$params[2]."-".$params[1].'';
                                     $cont =  $datefr;
    }
    else {
            $cont = '<a href="'. $page2 .'-'. $data['idccargent'] .'-'. str_replace(" ", "-", $data['nomconcoursdivers']) .'.html">Détails</a>';
    }
                    echo '<strong>'.$cont.'</strong></td></tr></table>
                            <table width="534" border="0">
                    <tr>
                      <td width="155" height="83" bordercolor="#044A74" bgcolor="#025384">Lots mis en jeu : </td>
                      <td width="354" bordercolor="#044A74" bgcolor="#025384">'.$data['jeuxconcoursdivers'].'</td>
                    </tr>
                  </table>                    
                              <table width="534" border="0">
                    <tr>
                      <td width="522" bordercolor="#044A74" bgcolor="#025384"><div align="center"><form action=membres/index.php method="post">
                    <input type="submit" class="fondblanc" value="Devenez membre pour participer à ce jeu concours"> 
                    </form>
                    </div></td>
                    </tr>
                  </table><br>';
    }
    echo '<table width="530" border="0"><tr>';
    if($limite != 0) {
    echo '<td width="215" bordercolor="#044A74" bgcolor="#025384"><div align="center"><a href="'.$page.'?limite='.$limiteprecedente.'">Page précédente</a></div></td>';
    }
    if($limitesuivante < $total)
    {
    echo '<td width="215" bordercolor="#044A74" bgcolor="#025384"><div align="center"><a href="'.$page.'?limite='.$limitesuivante.'">Page Suivante</a></div></td>';
    } echo '</tr></table>';
    }
    //libere la mémoire
    mysql_free_result($req);
     
    // on ferme la connexion à mysql
    mysql_close();
    ?>
    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 83
    Par défaut
    Salut joboy84,
    J'ai pas testé mais à première vue, c'est ton paramètre limite qui pose problème.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (!isset($limite)) $limite = 0;
    Vu que tu as passé le register_globals à off, ton $limite est toujours vide et prend la valeur 0, qui est après réutilisée pour calculer les pages suivantes.
    Il faudrait faire rajouter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $limite = $_GET['limite'];
    if (!isset($limite)) $limite = 0;

Discussions similaires

  1. [Système] registar global off aternative ?
    Par akrudy dans le forum Langage
    Réponses: 21
    Dernier message: 03/10/2006, 11h22
  2. [Tableaux] Register global off et GET
    Par vodasan dans le forum Langage
    Réponses: 4
    Dernier message: 31/07/2006, 17h08
  3. [POO] [register-globals] Problème de variable
    Par Neuromancien2 dans le forum Langage
    Réponses: 13
    Dernier message: 06/07/2006, 11h57
  4. [Sécurité] register global à on et sécurité
    Par psychoBob dans le forum Langage
    Réponses: 15
    Dernier message: 21/06/2006, 21h25
  5. [Directives] Hébergeur mutualisé avec register globals sur OFF
    Par max.onyx dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 25/04/2006, 17h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo