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 :

session_start en debut de page et pourtant comportement chaotique..


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 135
    Par défaut session_start en debut de page et pourtant comportement chaotique..
    Bonjour,
    j'ai recherché sur le forum et des sites le fonctionnement de session_start(); je pense avoir saisi le truc, mais j'ai un probléme sur ma page.

    en effet, Ma page de login me redirige vers l'index avec les variable de session approprié. La premiére fois tout marche mais lorsque que je rafraichis la page les variables de sessions prennent des valeurs qu'elles ne devraient pas prendre ( un autre utilisateur ).

    Voici mon code de login :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    <?
    session_start();
     
     
     
     
    require('connexion.php');
     
    if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['mdp'])) {
     $login = $_POST['login'];
     $mdp = $_POST['mdp'];
     
      // on recupère le password de la table qui correspond au login du visiteur
      $sql = "select * from Membres where login='".$login."'";
      $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
      $data = mysql_fetch_assoc($req);
     
      $droits = $data['droits'];
     
     
     
     
      if  ($data['mdp'] != $mdp) { //||  ( empty($data) ) )  {
        echo '<p>Mauvais login / password. Merci de recommencer</p>';
    	 $_SESSION['login'] = "corrupted";
    	$_SESSION['droits'] = "corrupted";
     
        require('index.php'); // On inclut le formulaire d'identification
       exit;
      }
     else {
     
     
     
        $_SESSION['login'] = $login;
     
    	$_SESSION['droits'] = $droits;
    	$_SESSION['id'] = session_id();
     
     
     
    	if ( strcmp($droits,"admin") == 0 )
    	{
    		header("Location:indexa.php");
    		}
    	else 
    		{
    			header("Location:indexuser.php");
    		}
     
     
     
     
     
      }   
    }
    else {
      echo '<p>Vous avez oublié de remplir un champ.</p>';
       require('index.php'); // On inclut le formulaire d'identification
       exit;
    }
     
     
    ?>

    et mon indexa.php
    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
    16
    17
    18
    19
     
    <? session_start();
     
    echo $_SESSION['login'];
    echo $_SESSION['droits'];
     
     
    require('verifadmin.php');
     
     
     
    ?>
     
     
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
     
    <html>
    // code de la page sans importance...

    merci a vous

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Par défaut
    J'espère que ton premier bout de code n'est pas celui de verifadmin.php car sinon je ne comprend pas trop.


    Tu appelles ton index qui appelle lui meme verifadmin.

    verifadmin vérifie que les champs login et mdp ont bien été postés. Si ce n'est pas le cas il rappelle index, qui rappelle alors verifadmin...

    Ca m'a l'air d'etre une belle boucle infinie à vrai dire lors du lancement, je ne comprend meme pas comment cela peut fonctionner

    Pour ta mise en session personnellement je vérifie avant tout si les sessions existent ou non.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 135
    Par défaut
    En fait pour le moment, le fichier verif_admin.php est vide,
    il n'y a donc pas de boucle


    j'ai essayé de vérifier avant si les sessions n'étaient pas définies mais c'est la même chose.

    Merci

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Par défaut
    Le premier code correspond à quoi ? quand est il lancé ?
    Quel est l'ordonnancement de tes page ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 135
    Par défaut
    voici les warnings :

    Warning: session_start() [function.session-start]: open(/mnt/99/md1/5/c/flo.barral/sessions/sess_8507d39c2e02c005ff786f1777db8f9f, O_RDWR) failed: No such file or directory (2) in /mnt/99/md1/5/c/flo.barral/projet1V1.0/indexa.php on line 1

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/99/md1/5/c/flo.barral/projet1V1.0/indexa.php:1) in /mnt/99/md1/5/c/flo.barral/projet1V1.0/indexa.php on line 1

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/99/md1/5/c/flo.barral/projet1V1.0/indexa.php:1) in /mnt/99/md1/5/c/flo.barral/projet1V1.0/indexa.php on line 1
    Merci

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 135
    Par défaut
    resalut,
    en fait le premier code est la page login.php qui est une page de saisie de login et de mot de passe, le deuxieme est le debut de ma page d'indexa.php ou est redirigé l'utilisateur lorsqu'il est loggé.
    Merci

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Par défaut
    Ahhh oui tout s'éclaire !

    Dans ton premier script tu fais un appel à index.php qui possède un session_start().
    Or du coup il n'est pas placé en premier, d'ou cette erreur.

    Il faudrait revoir la conception, par exemple faire un <meta refresh> à la place.

Discussions similaires

  1. [debutant] détecter page en cours
    Par hugo69 dans le forum Flash
    Réponses: 5
    Dernier message: 04/06/2008, 09h12
  2. Réponses: 3
    Dernier message: 09/01/2008, 22h19
  3. [C#] [Debutant] Problème <%@ Page et include
    Par LechucK dans le forum ASP.NET
    Réponses: 2
    Dernier message: 09/02/2007, 18h12
  4. Affichage du message précédent en début de page
    Par Eusebius dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 10/07/2006, 16h35
  5. [Debutant]Multi page sous sql serveur
    Par christophebmx dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/11/2004, 17h23

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