[PHP] Transmettre une URL avec plusieurs GET

Résolu
Utilisateur anonyme -  
 Utilisateur anonyme -
Bonjour,
J'ai créé un espace membres pour mon site, et je souhaite que lorsque l'on se connecte ou se déconnecte, les utilisateurs soient redirigés vers la page d'où ils proviennent (exemple : une personne est sur le forum, il se déconnecte et la page de déconnexion le redirige vers le forum).
J'ai donc mis sur chaque page un lien vers la page de déconnexion comme ceci :
$adresse_r = basename($_SERVER["REQUEST_URI"]);
echo '<a href="mb_deconnexion.php?adr='.$adresse_r.'">Déconnexion</a>';

Et sur la page de déconnexion la redirection :
if(isset($_GET["adr"]))
{ echo '<script type="text/javascript">document.location.replace("'.$_GET["adr"].'");</script>'; }

Le problème est que quand l'adresse de la page d'origine contient plusieurs GET, l'adresse de la page après redirection n'en contient plus qu'un seul, le premier.
Je souhaiterais donc savoir comment faire pour envoyer l'URL à la page de déconnexion avec tous les GET inclus, pour que la redirection puisse se faire correctement.

Merci d'avance =)

Dri60
A voir également:

3 réponses

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Salut.

Pour savoir d'où provient un visiteur en PHP, tu peux utiliser la varibale $_SERVER['HTTP_REFERER'].

Pour la page de redirection, il suffit de rediriger l'utilisateur vers la page d'où il provient :
<?php
session_start();
unset($_SESSION['id'], $_SESSION['login']);
$redirect = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : 'index.php';
header('Location: '.$redirect);
?>


Pour la page de connexion, quand l'utilisateur arrive dessus et qu'il n'a pas encore saisis ces identifiants, tu peux stocker dans une variable de session l'URL de provenance. Lorsqu'il ce connecte, si c'est OK, il suffit de le rediriger grâce à la variable de session contenant la provenance.
<?php
if(isset($_POST['login']) && isset($_POST['password'])) {
    
    // Si l'utilisateur est bien connecté
    $redirect = $_SESSION['loginRedirect'];
    unset($_SESSION['loginRedirect']);
    header('Location: '.$redirect);
} else {
    if(!isset($_SESSION['loginRedirect'])) {
        $_SESSION['loginRedirect'] = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : 'index.php';
    }

    afficherFormulaire();
}
?>
1
okuni Messages postés 1221 Date d'inscription   Statut Membre Dernière intervention   126
 
utilise header('Location:page?var1=1&var2=2');
0
Utilisateur anonyme
 
Merci, j'ai réussi à faire ce que je voulais grâce à ton conseil =)
Bonne journée à tous.

Dri60
0