Erreur session, ça veut dire koi ça?

Discussion dans 'Web, design' créé par Styleman, 11 Mai 2003.

Statut de la discussion:
Fermée.
  1. Offline
    Styleman Touriste
    Voila ce ke j'obtiens:
    Warning: Cannot send session cache limiter - headers already sent (output started at /home/www/halflifexpert/dioxygen/identification.php:12) in /home/www/halflifexpert/dioxygen/idok.php3 on line 21


    ça veut dire koi?
    Styleman, 11 Mai 2003
    #1
  2. Offline
    Styleman Touriste
    ah oui, a la ligne 21, y'a juste:
    session_start();
    Styleman, 11 Mai 2003
    #2
  3. Offline
    SUEd Touriste
    Code:
    headers already sent
    ca veut dire que les "headers" ont déjà été envoyés.

    en gros, ca veut dire que des données ont déjà été envoyées à l'utilisateur.
    Souvent, cela arrive quand tu veux démarer ta session alors que le mec a déjà reçu des données :) et là, apparemment, c'est à la ligne 12 de "identification.php" que quelque chose s'envoie.

    le PHP est un langage server-side (coté serveur).
    Donc, quand un utilisateur fait appel à une page, le script prépare, coté serveur, la page à envoyer à l'utilisateur.
    Dans la page qui est envoyé à l'utilisateur, la première chose à être envoyée doivent être les headers.

    si ce n'est pas trop long, mets ptet le code des deux fichiers ici ;)
    SUEd, 11 Mai 2003
    #3
  4. Offline
    Styleman Touriste
    ok je v les mettre, c po long
    Styleman, 11 Mai 2003
    #4
  5. Offline
    Styleman Touriste
    identification.php:
    Code:
    <?php
       
        include("rubrique.php3");
    
    ?>
    <HTML>
    <HEAD>
    <TITLE>The Soul Xperience Website</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> 
    </HEAD>
    
    <BODY BGCOLOR="#FFFFFF" TEXT="#000000">
    <DIV ALIGN="CENTER"><TABLE WIDTH="100%" BORDER="0" HEIGHT="333"><TR><TD COLSPAN="3" HEIGHT="20"><DIV ALIGN="CENTER">Banniere</DIV></TD></TR><TR><TD WIDTH="200" HEIGHT="217" VALIGN="TOP"><DIV ALIGN="CENTER"><?php
    
        include("gauche.php3");
    
    ?></DIV></TD><TD WIDTH="696" HEIGHT="217" VALIGN="TOP"><DIV ALIGN="CENTER"><P><?php
    
        include("idok.php3");
    
    ?> </P></DIV></TD><TD WIDTH="200" HEIGHT="217" VALIGN="TOP"><DIV ALIGN="CENTER"><?php
    
        include("droite.php3");
    
    ?></DIV></TD></TR><TR><TD HEIGHT="20" COLSPAN="3"><DIV ALIGN="CENTER"></DIV></TD></TR></TABLE></DIV>
    </BODY>
    </HTML>
    
    idok.php3:
    Code:
    <?
    require ("config.inc.php");
    
    mysql_connect($server, $user, $pass);
    mysql_select_db($base);
    
    $sql = "SELECT * FROM team_tbl WHERE pseudo='$pseudo' and password='$password'";
    $res = mysql_query($sql) or die (mysql_error());
    $exist = mysql_numrows($res);
    $ligne=mysql_fetch_array($res);
    
    $id = $ligne[id];
    
    if(!$exist)
        {
        echo "<center>Veuillez vérifier vos données</center>";
        include("formulaire.php");
        }
    else
        {
        session_start();
        session_register("login");
        echo "<center>Bienvenu sur ton espace membre: $login </center><br><br>";
    
        $sess_nom = session_name();
        $sess_id = session_id();
    
        echo "Le nom de la session est : ".$sess_nom." et l'id: ".$sess_id."";
        echo '<center><a href=page.php?id='.$id.'>Page Essai</a><br><br></center>';
     
        echo '<center><a href=deconnexion.php>Deconnection</a></center>';
        }
    ?>
    Styleman, 11 Mai 2003
    #5
  6. Offline
    SUEd Touriste
    Oui, donc, effectivement, tu envoies déjà pas mal de html dans identification.php et c'est de là que viens le problème ;)

    Code:
    <HTML> 
    <HEAD> 
    <TITLE>The Soul Xperience Website</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> 
    </HEAD> 
    
    <BODY BGCOLOR="#FFFFFF" TEXT="#000000"> 
    <DIV ALIGN="CENTER"><TABLE WIDTH="100%" BORDER="0" HEIGHT="333"><TR><TD COLSPAN="3" HEIGHT="20"><DIV ALIGN="CENTER">Banniere</DIV></TD></TR><TR><TD WIDTH="200" HEIGHT="217" VALIGN="TOP"><DIV ALIGN="CENTER"><?php 
    
        include("gauche.php3"); 
    
    ?></DIV></TD><TD WIDTH="696" HEIGHT="217" VALIGN="TOP"><DIV ALIGN="CENTER"><P>
    Donc, tu devrais trifouiller tes scripts pour que le démarrage de la session se fasse avant ca :)
    SUEd, 11 Mai 2003
    #6
  7. Offline
    Styleman Touriste
    ah ouais lol, ok v le faire now!
    THX
    Styleman, 11 Mai 2003
    #7
  8. Offline
    Styleman Touriste
    donc je doit demarrezr la session avant ça, donc mettre le code k'il y a avait dans idok.php3 ou il commence la session avant tout ca, et le reste, je le met ou je veux? enfin v voir thx bcp
    Styleman, 11 Mai 2003
    #8
  9. Offline
    Styleman Touriste
    ok voila c bon now, thx bcp :D
    Styleman, 11 Mai 2003
    #9
  10. Offline
    Styleman Touriste
    Voila, sinon now, j'ai fais une page, pour modifié les infos c bien joli tout ça, mais cette page, c'est page.php, donc je recupere l'id du membres, je met l'url sur la page identification donc ça fais pas exemple page.php?id=1 et j'ai remarké ke si je changeai l'id et ke j'etait identifier, je pouvais modifié les infos d'un autre membre...(c logik je c) now j'aimerais savoir comment empecher ça...

    Jai entendu parler de md5() ...mais chais vraiment pzas c koi

    Kelk'un peut m'eclairer?
    THX
    Styleman, 11 Mai 2003
    #10
  11. Offline
    SUEd Touriste
    md5(), c'est une sorte de "cryptage" :)

    ca calcule un nombre unique à partir d'une chaine de caractère.
    Mais à partir de ce nombre, il est impossible de retrouver la chaine de caractère.

    C'est un peu comme pour les wonid's :)

    Les forums phpBB utilisent l'encodage MD5 pour les passwords.
    Dans la base de données de ces forums, seul le nombre md5 correspondant au password est sauvegardé.
    C'est d'ailleurs pour cette raison que lorsque tu perds ton mot de passe d'un forum phpBB, il est impossible qu'on te redonne ton password. On peut uniquement le modifier :)

    En ce qui concerne ton problème, je pense qu'au début de ta page (page.php), tu dois vérifier si le numéro de session est bien celui correspondant à ton ID.
    Pour ce faire, lorsque tu démares une session, tu enregistres une variable de session avec ton ID.

    Comme ca, Si l'ID ne correspond pas avec la Session, tu indiques une erreur.
    SUEd, 12 Mai 2003
    #11
  12. Offline
    Styleman Touriste
    ok merci pour l'explication, tu explike bien mieux ke bon nombre de site ke j'ai été voir...
    Sinon je lache un truc genre
    if ($_session[id] != $id) {
    echo 'erreur';

    ???je c pas du tout si c bon j'ai mis sa au pif comme ça... :oops:
    Styleman, 12 Mai 2003
    #12
  13. Offline
    SUEd Touriste
    $_session[id] : c'est l'id que tu sauvegardes en tant que variable de session (c'est le vrai ID de la personne). (N'oublie pas qu'il faut enregistrer la variable comme variable de session)

    $id : c'est l'id qui est passé par ta page et il faut voir s'il correspond à l'id de la personne.

    donc, à priori, oui, ca fonctionnera :)

    donc, ce qui suit devrait fonctionner :

    Code:
    if ($_session[id] != $id) { 
         echo "erreur";
    }
    else {
         // ton script de modif
    }
    SUEd, 12 Mai 2003
    #13
  14. Offline
    Styleman Touriste
    cool enfin un bon raisonnement de ma part lol

    Merci bcp

    Sinon, autre bleme, kan je v pour modifier mes infos, comment je fait pour mettre un lien vers la page identification avec les liens...ça me mes veuillez vous identifier
    Styleman, 12 Mai 2003
    #14
  15. Offline
    Guest ex membre
    je crois qu'il ne faut pas d'html avant
    Guest, 12 Mai 2003
    #15
  16. Offline
    Styleman Touriste

    beuh...faut bien ke je mettez un peu de graphisme dans ma page...
    Styleman, 12 Mai 2003
    #16
  17. Offline
    Douby Elite
    tu pe mettre des graphismes et tt mais tu ne pe pas en mettre devant tes headers aussino ca part en couille, aussino i fo utiliser les pseudo frames enfin i fo voir si tu connais...
    Douby, 13 Mai 2003
    #17
  18. Offline
    Styleman Touriste
    oui ok, sorry mais en fait, je n'avais pas trop compris le sens...dsl j'etais un peu crever sinon, autre bleme, kan je v pour modifier mes infos, comment je fait pour mettre un lien vers la page identification avec les liens...ça me mes veuillez vous identifier
    Styleman, 14 Mai 2003
    #18
  19. Offline
    ChoKapiK Fort en chocolat
    Ha ha styleman en plus de ca, son clan est mort (usk) et sa souris plante et il avait une heure de retenue ajourdh'ui (euh ..)
    :D :D
    ChoKapiK, 14 Mai 2003
    #19
  20. Offline
    Styleman Touriste

    :cry: :cry: :cry: :cry: :cry: :cry:
    Styleman, 14 Mai 2003
    #20
Statut de la discussion:
Fermée.