imboa

Inscris le 25/03/2008 à 09:37
  • Signature
    imboa
  • Site web
  • Nombre de sujets
    1
  • Nombre de messages
    7
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers sujets sur les forums

imboa
le 25/03/2008 à 14:05
affichage page/page et session
bonjour à tous
j'ai utiliser ce script pour afficher la liste de mes membres mais sur une page admin que je veux protéger par mot de passe donc avec une session admin.
<?php

//<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

function barre_navigation ($nb_total,
$nb_affichage_par_page,
$debut,
$nb_liens_dans_la_barre) {

$barre = '';

// on recherche l'URL courante munie de ses paramètre auxquels on ajoute le paramètre 'debut' qui jouera le role du premier élément de notre LIMIT
if ($_SERVER['QUERY_STRING'] == "") {
$query = $_SERVER['PHP_SELF'].'?debut=';
}
else {
$tableau = explode ("debut=", $_SERVER['QUERY_STRING']);
$nb_element = count ($tableau);
if ($nb_element == 1) {
$query = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'&debut=';
}
else {
if ($tableau[0] == "") {
$query = $_SERVER['PHP_SELF'].'?debut=';
}
else {
$query = $_SERVER['PHP_SELF'].'?'.$tableau[0].'debut=';
}
}
}

// on calcul le numéro de la page active
$page_active = floor(($debut/$nb_affichage_par_page)+1);
// on calcul le nombre de pages total que va prendre notre affichage
$nb_pages_total = ceil($nb_total/$nb_affichage_par_page);

// on calcul le premier numero de la barre qui va s'afficher, ainsi que le dernier ($cpt_deb et $cpt_fin)
// exemple : 2 3 4 5 6 7 8 9 10 11 << $cpt_deb = 2 et $cpt_fin = 11
if ($nb_liens_dans_la_barre%2==0) {
$cpt_deb1 = $page_active - ($nb_liens_dans_la_barre/2)+1;
$cpt_fin1 = $page_active + ($nb_liens_dans_la_barre/2);
}
else {
$cpt_deb1 = $page_active - floor(($nb_liens_dans_la_barre/2));
$cpt_fin1 = $page_active + floor(($nb_liens_dans_la_barre/2));
}

if ($cpt_deb1 <= 1) {
$cpt_deb = 1;
$cpt_fin = $nb_liens_dans_la_barre;
}
elseif ($cpt_deb1>1 && $cpt_fin1<$nb_pages_total) {
$cpt_deb = $cpt_deb1;
$cpt_fin = $cpt_fin1;
}
else {
$cpt_deb = ($nb_pages_total-$nb_liens_dans_la_barre)+1;
$cpt_fin = $nb_pages_total;
}

if ($nb_pages_total <= $nb_liens_dans_la_barre) {
$cpt_deb=1;
$cpt_fin=$nb_pages_total;
}

// si le premier numéro qui s'affiche est différent de 1, on affiche << qui sera un lien vers la premiere page
if ($cpt_deb != 1) {
$cible = $query.(0);
$lien = '<A HREF="'.$cible.'">|&lt;</A>&nbsp;&nbsp;';
}
else {
$lien='';
}
$barre .= $lien;

// on affiche tous les liens de notre barre, tout en vérifiant de ne pas mettre de lien pour la page active
for ($cpt = $cpt_deb; $cpt <= $cpt_fin; $cpt++) {
if ($cpt == $page_active) {
if ($cpt == $nb_pages_total) {
$barre .= $cpt;
}
else {
$barre .= $cpt.'&nbsp;-&nbsp;';
}
}
else {
if ($cpt == $cpt_fin) {
$barre .= "<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
$barre .= "'>".$cpt."</A>";
}
else {

$barre .= "<A HREF='".$query.(($cpt-1)*$nb_affichage_par_page);
$barre .= "'>".$cpt."</A>&nbsp;-&nbsp;";
}
}
}

$fin = ($nb_total - ($nb_total % $nb_affichage_par_page));
if (($nb_total % $nb_affichage_par_page) == 0) {
$fin = $fin - $nb_affichage_par_page;
}

// si $cpt_fin ne vaut pas la dernière page de la barre de navigation, on affiche un >> qui sera un lien vers la dernière page de navigation
if ($cpt_fin != $nb_pages_total) {
$cible = $query.$fin;
$lien = '&nbsp;&nbsp;<A HREF="'.$cible.'">&gt;|</A>';
}
else {
$lien='';
}
$barre .= $lien;

return $barre;


}


?>




puis ça entre <body></body>

<?php // on se connecte à notre base 
$base = mysql_connect ('localhost', 'root', '');
mysql_select_db ('nom de la base', $base);

// on prépare une requête permettant de calculer le nombre total d'éléments qu'il faudra afficher sur nos différentes pages
$sql = 'SELECT count(*) FROM membre';
$reference = 'SELECT societe FROM membre';

// on exécute cette requête
$resultat = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// on récupère le nombre d'éléments à afficher
$nb_total = mysql_fetch_array($resultat);

// on teste si ce nombre de vaut pas 0
if (($nb_total = $nb_total[0]) == 0) {
echo 'Aucune réponse trouvée';
}
else {
//echo '<table>
//<tr><td><td>Description</td></tr>';

// sinon, on regarde si la variable $debut (le x de notre LIMIT) n'a pas déjà été déclarée, et dans ce cas, on l'initialise à 0
if (!isset($_GET['debut'])) $_GET['debut'] = 0;

$nb_affichage_par_page = 26;

// Préparation de la requête avec le LIMIT
$sql = 'SELECT * FROM membre ORDER BY num_membre ASC LIMIT '.$_GET['debut'].','.$nb_affichage_par_page;

// on exécute la requête
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

echo '<span class="gras">'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 6).'</span>';




while ($data = mysql_fetch_array($req))

{
$societe=htmlentities(trim($data['societe']));
$adresse= htmlentities(trim($data['adresse']));
$mail= htmlentities(trim($data['mail']));


// on affiches les résultats dans la <table>
echo '<table width=450 height=30 border=0 >

<tr>
<td width=400 align=left valign=left>',$societe,'</td>
<td width=385 align=right valign=right>',$mail,'</a></td>
</tr>

</table>';

}


//<td width=385 align=left valign=middle>',$mail,'</td>
}

// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($req);

//echo '</table><br />';
{
// on affiche enfin notre barre
echo '<span class="gras">'.barre_navigation($nb_total, $nb_affichage_par_page, $_GET['debut'], 6).'</span>';
}


// on libère l'espace mémoire alloué pour cette requête
mysql_free_result ($resultat);
// on ferme la connexion à la base de données.
mysql_close ();
//echo '</table><br />';

?>



enfin ça dans le <head></head>

<?php // On prolonge la session
session_start();

//On teste si la variable de session existe et contient une valeur
if(empty($_SESSION['login'])) {

// Si inexistante ou nulle, on redirige vers le formulaire de login
header('Location: Admin_login.php');
exit();
}


// Ici on est bien loggué, on affiche un message
echo 'Bienvenue ', $_SESSION['login'];
?>


alors mon prob est que j'ai toujours cette erreur dans la page à proteger

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\www\site\admin\admin\admin_membres\admin_membres.php:143) in c:\www\site\admin\admin\admin_membres\admin_membres.php on line 289
imboa
LoadingChargement en cours