Contrôle de rédiger
Résolu/Fermé
lolosb
Messages postés
292
Date d'inscription
samedi 31 octobre 2009
Statut
Membre
Dernière intervention
20 février 2015
-
26 juin 2010 à 16:52
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 26 juin 2010 à 18:46
avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 - 26 juin 2010 à 18:46
7 réponses
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 690
26 juin 2010 à 16:59
26 juin 2010 à 16:59
Bonjour,
Tu peux faire une variable de session que tu initialise sur ta page d'accueil ou après ta page d'identification (si tu en as une).
Ensuite tu fera un test d'existence de cette variable sur tes autres pages... du coup, si quelqu'un tente d'arriver sur une page de ton site sans passer par ta page d'accueil, il se verra rejeter.
Tu peux faire une variable de session que tu initialise sur ta page d'accueil ou après ta page d'identification (si tu en as une).
Ensuite tu fera un test d'existence de cette variable sur tes autres pages... du coup, si quelqu'un tente d'arriver sur une page de ton site sans passer par ta page d'accueil, il se verra rejeter.
lolosb
Messages postés
292
Date d'inscription
samedi 31 octobre 2009
Statut
Membre
Dernière intervention
20 février 2015
32
26 juin 2010 à 17:06
26 juin 2010 à 17:06
merci,
mais j'ai le problème que j'ai l'url http://monsite.com/message/afficher.php
et j'ai une page http://monsite.com/message/rediger.php.php
et j'ai une session qui es met dans l'url http://monsite.com/message/rediger.php?modifier_news=1
mais je veux qu'on ne peux pas accéder à la page http://monsite.com/message/rediger.php , seulement à la page http://monsite.com/message/rediger.php?modifier_news=1
mais j'ai le problème que j'ai l'url http://monsite.com/message/afficher.php
et j'ai une page http://monsite.com/message/rediger.php.php
et j'ai une session qui es met dans l'url http://monsite.com/message/rediger.php?modifier_news=1
mais je veux qu'on ne peux pas accéder à la page http://monsite.com/message/rediger.php , seulement à la page http://monsite.com/message/rediger.php?modifier_news=1
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 504
26 juin 2010 à 17:08
26 juin 2010 à 17:08
Salut.
La variable PHP $_SERVER['HTTP_REFERER'] contient l'URL complète de la provenance. Si l'utilisateur tombe sur la page en tapant directement l'URL, cette variable n'existe pas.
Si tu veux interdire l'accès aux personnes ne provenant pas de ton site :
La variable PHP $_SERVER['HTTP_REFERER'] contient l'URL complète de la provenance. Si l'utilisateur tombe sur la page en tapant directement l'URL, cette variable n'existe pas.
Si tu veux interdire l'accès aux personnes ne provenant pas de ton site :
if (!isset($_SERVER['HTTP_REFERER']) || !preg_match('#^http://example.com/#i',$_SERVER['HTTP_REFERER']) ) { echo 'Vous n\'êtes pas autorisé à afficher le contenu de cette page'; } else { ?> <!-- Contenu --> <?php } ?>
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 690
26 juin 2010 à 17:13
26 juin 2010 à 17:13
Etrange, utilises-tu bien les variable de sessions du genre $_SESSION['nom'] ?
En sommes tu fais, par exemple sur ta page d'accueil:
Et sur toutes tes autres pages, au début:
En sommes tu fais, par exemple sur ta page d'accueil:
session_start(); $_SESSION['nom'] = "OK";
Et sur toutes tes autres pages, au début:
session_start(); if(!isset($_SESSION['nom'])) { echo "Erreur! Accès non autorisé"; break; //ou exit(); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lolosb
Messages postés
292
Date d'inscription
samedi 31 octobre 2009
Statut
Membre
Dernière intervention
20 février 2015
32
26 juin 2010 à 17:14
26 juin 2010 à 17:14
merci,
je mais où le code
je mais où le code
if (!isset($_SERVER['HTTP_REFERER']) || !preg_match('#^http://example.com/#i',$_SERVER['HTTP_REFERER']) ) { echo 'Vous n\'êtes pas autorisé à afficher le contenu de cette page'; } else { ?> <!-- Contenu --> <?php } ?>et je remplace quoi par quoi?
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 504
26 juin 2010 à 17:17
26 juin 2010 à 17:17
Au tout début de ta page.
Remplace example.com par ton domaine et "<!-- contenu -->" par le contenu de la page à protéger.
Remplace example.com par ton domaine et "<!-- contenu -->" par le contenu de la page à protéger.
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 690
26 juin 2010 à 17:20
26 juin 2010 à 17:20
Ah! Tu utilises déjà les variables server.
Cela peut fonctionner aussi cependant d'après cette doc:
http://php.net/manual/fr/reserved.variables.server.php
C'est précisé que tous les serveurs web ne renvoient pas toutes les info de cette variable.
Met ce code en commentaire (pour ne pas le perdre) et remplace le par ce que j'ai mis plus haut
comme ceci:
n'oublie pas d'initialiser la variable $_SESSION['nom'] sur la première page de ton site, sinon personne ne pourra plus y accéder.
Cela peut fonctionner aussi cependant d'après cette doc:
http://php.net/manual/fr/reserved.variables.server.php
C'est précisé que tous les serveurs web ne renvoient pas toutes les info de cette variable.
Met ce code en commentaire (pour ne pas le perdre) et remplace le par ce que j'ai mis plus haut
comme ceci:
<?php session_start(); if(!isset($_SESSION['nom'])) { echo 'Vous n\'êtes pas autorisé à afficher le contenu de cette page'; } else { ?> <!-- Contenu --> <?php } ?>
n'oublie pas d'initialiser la variable $_SESSION['nom'] sur la première page de ton site, sinon personne ne pourra plus y accéder.
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 504
26 juin 2010 à 17:27
26 juin 2010 à 17:27
Tous les serveurs n'acceptent pas forcément les sessions ;)
En tout cas, les hébergeurs ne fournissant pas les variables $_SERVER sont très rares, je n'en connais même aucun.
En tout cas, les hébergeurs ne fournissant pas les variables $_SERVER sont très rares, je n'en connais même aucun.
Neliel
Messages postés
6146
Date d'inscription
jeudi 9 juillet 2009
Statut
Contributeur
Dernière intervention
20 mars 2017
1 690
26 juin 2010 à 17:37
26 juin 2010 à 17:37
@avion-f16: Ah ? Je l'ignorais... d'un autre côté, les seules sites que j'ai fais tournent en local pas sur le net... Merci de l'info.
@lolosb: Désolé, dans ce cas je sèche...
@lolosb: Désolé, dans ce cas je sèche...
lolosb
Messages postés
292
Date d'inscription
samedi 31 octobre 2009
Statut
Membre
Dernière intervention
20 février 2015
32
26 juin 2010 à 17:42
26 juin 2010 à 17:42
pas grave, =)
Merci comme-même
Merci comme-même
avion-f16
Messages postés
19249
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
15 juin 2024
4 504
26 juin 2010 à 18:46
26 juin 2010 à 18:46
@Neliel : Je ne connais pas non plus de serveurs désactivant les sessions, mais c'est possible de le faire.
lolosb
Messages postés
292
Date d'inscription
samedi 31 octobre 2009
Statut
Membre
Dernière intervention
20 février 2015
32
26 juin 2010 à 17:28
26 juin 2010 à 17:28
Merci, mais ça ne marche pas...
Merci comme-même...
Mais c'est pas trop grave! De toute façon, c'est une page protégée par un htpasswd et il y a que une personne (et moi) qui ont accès... je peux lui expliquer de ne pas y accéder...
@+
Merci comme-même...
Mais c'est pas trop grave! De toute façon, c'est une page protégée par un htpasswd et il y a que une personne (et moi) qui ont accès... je peux lui expliquer de ne pas y accéder...
@+