aide pour un espace membre
Bonjour. Je fais un exercice(un espace membre). Pour la page de connexion; je veux que l'utilisateur soit redirigé sur la page d'accueil(=page de connexion) et ce quelque soit le résultat. Voyez
index.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| <?php session_start(); ?>
<!DOCTYPE html>
<html>
<head>
<title>site</title>
<meta charset = "utf-8"/>
</head>
</body>
<?php
if(isset($_SESSION['id']) AND isset($_SESSION['pseudo']))
{
echo '<a href = "page_profil.php"><strong>Bienvenu '.$_SESSION['pseudo'].'</strong></a><br/>';
echo '<a href = "deconnexion.php"/>Déconnexion</a>';
}
else
{
?> <form action = "connexion.php" method = "post">
<label for = "pseudo">Pseudo:</label><input type = "text" name = "pseudo" id = "pseudo" required/>
<label for = "pass">Mot de passe:</label><input type = "password" name = "pass" id = "pass" required/>
<input type = "submit" value = "connexion"/><br/>
</form>
<a href = "inscription.php">Inscrivez vous </a>
<?php
if(isset($_SESSION['erreur']) AND $_SESSION['erreur'])
echo 'mot de passe et ou login incorrecte';
}
?>
<body>
</html> |
la page de traitement
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| <?php
session_start();
include_once('fonctions.php');
include_once('connexion_bdd.php');
if(isset($_POST['pseudo']) AND isset($_POST['pass']))
{
/* on verifie que l'existence dui compte*/
$requete = $bdd->prepare('SELECT id FROM membres WHERE pseudo = ? AND pass = ?');
$requete->execute(array($_POST['pseudo'] , sha1($_POST['pass']))) or die(print_r($requete->errorInfo()));
$donnees = $requete->fetch();
if(!$donnees)
{
$_SESSION['erreur'] = true;
}
else/*on le connecte*/
{
$_SESSION['id'] = $donnees['id'];
$_SESSION['pseudo'] = $_POST['pseudo'];
$_SESSION['erreur'] = false;
}
header('location:index.php');
}
?> |
ça marche mais j'utilise des variables de sessions juste pour savoir s'il y a eu erreur ou pas et c'est pire pour l'inscription. Je ne sais pas si c'est une bonne méthode ou s'il y a une meilleure solution. Je ne sais pas si je me suis fait bien comprendre mais merci d'avance