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 19252 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


A voir également:

7 réponses

Neliel Messages postés 6146 Date d'inscription   Statut Contributeur Dernière intervention   1 693
 
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.
0
lolosb Messages postés 292 Date d'inscription   Statut Membre Dernière intervention   32
 
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
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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 } ?>
0
Neliel Messages postés 6146 Date d'inscription   Statut Contributeur Dernière intervention   1 693
 
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();
}


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lolosb Messages postés 292 Date d'inscription   Statut Membre Dernière intervention   32
 
merci,
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?
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Au tout début de ta page.
Remplace example.com par ton domaine et "<!-- contenu -->" par le contenu de la page à protéger.
0
Neliel Messages postés 6146 Date d'inscription   Statut Contributeur Dernière intervention   1 693
 
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.
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
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.
0
Neliel Messages postés 6146 Date d'inscription   Statut Contributeur Dernière intervention   1 693
 
@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...
0
lolosb Messages postés 292 Date d'inscription   Statut Membre Dernière intervention   32
 
pas grave, =)
Merci comme-même
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
@Neliel : Je ne connais pas non plus de serveurs désactivant les sessions, mais c'est possible de le faire.
0
lolosb Messages postés 292 Date d'inscription   Statut Membre Dernière intervention   32
 
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...

@+
0