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

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