Script espace membres

Mammouth du PHP | 959 Messages

13 août 2007, 19:29

Bonjour,

après avoir fais, lu, corrigé, lu, relu, rerelu, rererelu, etc...

ben, je ne parvient toujours pas à trouver l'erreur dans mon script PHP pour être loggé..., le voilà :
index.php
<?php
session_start();
include('mdp.php');

if( isset($_POST['mdp']) && isset($_POST['status']) )
{
	$mdp = $_POST['mdp'];
	$status = $_POST['status']; 
	$_SESSION['status'] = $status;
	
		if( $mdp == $modo_pass || $mdp == $admin_pass )
		{
		$_SESSION['status'] = $status;
		header('logged.php');
		} else {
		?>
		Mauvais mot de passe !
		<form method="post" action="index.php">
		<label for="status">Se connecter comme : <select name="status">
		<option value="1">Modérateur</option>
		<option value="2">Administrateur</option>
		</select>
		</label>
		<br />
		<label for="mdp">Mot de passe : <input type="password" name="mdp" />
		</label>
		<br />
		<input type="submit" value="Se connecter" />
		</form>	
		<?php
		}
}
else
{
?>
<form method="post" action="index.php">
<label for="status">Se connecter comme : <select name="status">
<option value="1">Modérateur</option>
<option value="2">Administrateur</option>
</select>
</label>
<br />
<label for="mdp">Mot de passe : <input type="password" name="mdp" />
</label>
<br />
 <input type="submit" value="Se connecter" />
</form>
<?php
}
?>
mdp.php :
<?php
$admin_pass = "admin"; // Mot de Passe de l'administrateur
$modo_pass = "modo"; // Mot de Passe du modérateur
?>
début de logged.php (le reste ne vous ai inutile...
<?php
session_start(); // on démarre la session
include('mdp.php'); // inclu le fichier des mdp

if( isset($_SESSION['status']) && isset($_SESSION['mdp']))
{
	if( $_SESSION['mdp'] != $modo_pass || $_SESSION['mdp'] != $admin_pass )
	{
	header('index.php');
	exit();
	}
} else {
	header('index.php');
	}
?>
alors, se qu'il se passe :
en fait, quand j'aissé de me loggé sur index.php, (avec le bon mot de passe) ben sa reste sur index.php mais la page est toute blanche... normalement, il devré redirigé vers logged.php...

je n'est pas de message d'erreur de la part de mon éléphant préféré...

Merci de votre attention :)

Mammouth du PHP | 1967 Messages

13 août 2007, 21:38

esaie avec
header('location:logged.php');
pluto que
header('logged.php');
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Mammouth du PHP | 959 Messages

13 août 2007, 22:48

=D> pfff quel boulet que je suis.... :roll: :lol:

déjà une erreur corriger, mais maintenant, le au lieu que sa soit index.php qui est tout blanc, c'est index.php qui et normal :roll:

Merci de vos réponses !

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

14 août 2007, 01:23

Modération :
chrislabricole,

pour encourager les gens à t'aider, je t'invite à faire un effort sur la grammaire et l'orthographe.
Voir ici pour un coup de main : http://www.phpfrance.com/forums/voir_sujet-13699.php


De plus, je ne comprends pas bien où est le problème dans ton dernier message.

Merci

Mammouth du PHP | 959 Messages

14 août 2007, 01:57

en fait, avant que je mette
header('location: xxx.php');
au lieu de :
header('xxx.php');
oui, j'me suis trompé :oops:
ben quand je me loggé, sa rester toujours sur la même page mais elle devenais blanche, maintenant que j'ai mi
header('location: xxx.php');
au lieu de
header('xxx.php');
, sa reste toujours sur la même page sauf que cette fois si, il y a le formulaire... normalement, il devrait nous rediriger ver logged.php
je ne comprend pas mon erreur....

Merci de votre aide


:)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

14 août 2007, 08:00

en fait, avant que je ne mette
...
Quand je me loggais, ça restais toujours sur la même page mais elle devenait blanche, maintenant que j'ai mis
...
, ça reste toujours sur la même page sauf que cette fois ci, il y a le formulaire... normalement, il devrait nous rediriger vers logged.php
...
On est pas sur skyblog ni sur myspace ... 2ème avertissement en 3 message :evil:

Prochaine intervention, je clôture le sujet
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 959 Messages

15 août 2007, 14:22

Depuis, mes codes on bien changés
les revoilà, mais seulement, sa ne marche pas :cry:

index.php :
<?php
session_start();
include('mdp.php');

if( isset($_POST['mdp']) && isset($_POST['status']) )
{
	$mdp = $_POST['mdp'];
	$status = $_POST['status']; 
	$_SESSION['status'] = $status;
	$_SESSION['mdp'] = $mdp;
	
		if( $mdp == $modo_pass || $mdp == $admin_pass )
		{

		$_SESSION['status'] = $status;
		header('location:logged.php');
		} else {
		?>
		Mauvais mot de passe !
		<form method="post" action="index.php">
		<label for="status">Se connecter comme : <select name="status">
		<option value="1">Modérateur</option>
		<option value="2">Administrateur</option>
		</select>
		</label>
		<br />
		<label for="mdp">Mot de passe : <input type="password" name="mdp" />
		</label>
		<br />
		<input type="submit" value="Se connecter" />
		</form>	
		<?php
		}
}
else
{
?>
<form method="post" action="index.php">
<label for="status">Se connecter comme : <select name="status">
<option value="1">Modérateur</option>
<option value="2">Administrateur</option>
</select>
</label>
<br />
<label for="mdp">Mot de passe : <input type="password" name="mdp" />
</label>
<br />
 <input type="submit" value="Se connecter" />
</form>
<?php
}
?>
mdp.php :
<?php
$admin_pass = "admin"; // Mot de Passe de l'administrateur
$modo_pass = "modo"; // Mot de Passe du modérateur
?>
logged.php :
<?php
session_start(); // on démarre la session
include('mdp.php'); // inclu le fichier des mdp

if( isset($_SESSION['status']) && isset($_SESSION['mdp']) )
{
	if( $_SESSION['mdp'] != $modo_pass )
	{
	header('location:index.php');
	exit();
	}
	
	if( $_SESSION['mdp'] != $admin_pass )
	{
	header('location:index.php');
	exit();
	}
	
} else {
header('location:index.php');
}

?>
à mon avis, je pense (pas sûr) que c'est logged.php qui a un problème, mais je suis pas sûr.... :roll:

Merci de votre aide :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

15 août 2007, 14:37

Bon, tu as fait un effort sur l'orthographe et je t'en remercie :pouce:
Juste que "ça ne marche pas" au lieu de "sa ne marche pas" ;)

Sinon, "ça ne marche pas" ne nous aide pas :?
Qu'est-ce qui te fait dire ça ? page blanche, message d'erreur ?
Est-ce que tu as essayé de tracer l'évolution de ton algorithme pour vérifier qu'il fait bien ce que tu attends (des echo dans le code) ?
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 959 Messages

15 août 2007, 16:50

^^

je dit cela car si j'enlève le code qui permet de vérifier si l'utilisateur est identifier, bah logged.php marche, en revanche, si je le remet, ben ça ne marche plus, en fait, quand on s'identifie, sa nous redirige vers logged.php mais logged.php nous "reredirige" vers index.php, donc c'est pour cela que j'en conclu que c'est logged.php qui ne va pas bien.....

Thanks for your reply ^^ :D

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 août 2007, 18:37

je dit cela car si j'enlève le code qui permet de vérifier si l'utilisateur est identifier, bah logged.php marche, en revanche, si je le remet, ben ça ne marche plus, en fait, quand on s'identifie, sa nous redirige vers logged.php mais logged.php nous "reredirige" vers index.php, donc c'est pour cela que j'en conclu que c'est logged.php qui ne va pas bien.....
Je ne comprends rien à ton problème

Moi ça me parait normal que logged.php renvoie vers index.php, tu as 3 redirections vers la même page, quel que soit le cas :
header('location:index.php'); 
Alors, c'est bon ou pas ?
Ce que Zeus demandait, c'est que tu expliques ce que tu attends, et ce qu'il se passe exactement.

Et pourquoi ton sujet est-il marqué résolu ? Il l'est ou pas ?
édit:j'ai mal vu, dès que je vois des [] je coris que c'est un tag Résolu. Le tag [Problème] est pas vraiment utile, on se doute que tu en as un :P

Mammouth du PHP | 959 Messages

16 août 2007, 00:26

lol

Je vais traduire ma condition qui permet de savoir si l'utilisateur est loggé (logged.php)
celle-çi :
<?php
session_start(); // on démarre la session
include('mdp.php'); // inclu le fichier des mdp

if( isset($_SESSION['status']) && isset($_SESSION['mdp']) )
{
    if( $_SESSION['mdp'] != $modo_pass )
    {
    header('location:index.php');
    exit();
    }
    
    if( $_SESSION['mdp'] != $admin_pass )
    {
    header('location:index.php');
    exit();
    }
    
} else {
header('location:index.php');
}
?>
si session[status] et que session[mdp] existe, et que si le mdp qu'il a entré est différent au mdp que l'on a dans mdp.php , alors je redirige vers index.php ... sinon (si session[mdp et session[status] n'existe pas) je redirige vers index.php
je ne comprend pas ! j'ai mis différent (!=) et pas égal ! (==)
je vais essayer de reformuler cette condition....

Merci d'votre aide ! ^^

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

16 août 2007, 00:55

Je lis très bien ton if(), ce que je comprends pas, c'est ce qu'il se passe, et ce qui ne va pas ?

Si j'ai bien suivi :
- tu es redirigé vers index.php
- tu veux être redirigé vers index.php

Alors où est le problème ? :shock:

Si tu es encore là, c'est que quelquechose ne marche pas, seulement tes messages sont incompréhensibles, et quand on te demande d'expliquer, tu explique des choses inutiles.

Peux-tu réexpliquer quel est le problème :
- CE QU'IL SE PASSE
- CE QUE TU VOUDRAIS QU'IL SE PASSE

Il vaut mieux expliquer le résultat souhaité, c'est plus facile pour t'aider

Mammouth du PHP | 959 Messages

16 août 2007, 01:17

ok, donc,
se qu'il se passe :
quand je me logge sur index.php, il me redirige vers logged.php, (si le mdp est bon), jusque là, pas de problème... mais logged.php me redirige vers index.php parce-que mon mdp (dans la session) n'est pas bon, alors qu'il est bon...

Se que je voudrais qu'il se passe :
normalement, il devrait rester sur logged.php (puisque mon mdp est bon)

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

16 août 2007, 01:33

édit:j'ai mal vu, dès que je vois des [] je coris que c'est un tag Résolu. Le tag [Problème] est pas vraiment utile, on se doute que tu en as un :P
D'ailleurs je le vire pour ces mêmes raisons :wink:
if( $_SESSION['mdp'] != $modo_pass || $_SESSION['mdp'] != $admin_pass )
{
    header('index.php');
    exit();
} 
Traduis ce bout de script en pseudo code (avec des mots en français) en expliquant ce qu'il est censé faire (ce code).
Si la variable "mdp" différente...

/!\ 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, 01:48

édit:j'ai mal vu, dès que je vois des [] je coris que c'est un tag Résolu. Le tag [Problème] est pas vraiment utile, on se doute que tu en as un :P
D'ailleurs je le vire pour ces mêmes raisons :wink:
^^

alors, j'explique cela...
eum... tu a l'ancienne version du if....
    if( $_SESSION['mdp'] != $modo_pass )
    {
    header('location:index.php');
    exit();
    }
    
    if( $_SESSION['mdp'] != $admin_pass )
    {
    header('location:index.php');
    exit();
    } 
si session[mdp] est différent de $modo_pass (dans mdp.php) alors, je redirige vers index.php puis j'arrête l'exécution de la page...

si session[mdp] est différent de $admin_pass (dans mdp.php) alors, je redirige vers index.php puis j'arrête l'exécution de la page...

*******************************

code php mais en simplifié :
    if( SESSION[mdp] est différent de $modo_pass )
    {
    je redirige vers index.php
    je finalise l'exécution
    }
    
    if( SESSION[mdp] est différent de $admin_pass )
    {
    je redirige vers index.php
    je finalise l'exécution
    } 
Voilà....