Garder la trace d 'une session

younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012 - 12 oct. 2006 à 23:01
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012 - 28 oct. 2006 à 16:38
Bonjour,
moi j'ai un script qui affiche des données sur plusieurs pages,
voilà ma page :

<?php
session_start(); // Démarage de la session OBLIGATOIRE
if (isset($_POST['login'])) // on verifie que la variable existe
{
$login= $_POST['login']; //on recupere les données du formulaire
$_SESSION['login'] = $login;
}



?>



<html >
<head>



</head>

<?php





if (!empty ($_POST['login']) && !empty ($_POST['password']))
{
include ("connexion.php");
$login=$_POST['login'];
$password=$_POST['password'];


$identification = "SELECT COUNT(*) FROM `Tableadmin` where login='".$login."' and motpasse='".$password."'";
$req_id = mysql_query($identification) or die (mysql_error ());
if (mysql_result ($req_id, 0) == 0)
{
?>
Login ou mot de passe invalide
[Admin.htm Retour]

<?php
}
else
{
/* Paramètres de pagination */
$nb_nouv_par_page = 2;             /* Nombre de nouvelles qui seront affichées sur chaque page */
$url = "./admin.php?page=";


/* On détermine quelle est la page qui est actuellement affichée */
$page_en_cours    = isset($_GET['page']) ? $_GET['page'] : 0;
$page_affichee    = ($page_en_cours + 1);


/* Requête pour compter les nouvelles présentes dans notre base de données */
$sql_nb = "SELECT COUNT(*) FROM `tableB` ";


/* Exécution de la requête et récupération du résultat */
$resultat_1 = mysql_query($sql_nb);
$nb_nouvelles = mysql_result($resultat_1, 0);


/* Calcul du nombre total de pages : on arrondit à l'entier supérieur (ceil() ) */
$nb_pages = ceil($nb_nouvelles / $nb_nouv_par_page);


/** 
Nous disposons maintenant de suffisament d'éléments pour créer notre barre de navigation.
Première chose à vérifier : avons-nous plusieurs pages, et au moins une ?
 */
if($nb_pages > 0)
{
    /* On définit une variable qui contiendra les données de navigation */
    $barre_nav = "";
    /* Nous avons au moins une page : avons nous besoin d'une barre de navigation ? */
    if($nb_pages > 1)
    {
        /** 
        Nous avons plusieurs pages: nous allons afficher successivement les liens vers
        les pages précédentes s'il y en a, la page en cours et les liens vers les pages
        suivantes. Nous aurons une barre sous la forme : 1 | 2 | 3 etc.. en li????????ƒ?n¨?ens clicables
        sauf pour la page en cours dont nous mettrons le chiffre en gras
         */
        if($page_en_cours > 0)
        {
            for($i = 0; $i < $page_en_cours; $i++)
            { session_start();
                $p = $i + 1;
                $barre_nav .= "". $p ." | ";
            }
        }
        /**
        On affiche la page en cours : notez le (+ 1) : pour les calculs, nous partons d'une 
        page 0 mais pour l'internaute, il est préférable de commencer à la page 1, donc on incrémente
         */
        $barre_nav .= " ". $page_affichee ." ";
        /* Enfin on affiche (s'il y a lieu) les liens vers les pages suivantes */
        if(($page_affichee) < $nb_pages)
        {
            /* Il reste encore d'autres pages à afficher */
            $nb_suivantes = $nb_pages - ($page_affichee);
            for($j = ($page_affichee); $j < $nb_pages; $j++)
            {
                $p = $j + 1;
                $barre_nav .= " | ". $p ."";
            }
        }
        
        /* On peut définir en plus la situation dans une autre variable à afficher ailleurs */
        $page_affichee = "Page ". $page_affichee ." sur un total de ". $nb_pages ." pages.";
    }
    else
    {
        /* Nous n'avons qu'une seule page, on peut se contenter d'afficher juste page 1/1 */
        $barre_nav .= "page 1/1";
    }
    /**
    On peut maintenant afficher notre page. On va commencer par récupérer les informations
    On doit définir à partir de quelle nouvelle on doit récupérer les données dans la clause LIMIT.
     */
    $debut = $page_en_cours * $nb_nouv_par_page;
    $sql_n = "SELECT num FROM tableB LIMIT ". $debut .", ". $nb_nouv_par_page .";";
    $nouvelles = mysql_query($sql_n) or die (mysql_error ());
?>

to be continued

8 réponses

younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
12 oct. 2006 à 23:03
La suite :
<?php echo($page_affichee); ?>


Numero :,

<?php
    while($nouv = mysql_fetch_assoc($nouvelles))
    {
?>

----

<?php echo($nouv['num']); ?>,

<?php
}
?>

    <?php
  /* on libère la mémoire */
    mysql_free_result($resultat_1);
    mysql_free_result($nouvelles);
    /* On peut fermer la connexion à MySQL */
    //mysql_close($connexion);
    /* On affiche maintenant la barre de navigation */
?>
<?php echo($barre_nav); ?>


<?php
}
else
{
    /** 
    Nous n'avons aucune page, on peut alors afficher un message autre 
    sans devoir nous préoccuper de la navigation
     */
?>
Aucun bien n'a encore été ajouté

<hr />
<?php
}
}
}


else
{
?>
Veuillez saisir le Login et le mot de passe
[idAdmin.htm Retour]

<?php
}
?>

</html>

A vous de me dire oû se trouve l'erreur et merci d'avance
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
12 oct. 2006 à 23:20
bouuuf, j ai oublie la question ,
en fait je ve que lorsque l'administrateur se loge, la session reste ouverte pour toutes les pages, jusqu'au ce qu il quitte .
Merci
cs_putch Messages postés 624 Date d'inscription mardi 6 mai 2003 Statut Membre Dernière intervention 14 décembre 2009 1
13 oct. 2006 à 08:14
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
14 oct. 2006 à 00:18
ta reponse ça marche pas,
je sais pas prkoi !
t as toute ma page en haut, veuillez me dire,
l emplacement exacte des variables de session.
Merci

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
14 oct. 2006 à 13:39
les amis, j att une reponse!
jonathanrocchio Messages postés 10 Date d'inscription lundi 21 juillet 2003 Statut Membre Dernière intervention 28 octobre 2006
28 oct. 2006 à 16:20
Tu dois peut être créer un dossier SESSION !!
Sur certains serveur, il faut qu'il y est ce dossier pour stocker les variables de sessions.
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
28 oct. 2006 à 16:29
Merci pour l'aide.
J'ai deja resolu le probleme.
voilà la solution

j'avais mit :
// tjs je fs le teste sur $_POST seulement, et ds la 2eme poste $_POST est vide !
if ( (isset($_POST) && !empty($_POST['login'])
{
....
}
et normalement je dois mettre :
//Je fs le test sur $_POST et aussi si lavariable de session est deja rempli...
if ( (isset($_POST) && !empty($_POST['login']) && !empty($_POST['password'])) || isset($_SESSION['login']))
younes371 Messages postés 502 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 20 mars 2012
28 oct. 2006 à 16:38
Correction :
// tjs je fs le teste sur $_POST seulement, et ds la 2eme "page (plutot les pages suivantes)" poste $_POST est vide !
Rejoignez-nous