Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
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 11/03/2007, 21h34   #1
Membre à l'essai
 
Homme Xavier Doreau
Responsable de service informatique
Inscription : septembre 2005
Messages : 73
Détails du profil
Informations personnelles :
Nom : Homme Xavier Doreau
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : septembre 2005
Messages : 73
Points : 23
Points : 23
Par défaut je ne comprends pas

Bonsoir,

J'ai un problème dans une page avec un contrôle sur des sessions.
Je m'explique je cherche à crééer un espace contrôlé sur certaine pages, je passe donc par un formulaire basic (user, mot de passe) celui -ci me renvoi sur un page d'identification qui rempli deux variables de session et sur les les autres pages j'ai le code qui suit pour vérifier que l'utilisateur est bien reconnu et connecté.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<?php
session_start();
	if ($_SESSION['niveau']==1) {
      	header('HTTP/1.1 204 No Content');
        header('location: catalogue.php');
        exit;
	}
	if(!isset($_SESSION['niveau']) && !isset($_SESSION['utilisateur']))
		{
      	header('HTTP/1.1 204 No Content');
        header('location: index.php');
        exit;		
		}
?>
Mais je ne comprends pas pourquoi je dois me connecter deux fois pour que cela fonctionne .J'ai il me semble tout vérifié : concordance des noms de variable et autre, je fait un echo des variables de session dans la page d'identification juste après leur initialisation (leur valeur est correcte), pourtant je suis obligé de saisir par deux fois le login et le mot de passe avant d'être connecté

Si quelqun peut m'aider se serait sympa

merci
Xavier
xdoreau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 08h57   #2
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Directeur technique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
Il nuos faudrait peut etre un peu plus de code .. genre la page de traitement du log ?
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 09h35   #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
Petite remarque pas très méchante personnellement je testerais l'existence de la variable session avant sa valeur
ratapapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 09h47   #4
Membre à l'essai
 
Homme Xavier Doreau
Responsable de service informatique
Inscription : septembre 2005
Messages : 73
Détails du profil
Informations personnelles :
Nom : Homme Xavier Doreau
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : septembre 2005
Messages : 73
Points : 23
Points : 23
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
 
<?php
session_start();
if(isset($_POST["login"]) && isset($_POST["mdp"])){
$login=$_POST['login'];
$pass=$_POST['mdp'];
}
		$cnx = mysql_connect("XXXXXXX", "ZZZZZZZ", "YYYYYY") or die ("Erreur lors de la connection au serveur MySQLb ! " . mysql_error());
		mysql_select_db("ZZZZZZZ");
		$query = mysql_query("SELECT * FROM utilisateurs WHERE login='$login'");
		$donnees = mysql_fetch_array ($query);
		$verif = $donnees['Pass'];
		$securite = $donnees['Securite'];
 
if($pass === $verif) // le mot de passe est le bon
	{
	$_SESSION['utilisateur'] = $utilisateur; // création d'une variable session avec le login de l'utilisateur 
	$_SESSION['niveau'] = $securite;
	switch($securite){ //redirection de l'utilisateur selon son niveau de sécurité 
	case 1:
	$redirection= 'catalogue.php';
	break;
	case 2:
	$redirection= 'catalogue_admin.php';
	break;
	}
	}
	else //Sinon ce n'est pas bon
    {
    $redirection = 'index.php';
    }
voilà le code du traitement du log.
xdoreau est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 10h07   #5
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
Hem petite question :

Code :
1
2
 
$_SESSION['utilisateur'] = $utilisateur; // création d'une variable session avec le login de l'utilisateur
D'ou sort cette variable utilisateur ? Le problème vient peut etre que la variable de session existe mais contient une chaine vide
ratapapa est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2007, 10h19   #6
Membre à l'essai
 
Homme Xavier Doreau
Responsable de service informatique
Inscription : septembre 2005
Messages : 73
Détails du profil
Informations personnelles :
Nom : Homme Xavier Doreau
Localisation : France

Informations professionnelles :
Activité : Responsable de service informatique
Secteur : Boutique - Magasin

Informations forums :
Inscription : septembre 2005
Messages : 73
Points : 23
Points : 23
non erreur de copie de ma part j'ai supprimé la variable dans le morceau de code que j'ai fourni, mais la variable existe bien dans ma page php

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
 
<?php
session_start();
if(isset($_POST["login"]) && isset($_POST["mdp"])){
$login=$_POST['login'];
$pass=$_POST['mdp'];
}
		$cnx = mysql_connect("XXXXXXX", "ZZZZZZZ", "YYYYYY") or die ("Erreur lors de la connection au serveur MySQLb ! " . mysql_error());
		mysql_select_db("ZZZZZZZ");
		$query = mysql_query("SELECT * FROM utilisateurs WHERE login='$login'");
	            $donnees = mysql_fetch_array ($query);
	            $verif = $donnees['Pass'];
                         $utilisateur = $donnees['login'];
	            $securite = $donnees['Securite'];
 
if($pass === $verif) // le mot de passe est le bon
	{
	$_SESSION['utilisateur'] = $utilisateur; // création d'une variable session avec le login de l'utilisateur 
	$_SESSION['niveau'] = $securite;
	switch($securite){ //redirection de l'utilisateur selon son niveau de sécurité 
	case 1:
	$redirection= 'catalogue.php';
	break;
	case 2:
	$redirection= 'catalogue_admin.php';
	break;
	}
	}
	else //Sinon ce n'est pas bon
    {
    $redirection = 'index.php';
    }
xdoreau 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 04h57.


 
 
 
 
Partenaires

Hébergement Web