Redirection si non connecté

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

  1. 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
    1. 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
      1. 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
      2. 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
      3. <?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
      4. 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
      5. 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