Contrôle de rédiger
Résolu
lolosb
Messages postés
292
Date d'inscription
Statut
Membre
Dernière intervention
-
avion-f16 Messages postés 19182 Date d'inscription Statut Contributeur Dernière intervention -
avion-f16 Messages postés 19182 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
existe-t-il un code HTML, PHP ou Javascript qui contrôle si on visite cette page à partir d'un lien sur une autre page ou directement avec l'url dans le navigateur? Si on vient d'une autre page, on peut accéder, sinon, on ne peut pas entrer?
Merci pour votre aide
--
bien cordialement,
Administrateur LOLOSB© productions
existe-t-il un code HTML, PHP ou Javascript qui contrôle si on visite cette page à partir d'un lien sur une autre page ou directement avec l'url dans le navigateur? Si on vient d'une autre page, on peut accéder, sinon, on ne peut pas entrer?
Merci pour votre aide
--
bien cordialement,
Administrateur LOLOSB© productions
7 réponses
-
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.
-
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 -
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 :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 } ?> -
Etrange, utilises-tu bien les variable de sessions du genre $_SESSION['nom'] ?
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 -
merci,
je mais où le codeif (!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? -
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:
<?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.
-
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...
@+