bonjour, j'ai un petit soucis en php. le soucis est que le code que j'ai mis en place ne me permet pas de faire un accès a certaines pages qui devront être accessible seulement pour les personnes autorisées. au fait j'ai déja posté dans ce forum, le topic "etait acces a la base de donnée en php". il est résolu. j'ai ajouté session_start() et $_SESSION['login'] une fois que le login et le mot de passe étaient corrects pour sauvegarder en session le login et le mot de passe pour pouvoir les recuperer par la suite. j'ai 5 pages qui doivent etres accessible seulement avec la session qui lui correspond . pour chaque page j'ai fait :
sauf que ça ne marche pas comme je l'ai voulu. j'accede a chaque page meme si j'ai pas le login saisi.
le code est :
merci de m'aider.
Modifié par brainsplit (28 Sep 2010 - 12:53)
<?php
session_start();
if( empty($_SESSION['login']))
// je donne acces a la page
else
header('location:index.html');
?>
sauf que ça ne marche pas comme je l'ai voulu. j'accede a chaque page meme si j'ai pas le login saisi.
le code est :
<?php
// Initialisation ou récupération des variables
$login = !empty($_POST['login']) ? trim($_POST['login']) : '';
$pwd = !empty($_POST['pwd']) ? trim($_POST['pwd']) : '';
$erreurs = array();
if($_SERVER['REQUEST_METHOD']=='POST') {
// login obligatoire
if(empty($login)) {
$erreurs[] = 'Le login est requis.';
}
// password obligatoire
if(empty($pwd)) {
$erreurs[] = 'Le password est requis.';
}
// pas d'erreur
if(empty($erreurs)) {
// Vérification du couple login / password
require 'connexion.php';
$sql = sprintf("SELECT url FROM utilisateurs Natural Join roles WHERE login='%s' AND password='%s'",
mysql_real_escape_string($login),
mysql_real_escape_string($pwd));
$result = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($result) < 1) {
$erreurs[] = 'Login et/ou Password incorrect(s).';
} else {
//c 'est ici que je fait $SESSION
session_start();
$_SESSION['pseudo']=$login;
header('Location: '. mysql_result($result, 0) ); // acceder a la page correspondante
}
}
}
?>
<!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=utf-8" />
<title>Connexion</title>
<style type="text/css" media="screen">
.alerte {
color: #FF0033;
font-weight: bold;
}
</style>
</head>
<body>
<?php
if(!empty($erreurs)) {
foreach($erreurs as $erreur) {
echo '<p class="alerte">'.$erreur."</p>\n";
}
}
?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
<p>
<label for="login">Login : </label>
<input type="password" name="login" id="login" value="<?php echo htmlspecialchars($login); ?>" />
</p>
<p>
<label for="pwd">Password : </label>
<input type="password" name="pwd" id="pwd" value="<?php echo htmlspecialchars($pwd); ?>" />
</p>
<p>
<input type="submit" value="Se connecter" />
</p>
</form>
</body>
</html>
merci de m'aider.
Modifié par brainsplit (28 Sep 2010 - 12:53)