IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sécurité] Session


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 89
    Points : 67
    Points
    67
    Par défaut [Sécurité] Session
    Bonjour,

    J'ai un petit soucis avec les sessions.

    Sur un premier script php :

    session_start();
    $_SESSION['auth']="oui";
    $_SESSION['pseudo']=strtolower($_POST['form_pseudo']);

    //chargement d'une nouvelle page html

    echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=baseindex.html\">";
    sur baseindex.html

    ca ouvre deux frames,

    l'une chargeant un fichier .php, dans lequel j'ai :

    session_start();

    echo $_SESSION['auth'];


    if ($_SESSION['auth']!="oui")
    {
    echo "Impossible d'accéder à cette page sans s'authentifier";
    exit;
    }
    else
    {
    echo "auth ok";
    }

    $_session['auth'] est à nul....

    qu'ai je mal fait ?
    - mon changement de page avec META HTTP-EQUIV=\"Refresh\" n'est pas compatible avec les sessions?

    Merci

  2. #2
    Expert éminent
    Avatar de titoumimi
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 707
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 707
    Points : 7 285
    Points
    7 285
    Par défaut
    tu es sur que ton deuxième est bien pris en compte ? Si tu es dans une frame, tu as du avoir du code html généré avant, donc elle est censée planter non ?

  3. #3
    Membre actif
    Avatar de jak0
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 272
    Points : 219
    Points
    219
    Par défaut
    Ca cest pas faux... Surtout avec un hebergeur comme free, qui restreint encore l'utilisation de cette commande.
    Ton session_start(); doit être envoyé au navigateur avant tout...

    Essaie de le mettre dans baseindex.php...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 89
    Points : 67
    Points
    67
    Par défaut
    L'hebergeur n'est pas free..

    Essaie de le mettre dans baseindex.php...
    baseindex.html est deja lui meme contenu dans une frame !

    Pour voir le contexte, j'ai mis temporairement en ligne le site
    http://www.fruitiers.net

    Ouvre deja deux frames : une pour le menu en haut, et une pour le corps en bas.

    Lorsqu'on clique sur "bourse aux greffons", ca ouvre dans la frame du bas une page html de formulaire (pour essayer : pseudo "toto" mot de passe "toto"). Ce dernier charge la fameuse page php qui vérifie les identifiants et si tout est correct, ouvre donc la session

    session_start();
    $_SESSION['auth']="oui";
    $_SESSION['pseudo']=strtolower($_POST['form_pseudo']);

    //chargement d'une nouvelle page html

    echo "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0; URL=baseindex.html\">";
    baseindex.html est alors chargé. Il contient juste de quoi crée deux frames dans la frame deja existante

    voici son code html intégral :


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans nom</title>
    </head>

    <frameset cols=19%,81% rows="*" border="1">
    <frame name="menu_g" scrolling="no" src="menu_gauche.php">
    <frame name="corpsbase" src="corps_base.html">

    </frameset>
    </frameset><noframes></noframes>


    </html>
    qui charge donc dans la frame en bas à gauche "menu_gauche.php" qui contient :

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans nom</title>
    </head>

    <body>

    <?php

    session_start();

    echo $_SESSION['auth'];


    if ($_SESSION['auth']!="oui")
    {
    echo "Impossible d'accéder à cette page sans s'authentifier";
    exit;
    }
    else
    {
    echo "auth ok";
    }

    ?>

    </body>
    </html>
    C'est sans doute vraiment tordu ce que je fais, inutile de préciser que c'est mon premier site php

  5. #5
    Membre actif
    Avatar de jak0
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 272
    Points : 219
    Points
    219
    Par défaut
    La premiere chose a essayer, c'est de changer ca (dans menu_gauche.php) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans nom</title>
    </head>
     
    <body>
     
    <?php
     
    session_start();
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    session_start(); 
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans nom</title>
    </head>
     
    <body>
     
    <?php
     
    ...
    Ensuite, si vraiment ca ne fonctionne pas, met ton <?php session_start(); ?> à la premiere ligne de index.php (je suppose)

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 89
    Points : 67
    Points
    67
    Par défaut
    La premiere modif ne marche pas,

    par contre session start dans la toute premiere page index.php fait que ca résout le probleme...

    Mille mercis, je n'aurai pas eu cette idée.

    Bonne soirée

  7. #7
    Membre actif
    Avatar de jak0
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 272
    Points : 219
    Points
    219
    Par défaut
    Bonne soirée...
    Ravi d'avoir pu t'aider...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Une erreur 233 de ms sql server
    Par Hokage dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 05/10/2009, 17h40
  2. Erreur 233 sous sql server
    Par brajae85 dans le forum Oracle
    Réponses: 3
    Dernier message: 18/05/2009, 16h12
  3. Réponses: 2
    Dernier message: 05/10/2004, 22h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo