Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/03/2007, 10h37   #1
Nouveau Membre du Club
 
Avatar de knoxville
 
Inscription : mars 2007
Messages : 58
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 58
Points : 30
Points : 30
Envoyer un message via MSN à knoxville
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 :
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 :
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>
knoxville est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2007, 10h38   #2
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
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.
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2007, 10h39   #3
Membre chevronné
 
Inscription : juin 2005
Messages : 572
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Haute Vienne (Limousin)

Informations forums :
Inscription : juin 2005
Messages : 572
Points : 690
Points : 690
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
ratapapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2007, 10h43   #4
Nouveau Membre du Club
 
Avatar de knoxville
 
Inscription : mars 2007
Messages : 58
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 58
Points : 30
Points : 30
Envoyer un message via MSN à knoxville
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 !
knoxville est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2007, 06h37   #5
En attente de confirmation mail
 
Inscription : août 2005
Messages : 1
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 1
Points : 1
Points : 1
Envoyer un message via MSN à fantome Envoyer un message via Yahoo à fantome
C Vraiment Interessant !!!
fantome est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2007, 09h17   #6
Membre confirmé
 
Inscription : décembre 2006
Messages : 297
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 297
Points : 248
Points : 248
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
juJuv51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h56.


 
 
 
 
Partenaires

Hébergement Web