IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Interdire l'acces à une page à la racine du site.


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Points : 132
    Points
    132
    Par défaut Interdire l'acces à une page à la racine du site.
    Bonjour,

    Je m'explique. J'ai une page qui s'appelle index.php (qui est mon template) dans l'aquelle, j'appel mes autres pages en faisant un [$_GET['page']. Dans un array j'autorise les pages à afficher ou non et je fais une redirection si non autorisé.

    cf code ci dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr-FR" lang="fr-FR">
     
    <head>
     
    <meta name="description" content="" />
     
    <meta name="keywords" content="" />
     
    <meta name="author" content="" />
     
    <link rel="stylesheet" type="text/css" href="style.css" media="screen" />
     
    <title>CMDB</title>
     
    </head>
     
    	<body>
     
    		<div id="conteneur">
     
    <?php require('includes/header.php'); ?>
     
    			<div id="contenu"> 
     
    				<?php 
    				require('includes/infos.php');
     
    				header('Content-Type: text/html; charset=iso-8859-1');
     
    				$pageOK = array
     
    				(
    					'accueil' => 'pages/accueil.php', 
     
    					'all_server' => 'pages/all_server.php',
     
    				);
     
    				if ( (isset($_GET['page'])) && (isset($pageOK[$_GET['page']])) ) 
     
    				{
     
    					require($pageOK[$_GET['page']]);
     
    				} 
     
    				 else 
     
    				{
     
    					require('accueil.php');
    				}
     
    				mysql_close();
     
    				?>
     
    			</div><!-- End #contenu-->
     
    <?php require('includes/footer.php'); ?>
     
    		</div> <!-- End #conteneur -->	
     
    	</body>
     
    </html>
    Ma page all_server.php contient du code ex :

    Jusque la pas de problème, ce qui me donne des urls de type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://www.monsite.com/index.php?page=all_server
    Si je fais appel à cette url, ma mise en page s'effectue car elle est appellée dasn mon template index.php.

    Mais si je l'appelle en tapant l'url directement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://www.monsite.com/all_server.php
    Ca m'affiche "toto" sur une page blanche san mise en page, ce quoi est normal.

    Est t'il possible d'interdire
    de taper http://www.monsite.com/all_server.php par exemple ou une autre solution svp ??

    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    comme $pageOK est une variable définie uniquement dans index.php, tu peux simplement tester son existence dans les autres fichiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php 
    if(!isset($pageOK)) {
    header('location: ./index.php');
    exit;
    }
    ?>
    Si le fichier est appelé en include dans index.php, ça passe, sinon, ça sort (redirection vers la page index.php) !

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 284
    Points : 132
    Points
    132
    Par défaut
    c'est parfait, merci pour ton aide précieuse sur mes différents post.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Interdire l'accès à une page après une certaine date
    Par Artalatakt dans le forum Débuter
    Réponses: 2
    Dernier message: 19/11/2014, 10h00
  2. Interdire l'accès à une page
    Par gwendoline-bricout dans le forum Langage
    Réponses: 35
    Dernier message: 15/11/2013, 11h57
  3. Réponses: 3
    Dernier message: 10/12/2008, 12h38
  4. interdire l'accès à une page directement
    Par nickg dans le forum ASP
    Réponses: 13
    Dernier message: 29/12/2007, 15h12
  5. Réponses: 4
    Dernier message: 28/09/2006, 13h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo