Redirection en fonction de la page demandée

Clems24 Messages postés 5 Date d'inscription vendredi 13 août 2010 Statut Membre Dernière intervention 16 août 2010 - 14 août 2010 à 17:32
Clems24 Messages postés 5 Date d'inscription vendredi 13 août 2010 Statut Membre Dernière intervention 16 août 2010 - 16 août 2010 à 14:04
Bonjour,

J'ai mis en œuvre une authentification php avec redirection.

Toutefois, j'aimerais que la redirection se fasse en fonction de la page qu'a demandé l'internaute.

C'est à dire s'il tape http://bipbip.com il s'authentifie puis il se fait redirigé sur http://bipbip.com/index.php
Mais s'il saisie http://bipbip.com/coyote/pamplemouse.php, il faut qu'il s'authentifie puis qu'il soit redirigé vers http://bipbip.com/coyote/pamplemouse.php

Merci par avance pour votre aide.

6 réponses

gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
15 août 2010 à 12:33
Bonjour,

regarde du côté de $_SERVER['PHP_SELF']

et $_SERVER['HTTP_REFERER']

a+
google est mon ami quand tu cherches quelque chose demande lui clairement
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
15 août 2010 à 14:01
Salut,

Où se situe le problème ?
Dans tes exemples il n'y a aucune redirection. De plus nous ne savons pas par quel principe tu passes pour effectuer cette authentification.

Juste pour compléter le propos de Gillardg : attention à la variable 'HTTP_REFERER', elle est une donnée utilisateur, il peut donc la modifier comme il le souhaite, et dans un nombre de cas significatifs cette variable est vide.

Cordialement,



Kohntark -
0
Clems24 Messages postés 5 Date d'inscription vendredi 13 août 2010 Statut Membre Dernière intervention 16 août 2010
15 août 2010 à 17:20
Merci pour votre intérêt.

Voici mon code :
<?php require_once('connexion.php'); ?>
<?php
/*
-----------------------------------
------ SCRIPT DE PROTECTION -------
          DBProtect V1.2
-----------------------------------
*/

session_start(); // début de session

if (isset($_POST['login'])){ // execution uniquement apres envoi du formulaire (test si la variable POST existe)
$login =  addslashes($_POST['login']); // mise en variable du nom d'utilisateur
$pass = addslashes(md5($_POST['pass'])); // mise en variable du mot de passe chiffré à l'aide de md5 (I love md5)

// requete sur la table administrateurs (on récupère les infos de la personne)
mysql_select_db($database_dbprotect, $dbprotect);
$verif_query=sprintf("SELECT * FROM utilisateurs WHERE login='$login' AND pass='$pass'"); // requête sur la base administrateurs
$verif = mysql_query($verif_query, $dbprotect) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif);


if ($utilisateur) {	// On test s'il y a un utilisateur correspondant

    session_register("authentification"); // enregistrement de la session

// déclaration des variables de session
$_SESSION['privilege'] = $row_verif['privilege']; // le privilège de l'utilisateur (permet de définir des niveaux d'utilisateur)
$_SESSION['nom'] = $row_verif['nom']; // Son nom
$_SESSION['prenom'] = $row_verif['prenom']; // Son Prénom
$_SESSION['login'] = $row_verif['login']; // Son Login
$_SESSION['pass'] = $row_verif['pass']; // Son mot de passe (à éviter)

header("Location:accueil.php"); // redirection si OK
}
else {
header("Location:index.php?erreur=login"); // redirection si utilisateur non reconnu
}
}


// Gestion de la  déconnexion
if(isset($_GET['erreur']) && $_GET['erreur'] == 'logout'){ // Test sur les paramètres d'URL qui permettront d'identifier un contexte de déconnexion
$prenom = $_SESSION['prenom']; // On garde le prénom en variable pour dire au revoir (soyons polis :-)
session_unset("authentification");
header("Location:index.php?erreur=delog&prenom=$prenom");
}
?>
<html>
<head>
<title>AUTHENTIFICATION - DBProtect</title>
<link href="styles.css" rel="stylesheet" type="text/css">
</head>

<form action="" method="post" name="connect">
   - : : : ESPACE SECURISE PAR DBProtect : : : - 


  
    <?php if(isset($_GET['erreur']) && ($_GET['erreur']  ==  "login")) { // Affiche l'erreur  ?>
     Echec d'authentification !!! > login ou mot de passe incorrect 
    <?php } ?>
    <?php if(isset($_GET['erreur']) && ($_GET['erreur']  ==  "delog")) { // Affiche l'erreur ?>
     Déconnexion réussie... A bientôt <?php echo $_GET['prenom'];?> ! 
    <?php } ?>
    <?php if(isset($_GET['erreur']) && ($_GET['erreur']  == "intru")) { // Affiche l'erreur ?>
    Echec d'authentification !!! > Aucune session n'est ouverte ou vous n'avez pas les droits pour afficher cette page
    <?php } ?>
  


  Authentification sécurisée utilisant :

    - BDD MySQL

    - Sessions PHP côté serveur 

  - Empreintes des mot de passe stockés par md5


  [lisez_moi.htm lire les instructions d'installation >>]

    [details.doc lire le fonctionnement détaillé >>]


  login,
,

----

mot de passe,
,

----


  CV webmaster et auteur du script


</form>

</html>


Le code provient du forum et il est libre d'utilisation d'après son auteur.
Merci par avance pour votre aide.
0
Clems24 Messages postés 5 Date d'inscription vendredi 13 août 2010 Statut Membre Dernière intervention 16 août 2010
15 août 2010 à 20:05
header("Location:accueil.php"); // redirection si OK

IL faut que je trouve un moyen de remplacer accueil.php par une variable qui correspond à l'URL demandé par l'internaute.

Merci par avance pour votre aide.
0

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

Posez votre question
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
16 août 2010 à 11:06
Bonjour,

mis à part header("Location:$_SERVER['HTTP_REFERER'] ");je ne vois pas comment faire , à moins de mettre en place un système qui enregistre $_SERVER['PHP_SELF'] pour ceux qui ne sont pas connectés

une variable ou un cookie à toi de voir



a+
google est mon ami quand tu cherches quelque chose demande lui clairement
0
Clems24 Messages postés 5 Date d'inscription vendredi 13 août 2010 Statut Membre Dernière intervention 16 août 2010
16 août 2010 à 14:04
Encore merci pour ton aide je suis arrivé à faire la redirection comme je le désirais.

Désolé de t'avoir autant sollicité mais mon niveau de php et proche du néant...

Enfin, je me demandais comment faire une itération correcte pour qu'il affiche la bonne redirection en fonction de la page demandé soit :

Code :
if (page_demandé = index.php) {
header("Location:accueil.php");
}
else {
header('Location: ' . $_SESSION['page_demandee']);
}


J'ai tenté de remplacer page_demandé par $_SERVER['REQUEST_URI'] mais cela ne fonctionne pas.

MERCI
0
Rejoignez-nous