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


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
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 samedi 31 octobre 2009 Statut Membre Dernière intervention 20 février 2015 32
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
0
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
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 jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 1 690
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:

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 samedi 31 octobre 2009 Statut Membre Dernière intervention 20 février 2015 32
26 juin 2010 à 17:14
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 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
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.
0
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
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 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
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.
0
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
@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 samedi 31 octobre 2009 Statut Membre Dernière intervention 20 février 2015 32
26 juin 2010 à 17:42
pas grave, =)
Merci comme-même
0
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
@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 samedi 31 octobre 2009 Statut Membre Dernière intervention 20 février 2015 32
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...

@+
0