Redirection si non connecté

gesx806 -  
 Gesx806 -
Bonjour,

Je suis en train de créer un espace membre, mais j'ai un petit problème.

Après qu'un membre se soit connecté, il arrive sur une page d'accueil nommée "index.php". Dessus il accède au fil d'actualité de ses amis, etc... Malheureusement, je n'arrive pas à rediriger automatiquement un utilisateur s'il n'est pas connecté et qu'il va sur cette page 'index.php'.

Voici mon script codé en PHP :


<?php
include('config.php')
?>

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Bienvenue sur Spot</title>
<meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0">
<link rel="stylesheet" href="style.css" media="all">
</head>
<body>
<header>
<h3>Où êtes-vous ?</h3>
</header>
<label for="toggle-nav" data-icon="?" title="menu" onclick=""></label>
<input type="checkbox" id="toggle-nav">
<div id="main">
<nav role="navigation" id="navigation">
<ul>
<li><a href="profile.php"><?php if(isset($_SESSION['username'])){echo ' '.htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8');} ?></a></li>
<li><a href="#">Profil</a></li>

<li><a href="#">Lieux</a></li>
<li><a href="#">Amis</a></li>
<li><a href="users.php"> Browers</a></li>
<li><a href="deconnexion.php">Déconnexion</a></li>
</ul>
</nav>
<div class="content">
<?php

//On affiche un message de bienvenue, si lutilisateur est connecte, on affiche son pseudo
?>
<br />


<?php
//Si lutilisateur est connecte, on lui donne un lien pour modifier ses informations, pour voir ses messages et un pour se deconnecter
if(isset($_SESSION['username']))
{
?>
<a href="edit_infos.php">Modifier mes informations personnelles</a><br />
}
?>

</body>
</html>

Voilà. Merci à vous !

Guillaume.


2 réponses

BlackYoup Messages postés 184 Statut Membre 20
 
Tu as déja écrit la solution :)

Quand tu teste si la variable $_SESSION['username'] existe, pourquoi ne pas mettre un else{} qui redirige vers la page que tu veux si l'utilisateur n'est pas connecté ? :)
0
Gesx806
 
Merci de ta réponse !

Je suis tout nouveau dans la programmation PHP, et je ne sais pas trop comment faire ce que tu m'as dit... Pourrais-tu me mettre le 'else' sur mon script ? Ce serait vraiment sympa...

En tout cas, merci !
0
marwenovich Messages postés 121 Statut Membre 9
 
normalement vous avez mis une session pour différez entre un membre connecté et un membre non connecté par exemple $_SESSION['connected']


dans le début de la page index.php :

<?php
session_start();
if(!isset( $_SESSION['connected'])|| $_SESSION['connected'] ==0){
header("location:derige_vers.php");
}
?>
0
BlackYoup Messages postés 184 Statut Membre 20
 
Et si jamais ce n'est pas le cas, je suppose que $_SESSION['username'] n'existe pas lorsque l'utilise est déconnecté. Dans ce cas, vérifiez cette variable :)
0
marwenovich Messages postés 121 Statut Membre 9
 
<?php
session_start(); //ouverture de session
if(!isset( $_SESSION['connected'])|| $_SESSION['connected'] ==0){ //Si la session n'existe pas ou =0,c'est a dire non connecté
header("location:derige_vers.php"); //il sera redirigé vers la page derige_vers.php
}
?>
//si l'utilisateur est la,c'est a dire qu'il est connecté et peut voir le contenue de la page
0
Gesx806
 
Merci pour vos réponses.

J'ai testé mais ça marche pas. J'ai mis mon script la-haut, vous pouvez me dire ce que je pourrais faire pour que cela marche ?

Merci.
0
marwenovich Messages postés 121 Statut Membre 9
 
ok c'est le code de la nouvelle index.php


<?php
session_start();
/*on va testé s'il est connecté une seule fois et c'est ici , pour ne supprimer tout les autres test que vous avez faits*/

if(!isset($_SESSION['username'])) {
/*s'il n'ya pas une session "username" il sera redirigé vers la page de connection*/
header("location:connect.php");
}
include('config.php') ;
?>

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Bienvenue sur Spot</title>
<meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0">
<link rel="stylesheet" href="style.css" media="all">
</head>
<body>
<header>
<h3>Où êtes-vous ?</h3>
</header>
<label for="toggle-nav" data-icon="?" title="menu" onclick=""></label>
<input type="checkbox" id="toggle-nav">
<div id="main">
<nav role="navigation" id="navigation">
<ul>
<li><a href="profile.php">
<?php
echo ' '.htmlentities($_SESSION['username'], ENT_QUOTES, 'UTF-8');
?>
</a></li>
<li><a href="#">Profil</a></li>

<li><a href="#">Lieux</a></li>
<li><a href="#">Amis</a></li>
<li><a href="users.php"> Browers</a></li>
<li><a href="deconnexion.php">Déconnexion</a></li>
</ul>
</nav>
<div class="content">
<?php
echo bienvenue $_SESSION['username'];
?>
<br />
<a href="edit_infos.php">Modifier mes informations personnelles</a><br />


</body>
</html>
0