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 de l'utilisateur c'est bon ça fonctionne, mais si je mets à la place header("Location: $referer"); je reste sur la page login !

Le formulaire est dans la même page que le traitement.

La session s'ouvre mais la redirection ne fonctionne pas.

Merci de votre aide.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php 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_start();
                $referer = ($_SERVER['HTTP_REFERER']); 
                             $_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>";
        }
}
 
  ?>
Le reste du code html formulaire etc...