Bonjour,
J'ai fait une page de connexion (identifiant et mdp) qui redirige vers la page d'accueil si les informations sont correctes. Les informations de connexion se trouve dans une BDD.
Je souhaite mettre sur la page d'accueil un lien qui permet à chacun de se déconnecter.
Mais je souhaite surtout empêcher l'accès à la page d'accueil s'il n'y a pas eu de connexion. (Redirection sur la page de connexion.) Je n'arrive pas à bloquer l'accès si pas de connexion, comment faire?
<?php include('connexion.php'); ?> <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Accueil</title>
<style>
body
{
background: rgba(255,221,95,1);
margin: 5px;
}
header
{
height: 220px;
border: 2px solid black;
text-align: center;
padding: 10px;
margin: 5px;
}
table
{
text-align: center;
margin: auto;
width: 90%;
}
ul#menu_horizontal li
{
display : inline;
padding : 0 0.5em;
border: 1px black;
}
ul#menu_horizontal
{
list-style-type : none;
}
a
{
border: 1px blue;
}
</style>
</head>
<body>
<header>
<br>
<h1>Serveur Guillaume.B</h1>
<h2>Accueil:</h2>
<ul id="menu_horizontal">
<li><a href="accueil.php">Accueil</a></li>
<li><a href="codeur.php">Codeur/Décodeur</a></li>
<li><a href="/gestion/connexion.php">Site de gestion</a></li>
<li><a style="color: blue" href="contactadm.php">Contacter l'administrateur</a></li>
<?php
if(isset($_SESSION['user'])){
?>
<li><a href="update-password.php">Changer mot de passe</a></li>
<?php
}
?>
<li><a style="color: red" href="index.php">Me <?php if(isset($_SESSION['user'])){echo"dé";}?>connecter</a></li>
</ul>
</header>
<br>
<br>
<section>
<table style="text-align: center" border=1 width=90% height="50px" align="center" cellspacing=0 cellpadding=0 >
<tr>
<td>
Notre codeur-décodeur permet de discuter avec un language illisible sans traduction. La traduction des mots, phrases, textes se fait sur le site. Cliquez sur le lien pour coder ou décoder.<br>
<a href="codeur.php">Codeur/Décodeur</a>
</td>
</tr>
</table>
<br>
<table style="text-align: center" border=1 width=90% height="50px" align="center" cellspacing=0 cellpadding=0>
<tr>
<td>
Le site de gestion n'est pas disponible avant le 02-02-19.
Le site de gestion est destiné à la gestion complète d'une association. Cliquez sur le lien pour accéder au site de gestion. L'accès est limité aux membres de l'association. <br>
<a href="/gestion/connexion.php">Site de gestion</a>
</td>
</tr>
</table>
<br>
<table style="text-align: center" border=1 width=90% height="50px" align="center" cellspacing=0 cellpadding=0>
<tr>
<td>
Si vous souhaitez modifier votre mot de passe, cliquez sur le lien ci-dessous...<br>
<a href="update-password.php">Changer son mot de passe.</a>
</td>
</tr>
</table>
</section>
</body>
</html>
Sur les pages à sécuriser.. il te suffit de vérifier si ta variable de session est remplie
Dans le cas contraire.. tu rediriges vers ta page de connexion.
Mon problème c'est que ma page d'accueil ne voit pas quand je suis connecté...
Si je me connecte, je suis redirigé vers ma page d'accueil mais je n'ai pas accès à la variable session.
Si je met des mauvais identifiants, ça me mets bien le message d'erreur.
<?php
//affichage des erreurs php
error_reporting(E_ALL & ~E_NOTICE);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
//démarrage des session si pas déjà démarées
if (session_status() == PHP_SESSION_NONE) {
session_start();
}
$current_page = basename($_SERVER['PHP_SELF']);
$user = !empty($_SESSION['user']) ? $_SESSION['user'] : NULL;
if($current_page !="accueil.php" && $current_page != "index.php" && !$user) {
header('Location: index.php');
exit(); // toujours mettre un exit après une redirection
}else{
//le temps des tests si ça ne fonctionne toujours pas
echo "<br> current_page : " . $current_page;
echo "<br> SESSION : <br>";
print_r($_SESSION);
}
?>
Si je me connecte, je suis redirigé vers ma page d'accueil mais je n'ai pas accès à la variable session.
Si je met des mauvais identifiants, ça me mets bien le message d'erreur.
Donc remplacer le bloc
par uniquement
Peux tu nous montrer ton code modifié (attention à bien utiliser les balises de code cette fois )