Redirection PHP

Bonjour,

Je suis sous Debian Lenny, avec un serveur LAMP

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 bipbip.com/index.php
Mais s’il saisie bipbip.com/coyote/pamplemouse.php

Merci par avance pour votre aide.

[quote=“zepeto”]Bonjour,

Je suis sous Debian Lenny, avec un serveur LAMP

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 bipbip.com/index.php
Mais s’il saisie bipbip.com/coyote/pamplemouse.php

Merci par avance pour votre aide.[/quote]

Salut,
Je ne suis pas sur de ne pas dire une connerie… Mais je ne vois pas de redirection dans ce que tu demande… S’il y a un fichier index.htlm ou index.php c’est ce fichier qui est lu de toute façon…

Donc si un index.php est présent dans bipbip.com il est lu automatiquement, non ?
Pareil pour bipbip.com/coyote/ il suffit que pamplemousse.php s’appelle index.php… ou que dans pamplemousse.php il y ait une redirection vers index.php dans le même répertoire.

Ou alors je me plante complètement…

@zepeto : "J’ai mis en œuvre une authentification php avec redirection."
C’est bien mais avec ton code on y verrais mieux :083
Après si tu veut dire que tu as 1 seule page d’authentification pour tes 2 “sites” alors duplique ta page ça seras plus simple.

@lol : Dans le principe tu as tout a fait raison.

Merci pour votre aide.

Pour info 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>
<body>
<form action="" method="post" name="connect">
  <p align="center" class="titre"><strong>- : : : ESPACE SECURISE PAR DBProtect : : : -</strong></p>
  <p align="center" class="title">
    <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "login")) { // Affiche l'erreur  ?>
    <strong class="erreur">Echec d'authentification !!! &gt; login ou mot de passe incorrect</strong>
    <?php } ?>
    <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "delog")) { // Affiche l'erreur ?>
    <strong class="reussite">D&eacute;connexion r&eacute;ussie... A bient&ocirc;t <?php echo $_GET['prenom'];?> !</strong>
    <?php } ?>
    <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "intru")) { // Affiche l'erreur ?>
    <strong class="erreur">Echec d'authentification !!! &gt; Aucune session n'est ouverte ou vous n'avez pas les droits pour afficher cette page</strong>
    <?php } ?>
  </p>
  <p align="center"><u>Authentification s&eacute;curis&eacute;e utilisant :</u><br>
    - BDD MySQL<br>
    - Sessions PHP c&ocirc;t&eacute; serveur <br>
  - Empreintes des mot de passe stock&eacute;s par md5</p>
  <p align="center"><em><a href="lisez_moi.htm">lire les instructions d'installation &gt;&gt;</a><br>
    <a href="details.doc">lire le fonctionnement d&eacute;taill&eacute; &gt;&gt;</a></em></p>
  <table width="300"  border="0" align="center" cellpadding="10" cellspacing="0" bgcolor="#eeeeee" class="tableaux">
    <tr>
      <td width="50%""><div align="right">login</div></td>
      <td width="50%"><input name="login" type="text" id="login"></td>
    </tr>
    <tr>
      <td width="50%""><div align="right">mot de passe</div></td>
      <td width="50%"><input name="pass" type="password" id="pass"></td>
    </tr>
    <tr>
      <td height="34" colspan="2"><div align="center">
          <input type="submit" name="Submit" value="Se connecter">
      </div></td>
    </tr>
  </table>
  <p align="center"><a href="http://www.cv-webmaster.com" title="cv webmaster webdesigner développeur php/mysql">CV webmaster et auteur du script</a></p>
</form>
</body>
</html>

(code libre de droits)

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.

Ca doit bien faire 8 ans que j’ai pas toucher a du PHP :033
Mais il dois être possible de récupérer l’URL dans les headers. Après tu modifie ta ligne
header(“Location:accueil.php”); // redirection si OK
par
header(“Location:$URL/accueil.php”); // redirection si OK

c’est une piste a toi de creuser un peut :wink:

Bonjour,

$_SERVER

Donc il faut que tu regarde du coté de
’REQUEST_URI’
ou
’PATH_INFO’
ou
’ORIG_PATH_INFO’

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

Pour commencer dit moi ce que renvoie ‘REQUEST_URI’,‘PATH_INFO’&‘ORIG_PATH_INFO’.
Si l’un d’eux te renvoi quelquechose du genre ‘bipbip.com’ ou ‘bipbip.com/coyotte’ alors remplace
header(“Location:accueil.php”);
par
header(“Location:/accueil.php”);

Comme je te l’ai dit ça fait bieeeeeeeeeeeeeeeeeeeeeeeen longtemps que je n’ai pas touché a du PHP