Identification avec tableau-->page blanche

Résolu/Fermé
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011 - 11 avril 2011 à 13:45
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011 - 12 avril 2011 à 11:39
Bonjour,

Avec l'aide généreuse de ktm620enduro que je remercie encore nous avons créer ce script PHP pour une identification avec redirection. Sur la machine de ktm620enduro le code fonctionne cependant pour ma part celle-ci affiche une page blanche. Je ne vois pas pourquoi quelqu'un à une idée?

<?

$login='bureau_sushiba';
$pass='troc';
$identifiants=array('','bureau_sushiba','standard_sushiba','responsable_sushiba','cuisine_sushiba');
$passwords=array('','756b25da610ecf7fe6f751ccc9947f6a','pass-2','pass-3','pass-4');
$headers=array('','FAQ-bureau.php','FAQ-standard.php','FAQ-responsable.php','FAQ-cuisine.php');
if (!preg_match('#[a-z0-9]+#i',$pass) or !preg_match('#[a-z_]+#i',$login))
die('mot de passe ou login inexistant ou invalide');
$pass=md5($pass);
if ($key = array_search($login, $identifiants))
{
if ($passwords[$key]==$pass)
{
$header=$headers[$key];
$_SESSION['_login'] = $login;
$_SESSION['_pass'] =$pass;
header('location: '.$header);
exit();

}
else die ('mauvais mot de passe');
}
else die('mauvais login');

?>
A voir également:

12 réponses

Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
11 avril 2011 à 14:08
Bonjour,


euh Waou.....

je copie-colle ce script, page blanche.
je met en commentaire successivement les lignes, page blanche
j'arrive a la dernière ligne a mettre en commentaire, page blanche
je met tout en commentaire et met un echo "coucou" en 1ere ligne, page blanche.

juste Waou ^^
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
11 avril 2011 à 14:11
qu'est ce que ca veut dire?
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
11 avril 2011 à 14:12
la réponse est en dessous ^^
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
Modifié par Gremy87 le 11/04/2011 à 14:12
trouvé^^

ca vient des balises php

remplace <? par <?php et ca ira tout seul

je dois avouer que ca fait peur au début ^^

ca marche chez ktm620enduro parce que son serveur web/php doit etre configurer pour reconnaitre ces balises et pas le tien ; ) (ni le mien d'ailleurs^^)

RISE OF THE GEEK IS COMMING SOON!!! BWAHAHAHAHA
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
11 avril 2011 à 14:13
c'est vrai que ça m'a fait peur ! merci beaucoup ca marche ! Niveau sécurité c'est comment?
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
11 avril 2011 à 14:14
je dois avouer que j'ai pas trop regarder le code mais ca me parait très correct =)
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
11 avril 2011 à 14:16
par contre quand je clique sur envoyer meme si je remplit pas le formulaire il m'affiche la page
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
Modifié par Gremy87 le 11/04/2011 à 14:18
j'ai copié le code, modifié la balise et ca m'as redirigé direct aussi. le reste je sais pas trop, je connais pas ton appli ;)
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
11 avril 2011 à 14:19
c'est juste un formulaire qui redirige selon ton login et mot de passe
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
11 avril 2011 à 14:27
euh ben oui c'est normal

if ($key = array_search($login, $identifiants))
cherche $login dans le tableau $identifiants et dans le tableau il y a '' donc si tu mets rien ca valide les tests et donc redirige

0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
11 avril 2011 à 14:34
je ne vois pas très bien ce que tu veut dire
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
11 avril 2011 à 14:36
parce que sans ce vide pour la premiere ligne du tableau ca ne marche pas
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
11 avril 2011 à 14:39
if ($key = array_search($login, $identifiants))

ce test regarde si dans le tableau $identifiants que tu as définit plus haut avec cette ligne:

$identifiants=array('','bureau_sushiba','standard_sushiba','responsable_sushiba','cuisine_sushiba');

si tu ne remplit pas ton formulaire $login va valoir '' (vide).
ce vide EST dans ton tableau, la première valeur.

donc le test va être validé, pareil pour le mot de passe et si l'on valide les 2 tests on est a la redirection.

donc c'est normal que si tu ne remplis pas ton formulaire et que tu valides ca te rediriges

compris?
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
11 avril 2011 à 14:40
oui mais quand j'enlève ce vide il me met mauvais login tout le temp
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
11 avril 2011 à 15:11
Pas de solution?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
11 avril 2011 à 15:19
*fais des tests* ^^
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
11 avril 2011 à 15:25
Bon je viens de tester tout ce plus en détail. la version de départ était bonne. il faut bien laisser la chaine vide en 1ere valeur car array_search renvoi la position de la chaine et vu que le tableau commence a 0 la valeur de retour sera 0 et le test ne sera pas validé.

je viens de tester en remettant la chaine vide et en mettant un login mdp vide aussi, et ça me jette correctement. je ne vois pas pourquoi toi ça t'acceptais.
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
11 avril 2011 à 15:42
j'ai mi comme ca en ca me renvoi bien login ou mdp invalide ou inexistant mais faut bien que je lui donne une valeur au variable $login et $pass n'est ce pas?
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
11 avril 2011 à 15:42
<?php

$login='';
$pass='';
$identifiants=array('','bureau_sushiba','standard_sushiba','responsable_sushiba','cuisine_sushiba');
$passwords=array('','756b25da610ecf7fe6f751ccc9947f6a','pass-2','pass-3','pass-4');
$headers=array('','FAQ-bureau.php','FAQ-standard.php','FAQ-responsable.php','FAQ-cuisine.php');
if (!preg_match('#[a-z0-9]+#i',$pass) or !preg_match('#[a-z_]+#i',$login))
die('mot de passe ou login inexistant ou invalide');
$pass=md5($pass);
if ($key = array_search($login, $identifiants))
{
if ($passwords[$key]==$pass)
{
$header=$headers[$key];
$_SESSION['_login'] = $login;
$_SESSION['_pass'] =$pass;
header('location: '.$header);
exit();

}
else die ('mauvais mot de passe');
}
else die('mauvais login');

?>
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
11 avril 2011 à 15:44
et bien ta valeur vient bien de ton formulaire. c'est bien en fait un $_POST['login'] et $_POST['pass'], non?
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
11 avril 2011 à 15:45
oui je crois
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
11 avril 2011 à 15:47
et bien normalement ca ne sera pas vide, et lorsque ca le sera, il sera jeté, tout vas bien non?
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
11 avril 2011 à 15:47
$_SESSION['_login'] = $login;
$_SESSION['_pass'] =$pass;
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
11 avril 2011 à 15:52
c'est plutôt d'où viennent les valeurs de $login et de $pass qui est important
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
11 avril 2011 à 15:54
je met quoi comme valeur des variable $login et $pass?
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
12 avril 2011 à 09:11
<?php
if (!isset( $_SESSION['_login']) && isset( $_SESSION['_pass']))
die ('Invalide');
}
?>
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
12 avril 2011 à 10:25
salut,
je viens d'essayer j'ai plus d'erreur de syntaxe mais j'ai quand même accès à toutes les pages en tapant l'url
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
12 avril 2011 à 10:34
voila l'erreur qu'il m'affiche

Notice: Undefined index: login in C:\Program Files\EasyPHP-5.3.1\www\INTRANET\templates\identification2.php on line 3

Notice: Undefined index: mdp in C:\Program Files\EasyPHP-5.3.1\www\INTRANET\templates\identification2.php on line 4
mot de passe ou login inexistant ou invalide
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
12 avril 2011 à 10:34
Bonjour,

vérifie l'état de tes variables $_SESSION['_login'] et $_SESSION['_pass'] avec un print_r($_SESSION) et cherche pourquoi elles ont ces valeurs.

tu verra quelle page les leur a donnée
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
12 avril 2011 à 10:40
je le met ou ca?
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
12 avril 2011 à 10:42
sur une page que tu appel via son adresse, la ou tu ne voudrais pas avoir accès en fait
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
12 avril 2011 à 10:45
je l'ai mis sur une des pages comme tu viens de me dire et voila ce que j'ai :
Notice: Undefined variable: _SESSION in C:\Program Files\EasyPHP-5.3.1\www\INTRANET\templates\identification2.php on line 5
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
12 avril 2011 à 10:49
t'as du oublie le session_start() tout en haut de la page, non?
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
12 avril 2011 à 10:52
excuse moi encore mais sur quel page?
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
12 avril 2011 à 10:57
lol, bon je t'explique le fonctionnement des session parce que la t'as l'air perdu...


pour que les sessions soient pris en comptes sur n'importe quelle page il faut que tout au debut, vraiment tout au debut, tu mette un
<?php
session-start();
?>

a partir de la tu peux utiliser un tableau associatif qui s'appel $_SESSION[]

donc pour pouvoir utiliser ce $_SESSION tu dois avoir mis le session_start()

donc la met le session start tout en haut de la page ou tu as mis ca : print_r($_SESSION)
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
12 avril 2011 à 11:00
Ok merci, bon maintenant il m'affiche en haut de la page Array()
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
12 avril 2011 à 11:12
ok ça ça veut dire que tes variables de session n'existent pas donc

<?php
if (isset( $_SESSION['_login']) && isset( $_SESSION['_pass']))
{
}
else
{
echo "Vous n'etes pas identifié";
}
?>

a la place du print_r($_SESSION)

devrait te dire que tu n'est pas identifié.

si ensuite tu redirige directement vers ta page d'identification, ca ira =)
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
12 avril 2011 à 11:18
Merci, par contre il ne manque pas quelque chose entre les deux accolade?
<?php
if (isset( $_SESSION['_login']) && isset( $_SESSION['_pass']))
{
}
Parce que quand je met ca à la place de print_r($_SESSION) il m'interdit meme quand je me logue correctement
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
12 avril 2011 à 11:23
non c bon ca marche ! juste un petit détail j'ai mi ca dans mes pages

<?php
session_start();
if (isset( $_SESSION['_login']) && isset( $_SESSION['_pass']))
{
}
else
{
echo "Vous n'etes pas identifié";
header("location: accueil.php") ;
}


?>


Niveau secu ca marche par contre j'ai pa le message echo "Vous n'etes pas identifié"; qui s'affiche
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
12 avril 2011 à 11:23
Quand tu te log correctement tu mets des valeurs a tes variables de session $_SESSION['_login'] et $_SESSION['_pass'].

ensuite en haut de TOUTES les pages que tu ne veux pas avoir accès sans être identifié tu mets

<?php
session_start();
if (isset( $_SESSION['_login']) && isset( $_SESSION['_pass']))
{
}
else
{
header("location:tapage_didentification.php");
}
?>
//tout le code HTML de ta page


si tu est identifié rien ne se passe et ta page s'affiche, si tu ne l'est pas tu est redirigé vers tapage_didentification.php

ok?
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
12 avril 2011 à 11:25
ok pour ca mais par contre il n'y a pas de msg qui s'affiche informant l'utilisateur qu'il n'est pas connecté
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
12 avril 2011 à 11:30
c bon j'ai mis ca et ca marche bien !
<?php
session_start();
if (isset( $_SESSION['_login']) && isset( $_SESSION['_pass']))
{
}
else
{
echo '<p><b style="color:red">espace sécurisé</b><br />Connecté vous pour accéder à cette page</p>';
include("accueil.php") ;
exit();
}
?>
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
12 avril 2011 à 11:31
Je te remercie ! Sans toi j'aurais mis 23 mois pour y arriver! Merci et surement à bientot sur le forum. Pettie question on sait jamais tu sais comment on installe phpBB en local?
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
12 avril 2011 à 11:36
http://www.phpbb-fr.com/

t'as tous les tutos qu'il faut.

de rien
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
12 avril 2011 à 11:29
pour ca dans ton header(location:....) tu rajoutes une variable GET

exemple:
header("location:tapage_didentification.php?nonident=true");

et dans ta page d'identification ( celle-ci tapage_didentification.php )

tu mets:

if (isset($_GET['nonident']))
{
echo "<p>Vous n'estes pas identifié</p>";
}
0
Patoch250 Messages postés 66 Date d'inscription lundi 4 avril 2011 Statut Membre Dernière intervention 29 avril 2011
12 avril 2011 à 11:39
Encore merci à bientôt !
0