PHP/SQL Session Login-Password
Posté : 13 févr. 2012, 16:24
Salut,
Voici que je fais plusieurs test de manière différentes pour pouvoir me connecter sur mon site sans qu'il n'y ai de problème !!
J'ai trois pages et une BD.
index.html ( Page où est les deux inputs Login et Password et le bouton submit )
connect.php ( Page qui vérifie le login et le password + appel à la BD )
test.php ( Affiche les résultats lorsqu'on est log. )
Ma BD est composé pour cette partie de 3 tables ( Par contre je peux me planter, merci de me mettre sur une bonne voie s'il manque des champs !! )
ELEVE ( ID_E , Nom_E , Prenom_E )
PROF ( ID_P , Nom_P, Prenom_P )
Compte ( N°compte , Nom_compte , MDP_compte )
Donc, index.html :
La page connect.php
Ma fonction.php a la connexion à la BD.
Niveau de la connexion ça marche, mais ce qui me perturbe depuis pas mal de temps c'est que Si je me connecte avec un compte ELEVE il faut que ça m'affiche un fond d'écran de eleve.css si je me connecte en tant que PROF que ça me mette un fond d'écran que j'ai mis dans prof.css ( Le PROF doit pouvoir MODIFIER/AJOUTER des notes, alors que l'eleve ne peut juste Regarder )
Il y à aussi le probleme de la page sécurisée, lorsque je met le lien directement, ça me met le message comme quoi il faut que je me connect, mais lorsque je me connecte, ça me le met aussi...
Des idées ?
D'avance merci
Voici que je fais plusieurs test de manière différentes pour pouvoir me connecter sur mon site sans qu'il n'y ai de problème !!
J'ai trois pages et une BD.
index.html ( Page où est les deux inputs Login et Password et le bouton submit )
connect.php ( Page qui vérifie le login et le password + appel à la BD )
test.php ( Affiche les résultats lorsqu'on est log. )
Ma BD est composé pour cette partie de 3 tables ( Par contre je peux me planter, merci de me mettre sur une bonne voie s'il manque des champs !! )
ELEVE ( ID_E , Nom_E , Prenom_E )
PROF ( ID_P , Nom_P, Prenom_P )
Compte ( N°compte , Nom_compte , MDP_compte )
Donc, index.html :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="fr" dir="ltr">
<head>
<title>Page test</title>
<meta name="author" content="Peter" >
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" >
<link rel="stylesheet" type="text/css" href="commun.css" >
</head>
<body>
<div id="bas">
<p id="foot"><form method="POST" action="connect.php">
Identifiant: <input type="text" name="login" value="">
Mot de passe: <input type="password" name="mdp" value="">
<input type="submit" value="Connecter">
</form></p>
</div>
</body>
</html>
La page connect.php
<?php
//ouverture d'une session
session_start();
//Appel de la fonction
include('fonction.php');
if(isset($_POST['login']) && isset($_POST['mdp']))
{
// Récupération des données saisies dans le formulaire d'accueil
$log=$_POST['login'];
$mdp=$_POST['mdp'];
$_SESSION['logSession']=$log;
//Appel de la procédure connexion
connexion();
//Recherche du login et du mot de passe de l'administrateur dans la base
$req="SELECT *
FROM prof, eleve, compte
WHERE Nom_compte='$log'
AND MDP_compte='$mdp'";
// Execution de la requête
$sql=mysql_query($req) or die("La requête a échoué");
if(mysql_num_rows($sql)==0)
{
echo("Mauvais mot de passe ou identifiant");
header('Refresh: 3; URL=index.html');
}
else
{
echo("Vous vous êtes connecté avec succès.");
header('Refresh: 3; URL=test.php');
}
//Appel de la procédure deconnexion
deconnexion();
}
else
{
echo "Veuillez entrer votre login et votre mot de passe";
header('Refresh: 3; URL=index.html');
}
test.php :
<?php
session_start();
if ((!isset($_SESSION['login'])) || (empty($_SESSION['login'])))
{
// la variable 'login' de session est non déclaré ou vide
echo ' <p>Veuillez vous connecter avant. <a href="index.html" title"Connexion">Retour</a></p>'."\n";
exit();
}
?>
<?php
if(isset($_SESSION['prof'])){$statut=$_SESSION['eleve'];} // ? #-o
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title></title>
<link rel="stylesheet" type="text/css" href="commun.css" media="sceen" />
<?php
//dans un fichier css 'commun.css' Ce qui est commun aux deux
// fichiers css pour les background et tout ce qui est spécifique
if($statut=='prof'){
echo '<link rel="stylesheet" type="text/css" href="prof.css" media="sceen" />';
}elseif($statut=='eleve'){
echo '<link rel="stylesheet" type="text/css" href="eleve.css" media="screen" />';
}
?>
</head>
<body>
Bonjour
<?php
if(isset($_POST['login']) && isset($_POST['mdp'])) // je dois me tromper quelque part ^^
{
$log=$_POST['login'];
echo 'Bonjour, vous êtes :'.$log['login'].'<br />';
}
?>
<BR /><BR />
<a href="demanderdv.php"><img src"Images\Mail.png" border=0 width=15 height=30 alt="Demande de rendez-vous"></a>
</body>
</html>
Ma fonction.php a la connexion à la BD.
Niveau de la connexion ça marche, mais ce qui me perturbe depuis pas mal de temps c'est que Si je me connecte avec un compte ELEVE il faut que ça m'affiche un fond d'écran de eleve.css si je me connecte en tant que PROF que ça me mette un fond d'écran que j'ai mis dans prof.css ( Le PROF doit pouvoir MODIFIER/AJOUTER des notes, alors que l'eleve ne peut juste Regarder )
Il y à aussi le probleme de la page sécurisée, lorsque je met le lien directement, ça me met le message comme quoi il faut que je me connect, mais lorsque je me connecte, ça me le met aussi...
Des idées ?
D'avance merci