Membres


Pas encore membre ?
inscrivez-vous ici

Connexion :
Login
Code
Mot de passe perdu ?
Liste des membres

Restreindre l'acces à une page

Restreindre l'acces à une page


Pages : [1] 2 3 4

Restreindre l'acces à une page     Posté le 14/03/2006 à 00:00
BuzZ
Membre
BuzZ
Site perso
69 posts
Inscrit le : 8/03/2006
Salut !

Je cherche à limiter l'acces à une page à certains utilisateurs.

J'ai voulu passer par un fichier .htaccess mais apparemment, ça ne marche pas pour une page qui est chargée dans une autre page via un include.

y'a un truc spécial à faire dans le .htaccess ou je dois proceder autrement ?

merci !

________________________
groumpf !
 
Réponse à : Restreindre l'acces à une page     Posté le 14/03/2006 à 17:10
sky
Administrateur
Avatar
Site perso
4188 posts
Inscrit le : 13/08/2003
Salut

Tu peut mettre un htaccess, et ensuite controller ce que tu include.

Exemple :
- tu protège /admin/ avec un .htaccess
- tu fais passer je suppose une page dans l'url genre : index.php?page=unepage

Dans la page qui fais l'include, tu doit tester si la variable $_GET['page'] contient /admin ou pas.

Adpate selon tojn cas bien sur ^^

Sinon, tu fais une liste de page absolu dans un tablea de ce gout :
$_lespages=array(
'accueil'=>'accueil.php',
'forum'=>'forum.html',
'autrepage'=>'unrepertoire/autrepage.php'
);

ensuite, tu test pour vérifier que la page demandé existe bien dans ce tableau.

Y'a pas mal d'info ici :
http://www.graphiks.net/forum/lecture-1-1105-0.html

_______________________
Graphiks : Cours PHP
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Réponse à : Restreindre l'acces à une page     Posté le 14/03/2006 à 18:03
BuzZ
Membre
Avatar
Site perso
69 posts
Inscrit le : 8/03/2006
Beh le pb, c'est que le .htaccess demande bien un login quand tu vas directement sur la page http://monsite.toto.html mais pas via l'include.

Et je dois limiter le .htaccess à un fichier et non un répertoire pour plus de facilité.

En fait ma question était de savoir s'il était possible de spécifier autre chose qu'une page ou un repertoire dans le htaccess pour qu'il demande un login lors du chargement de la page "index.php?page=unepage"

_______________________
groumpf !
 
Réponse à : Restreindre l'acces à une page     Posté le 14/03/2006 à 20:11
3run0
Administrateur
Avatar
1747 posts
Inscrit le : 1/10/2004
index.php?page=unepage si tu met cette url dans ton htaccess, ça marche pas?

_______________________
_ww.gabian-herault.com
 
Réponse à : Restreindre l'acces à une page     Posté le 14/03/2006 à 20:50
BuzZ
Membre
Avatar
Site perso
69 posts
Inscrit le : 8/03/2006
nan, je passe à travers :/=

c'est pas glop

_______________________
groumpf !
 
Réponse à : Restreindre l'acces à une page     Posté le 15/03/2006 à 09:37
BuzZ
Membre
Avatar
Site perso
69 posts
Inscrit le : 8/03/2006
Sinon j'ai essayé le script de securisation via l'instruction SESSION fourni par sky.

J'ai eu quelques erreurs dues à des fautes de frappe (paaas biiiien smiley ).
J'ai tenté de les corriger mais ça cagouille...
J'ai beau rentrer le bon login/pwd, je me fait jeter.

j'attaque donc une page avec ce code:

<form action="identification.php" method="post">
Login :<input type="text" name="login" value=""><br>
Password :<input type="password" name="mdp" value=""><br>
<input type="submit" value="envoyer">
</form>


et le code qui valide le user/pwd


<?php
$rr
="\n\r";
$_admin_pass='buzz';
$_admin_login='test';

if(isset(
$_POST['login']) AND isset($_POST['mdp'])) 
    
    { 
    
$login=htmlentities($_POST['login']); 
    
$mdp=htmlentities($_POST['mdp']);
  
        if(
$_admin_login==$login AND $_admin_pass==$mdp)
    
            {
              
session_start();
            
$_SESSION['_login']=$login;
            
$_SESSION['_pass']=$mdp;
            echo 
'Vous est bien connecté. <br />';
            echo 
'<a href="g05.php">Votre page admin</a>';
              }
              
        else
            {
            echo 
'Mauvais login ou mot de passe <br /><br />';
            include(
"form.html");
            exit;
            }
  
    }
?>


vous voyez vous ce qui ne vas pas ?

ps: et à quoi ça sert le $rr ???

_______________________
groumpf !
 
Réponse à : Restreindre l'acces à une page     Posté le 15/03/2006 à 09:49
BuzZ
Membre
Avatar
Site perso
69 posts
Inscrit le : 8/03/2006
Je vais copier 100 fois "je dois bien ouvrir mes nieux avant de débuguer du code et de lancer un appel à l'aide"

j'ai pas mis les user/mdp dans les bonnes variables smiley



_______________________
groumpf !
 
Réponse à : Restreindre l'acces à une page     Posté le 15/03/2006 à 10:18
BuzZ
Membre
Avatar
Site perso
69 posts
Inscrit le : 8/03/2006
Pour la peine, le code corrigé.

Le formulaire :

<form action="identification.php" method="post">
Login :<input type="text" name="login" value=""><br>
Password :<input type="password" name="mdp" value=""><br>
<input type="submit" value="envoyer">
</form>


la page de contrôle :


<?php
$rr
="\n\r";
$_admin_login='buzz';
$_admin_pass='qkuq6s55';

if(isset(
$_POST['login']) AND isset($_POST['mdp'])) 
    
    { 
    
$login=htmlentities($_POST['login']); 
    
$mdp=htmlentities($_POST['mdp']);
  
        if(
$_admin_login==$login AND $_admin_pass==$mdp)
    
            {
              
session_start();
            
$_SESSION['_login']=$login;
            
$_SESSION['_pass']=$mdp;
            echo 
'Vous êtes bien connecté. <br />';
            echo 
'<a href="g05.php">Votre page</a>';
              }
              
        else
            {
            echo 
'Login ou mot de passe incorrect<br /><br />';
            include(
"form.html");
            exit;
            }
  
    }
?>


et le code à insérer dans les pages à protéger...

<?php
session_start
();
if(!isset(
$_SESSION['_login']) OR !isset($_SESSION['_pass'])){
  echo 
'Vous devez vous connecter !<br><br>';
  include(
"form.html");
  exit;
}
?>



_______________________
groumpf !
 
Réponse à : Restreindre l'acces à une page     Posté le 15/03/2006 à 11:07
sky
Administrateur
Avatar
Site perso
4188 posts
Inscrit le : 13/08/2003
Je te conseil de YOUJOURS crypter le mot de pass et le login aussi tant que tu y est.

Faire un test pour vérifier que la variable de session existe n'est pas vraiment le super moyen ... bien que déjà un bon début.

Essaye ceci :
pour la connexion
<?php
$rr
="\n\r";
$_admin_login='buzz'
$_admin_pass='qkuq6s55';

if(isset(
$_POST['login']) AND isset($_POST['mdp'])) 
    
    { 
    
$login=htmlentities($_POST['login']); 
    
$mdp=htmlentities($_POST['mdp']);
  
        if(
$_admin_login==$login AND $_admin_pass==$mdp)
    
            {
              
session_start();
            
$_SESSION['_login']=md5($login);
            
$_SESSION['_pass']=md5($mdp);
            echo 
'Vous êtes bien connecté. <br />';
            echo 
'<a href="g05.php">Votre page</a>';
              }
              
        else
            {
            echo 
'Login ou mot de passe incorrect<br /><br />';
            include(
"form.html");
            exit;
            }
  
    }
?>


Ensuite, la vérification :
<?php
session_start
();
$_admin_login=md5('buzz');
$_admin_pass=md5('qkuq6s55');
if(
$_SESSION['_login']!=$_admin_login AND $_SESSION['_pass']!=$_admin_pass){
  echo 
'Vous devez vous connecter !<br><br>';
  include(
"form.html");
  exit;
}
?>


Il faut maintenant que tu mette ton login et mot de pass sur chaque page ... mais tu peut aussi créer une page login.php et l'inclure juste comme ceci :
<?php
session_start
();
include(
'login.php');
if(
$_SESSION['_login']!=$_admin_login AND $_SESSION['_pass']!=$_admin_pass){
  echo 
'Vous devez vous connecter !<br><br>';
  include(
"form.html");
  exit;
}
?>


_______________________
Graphiks : Cours PHP
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Réponse à : Restreindre l'acces à une page     Posté le 15/03/2006 à 11:55
BuzZ
Membre
Avatar
Site perso
69 posts
Inscrit le : 8/03/2006
Merci ! Je vais tester ça !

Sinon ça vaut quoi côté sécurité ce code ?
quelqu'un de l'exterieur a-t-il moyen de voir la source des fichiers où sont mis les user/pwd en clair ?

_______________________
groumpf !
 
Réponse à : Restreindre l'acces à une page     Posté le 15/03/2006 à 12:14
sky
Administrateur
Avatar
Site perso
4188 posts
Inscrit le : 13/08/2003
si tu les mes en temps que variable non aucun soucis.
Si tu les met en claire dans un fichier .txt ça craint smiley

_______________________
Graphiks : Cours PHP
Image
=> à quoi sert internet explorer ?
=> à télécharger firefox
 
Réponse à : Restreindre l'acces à une page     Posté le 15/03/2006 à 12:28
BuzZ
Membre
Avatar
Site perso
69 posts
Inscrit le : 8/03/2006
D'akodak !

merci Sky !

ps: je sais plus dans quelle section j'avais trouvé ce code. Comme il y avait des erreurs dedans, si vous pouviez le mettre à jour pour les autres smiley

au boulot, au boulot... smiley smiley

edit : j'ai retrouvé l'original -> http://www.graphiks.net/cours/php/26-proteger-une-page-avec-les-sessions-php.html

_______________________
groumpf !
 
Réponse à : Restreindre l'acces à une page     Posté le 15/03/2006 à 13:06
BuzZ
Membre
Avatar
Site perso
69 posts
Inscrit le : 8/03/2006
Euuuh question bête.

Pour le dernier pavé où il y a l'include de la page login.php, je mets quoi dans cette page ?

les variables

$_admin_login=md5('buzz');
$_admin_pass=md5('qkuq6s55');
???

_______________________
groumpf !
 
Réponse à : Restreindre l'acces à une page     Posté le 15/03/2006 à 17:07
BuzZ
Membre
Avatar
Site perso
69 posts
Inscrit le : 8/03/2006
Euuh dis sky, y'aurai pas une coquille dans le code ?

<?php
session_start
();
include(
'login.php');
if(
$_SESSION['_login']==$_admin_login AND $_SESSION['_pass']==$_admin_pass){
  echo 
'Vous devez vous connecter !<br><br>';
  include(
"form.html");
  exit;
}
?>


Si j'ai bien compris, si le user/pwd est correct alors on renvoi sur le formulaire ?

Mais pourquoi tant de haine ?

_______________________
groumpf !
 
Réponse à : Restreindre l'acces à une page     Posté le 15/03/2006 à 19:39
3run0
Administrateur
Avatar
1747 posts
Inscrit le : 1/10/2004
ça serais plutot ça:

<?php
session_start
();
include(
'login.php');
if(
$_SESSION['_login']!=$_admin_login || $_SESSION['_pass']!=$_admin_pass){
  echo 
'Vous devez vous connecter !<br><br>';
  include(
"form.html");
  exit;
}
?>


bon je debarque là sans avoir analysé le code, alors verifie ;)

_______________________
_ww.gabian-herault.com
 
Réponse à : Restreindre l'acces à une page     Posté le 15/03/2006 à 22:09
BuzZ
Membre
Avatar
Site perso
69 posts
Inscrit le : 8/03/2006
Ouaip !

C'est bien ça ! J'ai mis un OR à la place des || mais c'est pareil la même chose smiley



_______________________
groumpf !
 
Réponse à : Restreindre l'acces à une page     Posté le 16/03/2006 à 01:03
BuzZ
Membre
Avatar
Site perso
69 posts
Inscrit le : 8/03/2006
Euuh j'embete encore...

j'ai essayé de remplacer cette ligne
  echo '<a href="g05.php">Votre page</a>'


par
include("index.php?page=g05.php")


Histoire qu'après l'autentification la page s'insère dans le site directement.

Mais evidemment ça marche pas.
quelqu'un a une petite idée ?

_______________________
groumpf !
 
Pages : [1] 2 3 4
Vous n'est pas connecté en temps que membre, parceque j'en ai marre du spam, SEUL les membres peuvent poster des messages sur le forum.

Nous  -  Plan du site  -  Informations légale  -  Contact  -  © Graphiks.net