Script espace membres

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

16 août 2007, 01:54

et ça ne te semble pas bizarre ?

Comment une MEME variable peut-elle avoir deux valeurs différentes pour pouvoir passer ces deux tests ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 959 Messages

16 août 2007, 02:33

bah nan !
puisque si on dit que session[mdp] != de $modo_pass on redirige vers index.php
sa revient à dire si session[mdp] == que $modo_pass on reste sur logged.php

en fait, je fais ces 2 conditions pour traiter les mots de passes...

Comment une MEME variable peut-elle avoir deux valeurs différentes pour pouvoir passer ces deux tests ?
mais les 2 conditions sont 2 conditions indépendantes ! php, lui il li se qu'il y a entre les parenthèses if() puis si c'est faut il ignore le contenu entre les accolades....

Je te comprend pas trop se que tu veut dire par cette phrase :roll:

PS: et donc, si le mdp est bon, on reste sur logged.php sinon, on redirige vers index.php...
:)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

16 août 2007, 12:08

if( $_SESSION['mdp'] != $modo_pass || $_SESSION['mdp'] != $admin_pass )
{
    header('index.php');
    exit();
} 
mais les 2 conditions sont 2 conditions indépendantes ! php, lui il li se qu'il y a entre les parenthèses if() puis si c'est faut il ignore le contenu entre les accolades....
Ben non, PHP exécutera ce qu'il y a dans les accolades si l'une OU l'autre des conditions sont fausses. Comme tu testes sur une même variable, et qu'une variable n'a qu'une seule valeur, alors il y aura tjrs une condition fausse.

Cas 1 :
$_SESSION['mdp'] == $modo_pass
Donc :
$_SESSION['mdp'] != $admin_pass
Donc :
Redirection

Cas 2 :
$_SESSION['mdp'] == $admin_pass
Donc :
$_SESSION['mdp'] != $modo_pass
Donc :
Redirection

Cas 3 :
$_SESSION['mdp'] == $nimportequoidautre
Donc :
$_SESSION['mdp'] != $modo_pass
Donc :
Redirection

Voilà ce que voulait dire Truc.

Au passage, quand on a des problèmes de redirection, c'est bien de tester en les désactivant et en mettant des echo de contrôle, pour voir dans quoi on passe, c'est plus simple.

Mammouth du PHP | 959 Messages

16 août 2007, 12:54

a ! merci sa marche !
voila mon code
if( isset($_SESSION['status']) && isset($_SESSION['mdp']) )
{

	if($_SESSION['status'] == 1)
	{
		if( $_SESSION['mdp'] != $modo_pass )
		{
		header('location:index.php');
		}
	}
	
	
	if($_SESSION['status'] == 2)
	{
		if( $_SESSION['mdp'] != $admin_pass )
		{
		header('location:index.php');
		}
	}
	
	
} else {
header('location:index.php');
}
et j'ai rajouté 2 condition parce-que si l'utilisateur se connecte en admin et qu'il met sont mdp admin, sa marche aussi donc ses 2 conditions sont la pour cela ;)

mais sinon, j'ai une erreur en bas de ma page :
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
EDIT : pff erreur de ma part, pardon :roll:


Merci de vos réponses ! ^^