• STATISTIQUES
  • Il y a eu un total de 1 membres et 4543 visiteurs sur le site dans les dernières 24h pour un total de 4 544 personnes!


    1 membre s'est inscrit dans les dernières 24h!


    Membres: 2 606
    Discussions: 3 580
    Messages: 32 820
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] Microcontest
    Cryptographie: 7, Mathématiques: 8, Image Son Vidéo: 5, Intelligence artificielle: 3, Réseau: 2, Divers: 7, Phy...
    Challenges
    [EN] Defcon
    Lancé en 1992 par Dark Tangent, DEFCON est la plus ancienne et la plus grande conférence underground de...
    Hacking
    [EN] social-engineer
    Site dédié au Social Engineering en général.
    Hacking
    [EN] Astalavista
    JavaScript: 1, Exploit: 2, Crypto: 34, CrackIt: 15, Stegano: 8, Programming: 12, Logic: 36, Special: 6, Science: 4, Info...
    Challenges
    [FR] Infomirmo
    Challenge présenté sous la forme de 6 niveaux de difficultés diverses et variées avec chacun plusieurs chall...
    Challenges
    [EN] phrack
    Lot's of stuff !
    Hacking
    [FR] Comment ca marche
     Gratuit et accessible à tous, ce site de communauté permet de se dépanner, se faire aider ...
    Webmaster

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[PHP] Pagination Tricks
25-01-2013, 00h52 (Modification du message : 25-01-2013, 22h50 par sakiir.)
Message : #1
sakiir Hors ligne
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de
*



Messages : 411
Sujets : 51
Points: 34
Inscription : Sep 2012
[PHP] Pagination Tricks
Voici un petit code php commenté que j'ai fais pour un ami , j'ai trouvé difficile de gérer la pagination alors j'ai fais une petite explication dessus Smile
Voila bonne lecture, si certain on des questions.. Smile

Code PHP :
/*
    Admettons qu'on veuille afficher un long tableau à l'aide de '<ul>'
    il serait plus pratiue d'utiliser la pagination qui est tres casse tete ! :p
    Bon la premiere fonction sert a calculer le nombre de page qu'il faut effectuer à partir d'un nombre d'element max donnés.
     
    Donc on comtpe le nombre l'element dans la table,on met le nombre d'element dans une variable et a l'aide de ceil() on obtient le nombre de page a effectuer !
    */
     
    
function pages_number($nbMax) {
    
$result mysql_query('SELECT COUNT(*) AS number FROM logs') or die('Failed TO send Query');
    
$data mysql_fetch_array($result);
    
$nbLogs $data['number'];
    
$nbPage ceil($nbLogs $nbMax);
    return 
$nbPage;
    }
     
    
/*
    Ce n'est pas fini il faut afficher les liens vers les pages , pour ca on va utiliser par exemple les variables GET !
    donc admettons qu'on veuille 25 élements par page , alors on procede ainsi:
    */
     
    
$nbPage pages_number(25);
    
$page_id $_GET['id'];
    if(
is_numeric($page_id)) //  etc ..
     
    //on recupere toute les donnée de chaques pages
     
    
result mysql_query("SELECT COUNT(*) FROM tab");
    
$element_total mysql_result($result0);
    
$nbPageMax 25;
    
$num $nbPageMax $page_id;
     
    
//requette final :
    
$result mysql_query("SELECT * FROM logs ORDER BY id DESC LIMIT ".$num.",".$nbPageMax." ");
     
    
/*
     
    Bon On a affiché le bon nombre d'element par rapport a la variable GET , maintenant on va simplifier ca avec des liens .. :)
     
    */
    
$i=0;
    while(
$i $nbPage){
    echo 
"<a href='tab.php?page_id=$i'>$i</a>";
    }
     
    
/*
    Et Voila, on en a finit avec ce truc qui prend la tête ;) !
    */ 
+1 (0) -1 (0) Répondre
25-01-2013, 01h32
Message : #2
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 157
Inscription : Jan 2012
RE: [PHP] Pagination Tricks
Ta un echo "echo " qui foire dans ton dernier while mais appart ça, très bon code.
Merci du partage.
Code PHP :
<?php
$pape 
"pape"; echo $pape
// Le $pape en string!
?>
+1 (0) -1 (0) Répondre
25-01-2013, 20h08
Message : #3
InFamouZz Hors ligne
Membre actif
*



Messages : 76
Sujets : 21
Points: 3
Inscription : Dec 2011
RE: [PHP] Pagination Tricks
c'est pour le projet que tu m'a parler ? Smile
+1 (0) -1 (0) Répondre
25-01-2013, 22h50
Message : #4
sakiir Hors ligne
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de
*



Messages : 411
Sujets : 51
Points: 34
Inscription : Sep 2012
RE: [PHP] Pagination Tricks
InFamouZz : ouep je l'ai fais pour ce projet , j'ai un peu galéré je t'en avait parlé :p
CyberSee : ouai j'ai vu je corrige merci ! Smile
+1 (0) -1 (0) Répondre
27-01-2013, 00h28
Message : #5
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 157
Inscription : Jan 2012
RE: [PHP] Pagination Tricks
Ce que j'aime c'est que le code est petit. Tu devrais ajouter une fonction qui permet de limiter de nombre de pages qu'il affiche en même temps. Quand on a des grosses tables avoir 200 page afficher dans le bas est pas trop top lol Je préfère en afficher 11 a la fois ou le numéro du milieu est la page en cour.
Code PHP :
<?php
$pape 
"pape"; echo $pape
// Le $pape en string!
?>
+1 (0) -1 (0) Répondre
27-01-2013, 01h06
Message : #6
sakiir Hors ligne
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de
*



Messages : 411
Sujets : 51
Points: 34
Inscription : Sep 2012
RE: [PHP] Pagination Tricks
(27-01-2013, 00h28)CyberSee a écrit : Ce que j'aime c'est que le code est petit. Tu devrais ajouter une fonction qui permet de limiter de nombre de pages qu'il affiche en même temps. Quand on a des grosses tables avoir 200 page afficher dans le bas est pas trop top lol Je préfère en afficher 11 a la fois ou le numéro du milieu est la page en cour.

ben le code affiche qu'une seule page de 25 données.
je comprends pas trop ce que tu veux dire
+1 (0) -1 (0) Répondre
27-01-2013, 14h12 (Modification du message : 27-01-2013, 14h16 par InstinctHack.)
Message : #7
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,366
Sujets : 184
Points: 299
Inscription : Dec 2011
RE: [PHP] Pagination Tricks
imagine si t'as 10¹° entrées, t'as combien de pages ? :p
C'est pour ça que CyberSee te propose l'amélioration de n'afficher que 11 pages au maximun Smile (qui permettent de naviguer sur un segment de la liste des pages )
genre :
[1] 2 3 4 5 6 7 8 9 10 11 ...
ou
1 2 3 4 5 [6] 7 8 9 10 11 ...
ou
... 15 16 17 18 19 [20] 21 22 23 24 25 ...
ou
... 68 69 70 71 72 73 74 75 76 77 [78]

selon les situations Wink

EDIT : [x] représente la page courante définie souvent par une variable $_GET et initialisé à 1 si inexistant ou incorrecte.
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (1) -1 (0) Répondre
27-01-2013, 14h41
Message : #8
CyberSee Hors ligne
Admin fondateur de N-PN
*******



Messages : 1,721
Sujets : 287
Points: 157
Inscription : Jan 2012
RE: [PHP] Pagination Tricks
Merci khaled, j'aurais pas pu mieux expliquer :-)
Code PHP :
<?php
$pape 
"pape"; echo $pape
// Le $pape en string!
?>
+1 (0) -1 (0) Répondre
27-01-2013, 18h23
Message : #9
sakiir Hors ligne
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de
*



Messages : 411
Sujets : 51
Points: 34
Inscription : Sep 2012
RE: [PHP] Pagination Tricks
j'ai compris merci mais je ne sais pas trop comment proceder
+1 (0) -1 (0) Répondre
27-01-2013, 21h46 (Modification du message : 27-01-2013, 21h48 par InstinctHack.)
Message : #10
InstinctHack Hors ligne
Posting Freak
*



Messages : 1,366
Sujets : 184
Points: 299
Inscription : Dec 2011
RE: [PHP] Pagination Tricks
La première étape est de déterminer le numéro de la page courante, si elle est différente de 1 on ajoute des "..." devant, sinon rien, ensuite on fait un for de x-5 à x+5 qui affiche les liens avec un style différent et non-lien pour la page courante, puis on détermine si x+5 est la dernière page, sinon on ajoute des "..."
traduction php ?
Code PHP :

<?php
function affiche_pagination($page_min=1,$page_max=10,$nbr_lien=11,$number_courant=1)
{
        //les quatres variables doivent être des nombres vérifiés

        if($nbr_lien%2==0)//si il n'est pas impair, on fait en sorte qu'il le soit
        {
                $nbr_lien++;
        }

        $nbr_lien_apres=(($nbr_lien-1)/2);//on détermine le nombre de lien à afficher avant la page courante
        $nbr_lien_avant=0-$nbr_lien_apres;//idem mais après
       

        $return="";//code html de retour
        for($a=$nbr_lien_avant;$a<=$nbr_lien_apres;$a++)//on parcours les pages possibles
        {
                $number=$number_courant+$a;//on définie le numéro de la page actuelle
                if($a==$nbr_lien_avant && $number>$page_min)//si on en est a la premier page de la boucle et que ce nombre est supérieur à la première page
                {
                        $return.="...";
                }

                if($page_min<=$number && $number<=$page_max)//si il est dans l'intervalle
                {
                        if($number==$number_courant)//si c'est la page courante
                        {
                                $return.='['.$number.']';
                        }
                        else//sinon
                        {
                                $return.='<a href="'. basename(__FILE__).'?page='.$number.'">'.$number.'</a>';
                        }
                        $return.=" ";//on rajoute un espace entre chaque
                }

                if($a==$nbr_lien_apres && $number<$page_max)//sentiment de déjà-vu...
                {
                        $return.="...";
                }
               
        }
        return $return;//on retourne le code html qui affiche la pagination
}

if(isset($_GET['page']))
{
        $page=intval($_GET['page']);
}
else
{
        $page=1;
}
echo affiche_pagination(1,100,21,$page);
 


N'hésite pas à me demander si mon code te parait obcure ou que quelque chose t'échappe Smile
Citation :un jour en cours de java j'ai attrapé les seins d'une fille mais elle m'a frappé en disant "c'est privé !!"
j'ai pas compris pourquoi, je croyais qu'on était dans la même classe
+1 (0) -1 (0) Répondre
28-01-2013, 07h56
Message : #11
sakiir Hors ligne
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de
*



Messages : 411
Sujets : 51
Points: 34
Inscription : Sep 2012
RE: [PHP] Pagination Tricks
non ton code est clair je te remerci !
+1 (0) -1 (0) Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut