par
Ascari » 09 oct. 2012, 12:49
Bonjour,
j'ai une page de login qui fonctionne sans base SQL et j'aimerais changer cela, mon site comportera plusieurs utilisateurs avec différentes informations en fonction de leur langue par exemple, j'arrive pas a modifier mon code pour ne plus prendre en compte mes variables définies dans le code mais aller comparer avec la base.
Si vous avez une idée car cela fait 3h que je teste plusieurs choses sans y arriver.
Merci beaucoup d'avance
Voici le code de l'identification.
Code : Tout sélectionner
<?php
// on ouvre la connexion MySQL
include('connexion.php');
// on crée la requête SQL
$sql = 'SELECT login,password,langue FROM users';
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// Definition des constantes et variables
define('LOGIN','Admin');
define('PASSWORD','Admin');
$errorMessage = '';
// Test de l'envoi du formulaire
if(!empty($_POST))
{
// Les identifiants sont transmis ?
if(!empty($_POST['login']) && !empty($_POST['password']))
{
// Sont-ils les mêmes que les constantes ?
if($_POST['login'] !== LOGIN)
{
$errorMessage = 'Mauvais login !';
}
elseif($_POST['password'] !== PASSWORD)
{
$errorMessage = 'Mauvais password !'; }
else
{
// On ouvre la session
session_start();
// On enregistre le login en session
$_SESSION['login'] = LOGIN;
$_SESSION['password'] = PASSWORD;
// On redirige vers le fichier admin.php
header('Location:admin.php');
exit();
}
}
else
{
$errorMessage = 'Veuillez inscrire vos identifiants svp !';
}
}
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Formulaire d'authentification</title>
</head>
<body>
<form action="
<?php echo htmlspecialchars($_SERVER['PHP_SELF']);
?>"
method="post">
<fieldset>
<legend>Identifiez-vous</legend>
<?php
// Rencontre-t-on une erreur ?
if(!empty($errorMessage))
{
echo '<p>', htmlspecialchars($errorMessage) ,'</p>';
}
?>
<p>
<label for="login">Login :</label>
<input type="text" name="login" id="login" value="" />
</p>
<p>
<label for="password">Password :</label>
<input type="password" name="password" id="password" value="" />
<input type="submit" name="submit" value="Se logguer" />
</p>
</fieldset>
</form>
</body></html>
Et celui de la page affichée
Code : Tout sélectionner
<?php
// Ouverture la connexion MySQL
include('connexion.php');
// On prolonge la session
session_start();
//On teste si la variable de session existe et contient une valeur
if(empty($_SESSION['login']))
{
// Si inexistante ou nulle, on redirige vers le formulaire de login
header('Location: authentification.php');
exit();
}
// on crée la requête SQL
$sql = 'SELECT login,password,langue FROM users';
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
{
// on affiche les informations de l'enregistrement en cours
echo '<b>'.$data['login'].'<br>';
echo '<b>'.$data['langue'].'<br>';
echo '<b>'.$data['password'].'<br>';
}
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Administration</title>
</head>
<body>
<?php
// Ici on est bien loggué, on affiche un message
echo 'Bienvenue ', $_SESSION['login'];
?>
</body>
</html>
Bonjour,
j'ai une page de login qui fonctionne sans base SQL et j'aimerais changer cela, mon site comportera plusieurs utilisateurs avec différentes informations en fonction de leur langue par exemple, j'arrive pas a modifier mon code pour ne plus prendre en compte mes variables définies dans le code mais aller comparer avec la base.
Si vous avez une idée car cela fait 3h que je teste plusieurs choses sans y arriver.
Merci beaucoup d'avance
Voici le code de l'identification.
[code]<?php
// on ouvre la connexion MySQL
include('connexion.php');
// on crée la requête SQL
$sql = 'SELECT login,password,langue FROM users';
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// Definition des constantes et variables
define('LOGIN','Admin');
define('PASSWORD','Admin');
$errorMessage = '';
// Test de l'envoi du formulaire
if(!empty($_POST))
{
// Les identifiants sont transmis ?
if(!empty($_POST['login']) && !empty($_POST['password']))
{
// Sont-ils les mêmes que les constantes ?
if($_POST['login'] !== LOGIN)
{
$errorMessage = 'Mauvais login !';
}
elseif($_POST['password'] !== PASSWORD)
{
$errorMessage = 'Mauvais password !'; }
else
{
// On ouvre la session
session_start();
// On enregistre le login en session
$_SESSION['login'] = LOGIN;
$_SESSION['password'] = PASSWORD;
// On redirige vers le fichier admin.php
header('Location:admin.php');
exit();
}
}
else
{
$errorMessage = 'Veuillez inscrire vos identifiants svp !';
}
}
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Formulaire d'authentification</title>
</head>
<body>
<form action="
<?php echo htmlspecialchars($_SERVER['PHP_SELF']);
?>"
method="post">
<fieldset>
<legend>Identifiez-vous</legend>
<?php
// Rencontre-t-on une erreur ?
if(!empty($errorMessage))
{
echo '<p>', htmlspecialchars($errorMessage) ,'</p>';
}
?>
<p>
<label for="login">Login :</label>
<input type="text" name="login" id="login" value="" />
</p>
<p>
<label for="password">Password :</label>
<input type="password" name="password" id="password" value="" />
<input type="submit" name="submit" value="Se logguer" />
</p>
</fieldset>
</form>
</body></html>[/code]
Et celui de la page affichée
[code]<?php
// Ouverture la connexion MySQL
include('connexion.php');
// On prolonge la session
session_start();
//On teste si la variable de session existe et contient une valeur
if(empty($_SESSION['login']))
{
// Si inexistante ou nulle, on redirige vers le formulaire de login
header('Location: authentification.php');
exit();
}
// on crée la requête SQL
$sql = 'SELECT login,password,langue FROM users';
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
// on fait une boucle qui va faire un tour pour chaque enregistrement
while($data = mysql_fetch_assoc($req))
{
// on affiche les informations de l'enregistrement en cours
echo '<b>'.$data['login'].'<br>';
echo '<b>'.$data['langue'].'<br>';
echo '<b>'.$data['password'].'<br>';
}
?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>Administration</title>
</head>
<body>
<?php
// Ici on est bien loggué, on affiche un message
echo 'Bienvenue ', $_SESSION['login'];
?>
</body>
</html>[/code]