Pages : [
1]
2 3 4
Restreindre l'acces à une page Posté le 14/03/2006 à 00:00
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
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
=> à quoi sert internet explorer ?
=> à télécharger firefox
Réponse à : Restreindre l'acces à une page Posté le 14/03/2006 à 18:03
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
3run0Administrateur
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
nan, je passe à travers :/=
c'est pas glop
_______________________
groumpf !
Réponse à : Restreindre l'acces à une page Posté le 15/03/2006 à 09:37
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

).
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
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
_______________________
groumpf !
Réponse à : Restreindre l'acces à une page Posté le 15/03/2006 à 10:18
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
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
=> à quoi sert internet explorer ?
=> à télécharger firefox
Réponse à : Restreindre l'acces à une page Posté le 15/03/2006 à 11:55
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
si tu les mes en temps que variable non aucun soucis.
Si tu les met en claire dans un fichier .txt ça craint

_______________________
Graphiks :
Cours PHP
=> à quoi sert internet explorer ?
=> à télécharger firefox
Réponse à : Restreindre l'acces à une page Posté le 15/03/2006 à 12:28
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
au boulot, au boulot...
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
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
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
3run0Administrateur
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
Ouaip !
C'est bien ça ! J'ai mis un OR à la place des || mais c'est pareil la même chose
_______________________
groumpf !
Réponse à : Restreindre l'acces à une page Posté le 16/03/2006 à 01:03
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.