Redirection si non connecté

Fermé
gesx806 - 18 août 2013 à 15:07
 Gesx806 - 25 août 2013 à 19:48
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 181 Date d'inscription mardi 4 décembre 2012 Statut Membre Dernière intervention 10 juin 2014 20
18 août 2013 à 15: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
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 111 Date d'inscription lundi 18 mars 2013 Statut Membre Dernière intervention 8 février 2014 9
18 août 2013 à 19:35
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 181 Date d'inscription mardi 4 décembre 2012 Statut Membre Dernière intervention 10 juin 2014 20
18 août 2013 à 20:05
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 111 Date d'inscription lundi 18 mars 2013 Statut Membre Dernière intervention 8 février 2014 9
18 août 2013 à 21:13
<?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
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 111 Date d'inscription lundi 18 mars 2013 Statut Membre Dernière intervention 8 février 2014 9
19 août 2013 à 14:37
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