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 dernières news

Aucune news

Ses derniers sujets sur les forums

forum
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

Ses derniers messages sur les forums

forum
imboa
le 26/03/2008 à 09:49
affichage page/page et session
non ça exactement:
http://localhost/site/admin/admin/admin_membres/identification.php?debut=26
imboa
imboa
le 26/03/2008 à 09:48
affichage page/page et session
l'url dans la barre d'adresse devient :
http://site/admin_membres/identification.php?debut=26
imboa
imboa
le 26/03/2008 à 09:22
affichage page/page et session
encore moi la globule
j'ai fini de trouver le prob.donc je suis bien logé sans erreur
mais quand je bascule vers les autres pages, le 2eme par ex, il n'affiche rien, il affiche du blanc.
imboa

Ses derniers commentaires de news

Aucun commentaire de news

Ses derniers commentaires de sites

Aucun commentaire de sites

Ses derniers commentaires de wall

Aucun commentaire wall
LoadingChargement en cours