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 :

[Cookies] je ne comprends pas session_start()


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de knoxville
    Inscrit en
    Mars 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 58
    Points : 61
    Points
    61
    Par défaut [Cookies] je ne comprends pas session_start()
    Salut à tous !
    Jai un problème que je ne saisie pas bien avec les sessions, je m'explique:
    Sur un index.php, j'appel une page de login lorsqu'on click sur un cadenas.
    Cette page envoi les données vers une page veriflogin.php qui alimente les variables super globale

    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
    <?php
    // On démarre la session
    session_start();
    require('connexion.php');
    $loginOK = false;  // cf Astuce
     
    // On n'effectue les traitement qu'à la condition que
    // les informations aient été effectivement postées
    if ( isset($_POST) && (!empty($_POST['login'])) && (!empty($_POST['password'])) ) {
     
      extract($_POST);  // Cette fonction permet de recuperer les elements du tableau $_POST et de les tranformer en varible
     
      // On va chercher le mot de passe afférent à ce login
      $sql = "Select * FROM utilisateur WHERE login = '".addslashes($login)."'";
      $req = mysql_query($sql,$connexion) or die('Erreur SQL : <br />'.$sql);
     
      // On vérifie que l'utilisateur existe bien
      if (mysql_num_rows($req) > 0) {
         $data = mysql_fetch_assoc($req);
     
        // On vérifie que son mot de passe est correct
        if ($password == $data['password']) {
          $loginOK = true;
        }
      }
    }
     
    // Si le login a été validé on met les données en sessions
    if ($loginOK) {
      $_SESSION['login'] = $data['login'];
      $_SESSION['id_utilisateur'] = $data['id_utilisateur'];
      $_SESSION['verif']= true;
    }
    else {
      echo 'Une erreur est survenue, veuillez réessayer !';
    }
    ?>
    Je souhaite tester le fait que l'utilisateur se soit loggé ou non or j'ai un problème car pour tester cela je doit utiliser les supers globals qui ne sont pas initialiser donc mon session_start() de mon index me génère une erreur.
    Le probleme de mon index c'est qu'il a un comportement different si l'utilisateur est loggé et je ne sais pas comment tester cette etat de fait ??

    voici le code de mon index :

    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
    <div id="page">
    	<div id="banniere">
    		<img src="/image/banniere2.jpg">
    		<?php session_start(); ?>
    		<div id="login">
    		<!--Code qui permet de recuprer l'action de click sur le cadenas-->
    		<form method="post" action="index.php">
    		<?php
    		if(!isset($_SESSION['verif']))
    		{
    		echo '<input type="image" src="/image/cadenas.png" name="cad" value="cadenas" ></form>';
    		}
    		else echo '<img src="/image/cadenas2.png">';
    		?>
    		</div>
    		<!--Fin du code-->
     
    	</div>
    	<div id="menu">
    		<?php require('menu.php');?>
    	</div>
    	<div id="sousban">
    		<img src="/image/sous-banniere.jpg">
    	</div>
    	<!-- Ici j'appel ma page de login lors du click sur le cadenas-->
    	<?php if(isset($_POST['cad']))
    	{
    	require('test.php');
    	}
    	?>
    	<!--/Fin de l'appel-->
    	<div id="pied">
    	</div>
    </div>

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Je crois (pas sûr) qu'il faut mettre le session_start() tout en haut de ta page avant la première écriture de code HTML.

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Je n'ai pas tout compris à ton explication mais dans ta deuxième page je mettrais le session_start() avant le début du code html

  4. #4
    Membre du Club Avatar de knoxville
    Inscrit en
    Mars 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 58
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par ratapapa
    Je n'ai pas tout compris à ton explication mais dans ta deuxième page je mettrais le session_start() avant le début du code html
    ALORS Là merci merci merci merci merci !

    Je viens de faire ce que vous m'avez conseillé et ça marche parfaitement !
    Encore mille merci d'avoir répondu si rapidement et avec efficacité !
    Ce forum est génial !

  5. #5
    En attente de confirmation mail
    Inscrit en
    Août 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    C Vraiment Interessant !!!

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 297
    Points : 303
    Points
    303
    Par défaut
    il faut bien comprendre que les SESSIONS ne sont qu'une information stocké dans les COOKIES qui pointes sur un fichier du serveur qui contient les informations de session.

    qui dit cookie, dit forcément modification des headers, donc à mettre avant la toute première sorti du script

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

Discussions similaires

  1. erreur session_start(); comprend pas
    Par lonycc dans le forum Langage
    Réponses: 2
    Dernier message: 15/04/2007, 20h58
  2. [thread][methodologie]Quelque chose que je ne comprends pas!
    Par norkius dans le forum Général Java
    Réponses: 5
    Dernier message: 16/03/2005, 15h01
  3. sql ne comprend pas mon where!et me demande des parametres
    Par marie10 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 20/04/2004, 12h08
  4. [Rave] un message que je ne comprends pas
    Par Clotilde dans le forum Rave
    Réponses: 2
    Dernier message: 30/09/2003, 22h46

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