Page 1 sur 1

Redirection avec ($_SERVER['HTTP_REFERER'])

Posté : 24 janv. 2015, 19:08
par cris84
Bonjour à tous,
j'ai un soucis avec $referer = ($_SERVER['HTTP_REFERER']); sur ma page de login. Je souhaiterais rediriger sur l'ancienne page consultée après s'être loger.
Si je mets header("Location: index.php"); après connexion c'est bon ça fonctionne, mais si je mets à la place header("Location: $referer"); je reste sur la page login !
J'ai mis $referer = ($_SERVER['HTTP_REFERER']); sur les page concernées par la redirection.

Merci de votre aide.
Je vous ajoute le code que j'utilise.
<?php session_start();
$referer = ($_SERVER['HTTP_REFERER']); 


require('conf.inc.php');
if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
        if ( !empty($_POST['pseudo'] ) &&  !empty($_POST['mot_passe']) ) {
		
     
	
        $sql = mysqli_query($bdd, 'SELECT  id, mot_passe, email, acces, admin, avatar FROM membres WHERE pseudo="'.$_POST['pseudo'].'" AND mot_passe="'.md5($_POST['mot_passe']).'"');
		
        
		
       $data = mysqli_fetch_array($sql);
        mysqli_free_result($sql);
       if(!empty( $data) ){
          

                
			     $_SESSION['id'] = $data['id'];
                $_SESSION['admin'] = $data['admin'];
				 $_SESSION['avatar'] = $data['avatar'];
				 $_SESSION['mot_passe'] = $data['mot_passe'];
				 $_SESSION['email'] = $data['email'];
                $_SESSION['pseudo'] = $_POST['pseudo'];
                header("Location: $referer"); 
                
     }else{
         $erreur = "<br /><div class='alert alert-error'>Pseudo ou mot de passe incorrect</div>";
    }
       
 }
 else {
	$erreur = "<br /><div class='alert alert-error'>Au moins un des champs est vide.</div>";
	}
}

  ?>

Re: Redirection avec ($_SERVER['HTTP_REFERER'])

Posté : 24 janv. 2015, 19:35
par tof73
cela peut fonctionner si ton formulaire de login s'ouvre dans la page et non dans une nouvelle page servant juste pour le login.
si tu veux conserver cette page pour le login, il faut que ce soit cette page qui récupère le referer et le mette en session par exemple.

Re: Redirection avec ($_SERVER['HTTP_REFERER'])

Posté : 24 janv. 2015, 20:01
par cris84
Le formulaire est bien dans la même page, j'ai oublié de le préciser.
Je ne veux pas spécialement conserver $referer dans la session.

J'ai mis un echo $referer et j'ai bien la dernière page consulté, mais impossible d'aller sur cette page avec location:$referer :?:

Re: Redirection avec ($_SERVER['HTTP_REFERER'])

Posté : 24 janv. 2015, 20:27
par tof73
si tu mets juste cela dans un nouveau script, que se passe-t-il ?
<?php
$referer = "http://forum.phpfrance.com/php-debutant/redirection-avec-server-t272911.html";
header("Location: $referer");
?>

Re: Redirection avec ($_SERVER['HTTP_REFERER'])

Posté : 24 janv. 2015, 20:37
par cris84
J'arrive sur cette page du forum, celle ou j'ai posté ma demande.

php-debutant/redirection-avec-server-t272911.html

Je précise que la session est ouverte quand même, c'est uniquement la redirection qui ne marche pas... :?: