[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. 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
    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. 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. Je sais comment marche les sessions, ce que je ne comprend pas c'est pourquoi mon script ne fonctionne pas.