younes371
Messages postés502Date d'inscriptionmercredi 29 décembre 2004StatutMembreDernière intervention20 mars 2012
-
12 oct. 2006 à 23:01
younes371
Messages postés502Date d'inscriptionmercredi 29 décembre 2004StatutMembreDernière intervention20 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 ());
?>
<?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és502Date d'inscriptionmercredi 29 décembre 2004StatutMembreDernière intervention20 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
younes371
Messages postés502Date d'inscriptionmercredi 29 décembre 2004StatutMembreDernière intervention20 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']))