bonjour a tous, je refais un comme back avec ce tuto.
la question qui me rend fou pour commencer:
dans son tuto, raton, un coup il met

header('Location:index.php');

un autre il met

header("Location:index.php");

, on peu m'expliquer, car quand je débug ce foutu module de session, à la fin je ne sais plus si c'est du lard ou du cochon.
passons.

j'ai ce message qui apparait quand je lance la page privée sans être passé en authentification donc sans session valide.

Warning: Cannot modify header information - headers already sent by (output started at /homepages/32/d412740872/htdocs/FFS2/backdoor/auth.php:31) in /homepages/32/d412740872/htdocs/FFS2/backdoor/pageprivee.php on line 7.
page privee.

et histoire de compléter le bug, il exécute le reste du prg qui devrai être masqué vue que sans session.

voici les codes des deux fichiers

auth.php

<?php
class Auth{
    static function isLogged(){
        if(isset($_SESSION'Auth']) && isset($_SESSION'Auth']'login']) && isset($_SESSION'Auth']'pass'])){
                extract($_SESSION'Auth']);
                mysql_connect(" *******","dbo412765592","******");
                mysql_select_db(" ******");
                $sql = "SELECT id FROM bdffs2 WHERE login='$login' AND pass='$pass'";
                $req = mysql_query($sql) or die(mysql_error());
                if ( mysql_num_rows($req)>0){
                    return true;
                    }
                else{
                    return false;
                    }
            }
            else{
            return false;
            }
        }
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>gestion des membres</title>
</html>

et le second qui commence à grossir
pageprivee.php

<?php
    session_start();
    require("auth.php");
if(Auth::isLogged()){
    }
else{
    header('Location:index.php');
    }
?>
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    </head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>page privee</title>

    <body>
    page privee
<?php

// information pour la connection à la DB
$host = ' ******';
$user = ' *******';
$pass = ' *******';
$db = ' ***********';
// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());
// requête SQL qui compte le nombre total d'enregistrement dans la table et qui
//récupère tous les enregistrements
$select = 'SELECT username,user_email,user_type FROM phpbb_users';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);
$select2 = 'SELECT user_id,group_id FROM phpbb_user_group';
$result2 = mysql_query($select2,$link) or die ('Erreur : '.mysql_error() );
$total2 = mysql_num_rows($result2);
// si on a récupéré un résultat on l'affiche.
if($total) {
    // debut du tableau
        echo '<table bgcolor="#FFFFFF">'."\n";
        // première ligne on affiche les titres prénom et surnom dans 2 colonnes
        echo '<tr>';
        echo '<td bgcolor="#669999"><b><u>ID</u></b></td>';
        echo '<td bgcolor="#669999"><b><u>mail</u></b></td>';
        echo '<td bgcolor="#669999"><b><u>type</u></b></td>';
        echo '<td bgcolor="#669999"><b><u>id groupe</u></b></td>';
        echo '<td bgcolor="#669999"><b><u>groupe</u></b></td>';
        echo '</tr>'."\n";
    // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
    while(($row = mysql_fetch_array($result))&&($row2 = mysql_fetch_array($result2))) {
        if(($row2"group_id"])!=6){
        echo '<tr>';
        echo '<td bgcolor="#CCCCCC">'.$row"username"].'</td>';
        echo '<td bgcolor="#CCCCCC">'.$row"user_email"].'</td>';
        echo '<td bgcolor="#CCCCCC">'.$row"user_type"].'</td>';
        echo '<td bgcolor="#CCCCCC">'.$row2"user_id"].'</td>';
        echo '<td bgcolor="#CCCCCC">'.$row2"group_id"].'</td>';
        echo '</tr>'."\n";
        }
        else{
        }
    }
    echo '</table>'."\n";

    // fin du tableau.
}

else echo 'Pas d\'enregistrements dans cette table...';
// on libère le résultat
mysql_free_result($result);

?>

    <a href="logout.php">Se déconnecter</a>
    </body>
</html>

merci d'avance pour votre aide

2 réponses


erfou
Réponse acceptée

salut,

dans pageprivee.php, tu fais require auth.php dans lequel tu envoie du 'texte' html(ligne 26 a31)
puis ligne 7 tu envoie un header. hors un header ne doit etre precedé par aucun caractere.

essaie en supprimant les dernieres lignes de la classe auth.php

eric

flo3376
Auteur

merci