[php] Droit
Résolu/Fermé
Aroeris
-
22 juil. 2009 à 12:39
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 - 26 juil. 2009 à 16:21
jjsteing Messages postés 1670 Date d'inscription vendredi 11 mai 2007 Statut Contributeur Dernière intervention 21 mai 2012 - 26 juil. 2009 à 16:21
A voir également:
- [php] Droit
- Image libre de droit gratuite google - Guide
- Easy php - Télécharger - Divers Web & Internet
- Procès-verbal en droit français - Guide
- Slash droit ✓ - Forum Programmation
- Droit utilisation musique 30 secondes - Forum Vos droits sur internet
25 réponses
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
22 juil. 2009 à 20:53
22 juil. 2009 à 20:53
le htaccess est une bonne solution, les variables de sessions le sont egalement, et tu peut aussi utiliser les variables serveur pou securiser une page, ainsi si quelqu'un tape directement l'adresse d'une page protegée si l'origine n'est pas une page de ton site il est rejetté.
Bref ces 3 options sont complémentaires
voici un lien sur les variables serveur http://www.manuelphp.com/php/reserved.variables.server.php
Bref ces 3 options sont complémentaires
voici un lien sur les variables serveur http://www.manuelphp.com/php/reserved.variables.server.php
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
25 juil. 2009 à 19:27
25 juil. 2009 à 19:27
alors essaye te fire une redirection en javascript pour voir si ca marche
if($_SESSION['visit']!=$tab[0] && $_SESSION["niveau"] != 1) { echo'script type="text/javascript"> window.location.replace(\'index.php\'); </script>'; }
C'est un debut mais je ne suis pas sur que cela suffise car admettons que je vienne sur ta page, je ne suis pas administrateur donc je serais redirigé vers la page de base que tu as mis. Par contre par exemple je suis curieux j'affiche le code source, je vois des liens auxquels je n'ai pas accès alors je les entre dans mon navigateur et si y a pas de vérification dans chaque page réservées aux admin j'y aurais accès.
Pour ma part je fais en haut des page "reservée":
//admettons que les admin ait pour niveau 1 et le reste 0, je récuperer de ma bdd le niveau de la //personne que je stock que la session niveau.
if ($_SESSION['niveau'] =1)
{
//tout le code de ta page
}
else echo 'Vous n'avez pas accès à cette page';
Tu peux faire ainsi après il doit y avoir d'autres manières de procéder que je ne connais pas.
Pour ma part je fais en haut des page "reservée":
//admettons que les admin ait pour niveau 1 et le reste 0, je récuperer de ma bdd le niveau de la //personne que je stock que la session niveau.
if ($_SESSION['niveau'] =1)
{
//tout le code de ta page
}
else echo 'Vous n'avez pas accès à cette page';
Tu peux faire ainsi après il doit y avoir d'autres manières de procéder que je ne connais pas.
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
22 juil. 2009 à 14:58
22 juil. 2009 à 14:58
Non, car si tu n as pas acces, le code en php ne s affichera pas.. il n aura que le code html donc la redirection ;)
de plus, tu peux protéger l acces à tes fichier php via le htaccess pour etre encore plus sur qu un esprit mal veuillant accedant en direct sur ton site (et non via un navigateur) ne puisse pas y acceder...
cf https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/918580-protegez-un-dossier-avec-un-htaccess
de plus, tu peux protéger l acces à tes fichier php via le htaccess pour etre encore plus sur qu un esprit mal veuillant accedant en direct sur ton site (et non via un navigateur) ne puisse pas y acceder...
cf https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/918580-protegez-un-dossier-avec-un-htaccess
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
22 juil. 2009 à 14:47
22 juil. 2009 à 14:47
Personnelemnt, lorque l utilisateur se logue, je lui attribut un groupe que je met dans $_SESSION['group']... en loccurence, si je me connect ou un admin, $_SESSION['group']='admin' donc la premiere ligne de mon fichier php appele une fonction qui verifie cela, sinon, je le renvoie sur la page index ;)
Effectivement si tu veux rediriger faut mieux faire le test inverse, en debut de page:
//si le niveau n'est pas celui des admin
if ($_SESSION['niveau'] != 1)
{
//voila comment fonction la redirection
header("location: tapage.php");
}
Ainsi, il sera directement redirigé s'il n'as pas accès à la page.
//si le niveau n'est pas celui des admin
if ($_SESSION['niveau'] != 1)
{
//voila comment fonction la redirection
header("location: tapage.php");
}
Ainsi, il sera directement redirigé s'il n'as pas accès à la page.
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
22 juil. 2009 à 14:55
22 juil. 2009 à 14:55
on est bien d accord :D ;)
Merci pour le tuto, je connaissais pas du tout le htaccess ! (debutant hihi)
Et d'accord pour la verification je vais faire aussi faire comme ça dans ce cas !
Et d'accord pour la verification je vais faire aussi faire comme ça dans ce cas !
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
22 juil. 2009 à 17:52
22 juil. 2009 à 17:52
le mieux c'est de faire les 2... $_Session[] pour les personnes qui se connectent à ton site via http et le htaccess pour ceux qui essai un peu plus en profondeur ;)
Par les deux tu vx dire l'histoire des niveaux, et ma façon de faire ?
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
22 juil. 2009 à 20:44
22 juil. 2009 à 20:44
par les 2 je veux dire tester en 1er si l utilisateur connecter est admin, et mettre en place le htaccess ;)
J'ai pensé a une chose, pour l'utilisateur qui viens sur le site, mais qui ne se connecte pas, faut il creer un utilisateur banal, auquel on lui attribue des droits jusqu'a ce qu'il se log ?
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
23 juil. 2009 à 21:28
23 juil. 2009 à 21:28
Ben oui dansta table user tu a probablememnt defini des niveaux d'acces (admin, super admin,etc...)
hé bien dans ton script php tu met par defaut visiteur par exemple, sans aucun droit, dans une boucle switch
hé bien dans ton script php tu met par defaut visiteur par exemple, sans aucun droit, dans une boucle switch
Et sinon, pour le deuxieme probleme concernant les header, j'ai cette erreur
"Warning: Cannot modify header information - headers already sent by (...)"
J'ai lus plein de choses sur ça mais j'ai rien compris, concretement je dois faire quoi ?
"Warning: Cannot modify header information - headers already sent by (...)"
J'ai lus plein de choses sur ça mais j'ai rien compris, concretement je dois faire quoi ?
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
25 juil. 2009 à 18:55
25 juil. 2009 à 18:55
tu doit avoir un echo avant
Non ya pas de "echo"
Code :
<?php
//connexion au serveur
$cnx = mysql_connect("***", "***","**") ;
//sélection de la base de données
$db = mysql_select_db("***") ;
$verif="select login from admin where login='".$_SESSION['visit']."'";
$req=mysql_query($verif);
$tab=mysql_fetch_array($req);
if($_SESSION['visit']!=$tab[0] && $_SESSION["niveau"] != 1)
{
header("location: index.php");
}
?>
Cependant, j'ai un index.php, avec d'autres pages qui sont inclues via la method GET. Je sais pas si cette info peut servir.
Code :
<?php
//connexion au serveur
$cnx = mysql_connect("***", "***","**") ;
//sélection de la base de données
$db = mysql_select_db("***") ;
$verif="select login from admin where login='".$_SESSION['visit']."'";
$req=mysql_query($verif);
$tab=mysql_fetch_array($req);
if($_SESSION['visit']!=$tab[0] && $_SESSION["niveau"] != 1)
{
header("location: index.php");
}
?>
Cependant, j'ai un index.php, avec d'autres pages qui sont inclues via la method GET. Je sais pas si cette info peut servir.
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
25 juil. 2009 à 19:05
25 juil. 2009 à 19:05
a tu des include avant ?
La page qui contient ce code est elle meme inclue dans index.php, donc oui il y a des includes avant.
Mais non dans index.php il n'ya pas de "echo".
il est possible que certaine page que j'inclue ont leur script qui comence de cette maniere :
Code:
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
Mais non dans index.php il n'ya pas de "echo".
il est possible que certaine page que j'inclue ont leur script qui comence de cette maniere :
Code:
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
26 juil. 2009 à 08:59
26 juil. 2009 à 08:59
<html>
<head>
<title></title>
</head>
<body>
</body>
</html>
si tu as ce code avant donc le header est déjà déclarer !!! et c'est pour cela que header("location: index.php"); ne fonctionne pas !!
<head>
<title></title>
</head>
<body>
</body>
</html>
si tu as ce code avant donc le header est déjà déclarer !!! et c'est pour cela que header("location: index.php"); ne fonctionne pas !!
Ben ça m'affiche
'script type="text/javascript">
window.location.replace(\'index.php\');
</script>'
au lieu de me rediriger, et affiche la page complète alors que c'est sensé me rediriger
'script type="text/javascript">
window.location.replace(\'index.php\');
</script>'
au lieu de me rediriger, et affiche la page complète alors que c'est sensé me rediriger
J'ai vu que tu avais oublier "<" au debut donc mea culpa, mais sinon ça ne marche pas , je ne suis pas rediriger : /
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
352
26 juil. 2009 à 06:28
26 juil. 2009 à 06:28
oupss, desolé,ca t'affiche quoi exactement ? la meme page ou un msg d'erreur ?
jjsteing
Messages postés
1670
Date d'inscription
vendredi 11 mai 2007
Statut
Contributeur
Dernière intervention
21 mai 2012
181
26 juil. 2009 à 09:11
26 juil. 2009 à 09:11
perso..mon site est construit comme cela , si ca peut te donner une piste :
index.php :
<?php
require_once ("Main.php");
AfficherTableEntiere();
?>
Main.php :
<?php
function AfficherTableEntiere(){
$Html="
<html>
<head>
<title></title>
</head>
<body>";
$Html.="</body>
</html>";
if($_SESSION['visit']!=$tab[0] && $_SESSION["niveau"] != 1)
{
header("location: index.php");
exit();
}else{
// j inclus la page à afficher dans $Html et puis...
echo $Html;
}
?>
}
index.php :
<?php
require_once ("Main.php");
AfficherTableEntiere();
?>
Main.php :
<?php
function AfficherTableEntiere(){
$Html="
<html>
<head>
<title></title>
</head>
<body>";
$Html.="</body>
</html>";
if($_SESSION['visit']!=$tab[0] && $_SESSION["niveau"] != 1)
{
header("location: index.php");
exit();
}else{
// j inclus la page à afficher dans $Html et puis...
echo $Html;
}
?>
}