[RESOLU] Empêcher l'accès direct à une page

Viwiv33
Invité n'ayant pas de compte PHPfrance

22 sept. 2005, 16:35

Bonjour,

Je voudrai savoir comment empêcher l'accès direct à une page.

Je m'explique :

Si un internaute tape directement l'adresse d'une page dans son navigateur sans passer par les pages précédentes, des messages d'erreur sont affichés puisque les variables de session sont indéfinies.

Comment empêcher cet accès ? En configurant un fichier .htaccess ou en rajoutant un code Javascript ?

Merci.

Bien à vous,

Vincent

Tho
Eléphant du PHP | 58 Messages

22 sept. 2005, 16:50

En php, c'est faisable. Le principe est de rediriger l'utilisateur si telle variable n'existe pas.
Le plus propre est de faire un fichier exprès pour ça, que t'inclueras au début des pages à protéger.
Un exemple :
<?php
session_start();
if (!isset($_SESSION['acces']) || $_SESSION['acces']!='admin' ) {
  header("location: acces_interdit.php");
  exit;
}
session_write_close(); // fermeture de la session pour éviter les warning si t'en ré-ouvres une dans ta page.
?>
Idée d'amélioration : conserver en session le nom de la page courante, rediriger l'utilisateur vers la page de login, puis le ramener sur cette page si son identification est valide.