[PHP] cacher page visiteurs

Résolu
Bonjour,

J'aimerais protéger la lecture de certaine page des visiteurs non-connecté à mon site.
J'ai pensé a faire cette fonction que je déclatre dans le header mais elle ne fonctionne pas.

function authentification()
{
	$page_array = array (
	"admin",
	"signer"
	);
	if (session_is_registered("authentification") AND $_GET['page'] == $page_array[$_GET['page']])
	{
		header("Location:accueil-intru.html");
	}
}


Quelqu'un peut-il m'aider?
--
L'amour, c'est comme les spaghettis; quand c'est mou, c'est cuit. (proverbe belge)

7 réponses

  1. Je sais comment marche les sessions, ce que je ne comprend pas c'est pourquoi mon script ne fonctionne pas.
    1. hya alors ça ne marche pas comme ça les sessions php

      hormis la page de login ou tu as session_start();
      et $_SESSION['variable_sesssion']="blabla";
      si l'authentif est réussie

      pour toutes les autres pages, tout au début du code tu dois avoir:

      <?php
      session_start();
      if(!isset($_SESSION['blabla']) || $_SESSION['blabla']==""){
      	header("Location:index.php"); //si pas authentifié on affiche la page d'authentification
      	exit;
      }else{
      ?>
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
      <head>
      
      ta page html
      
      
      <?php
      }
      ?>
      
      1. sur mon site puisque j'utilise qu'une seule page index (la même pour toutes mes pages, je fais autrement.
        les pages qui sont dans l'array "$page_array" sont celle où seul les personne connecté peuvent accéder.
        Si c'est ceci qui te gène :
        session_is_registered("authentification")

        C'est juste le nom de la session mais on peut le remplacer par $_SESSION['blabla'] si tu veux, ça ne change rien.
        Donc je suppose que c'est avec l'array que ça ne fonctionne pas. Mais où?
        1. Bonjour

          $page_array[$_GET['page']] n'est pas défini
          ce qui est défini, c'est $page_array[0] qui vaut 'admin', et $page_array[1] qui vaut 'signer'
          Mais quand $_GET['page'] vaut admin, ou signer, ou autre chose, tu testes si 'admin'== $page_array['admin'] ou si 'signer'== $page_array['signer'] etc... alors que $page_array['admin'] et $page_array['signer'] ne sont aps définis