Redirection vers la page précédente

Répondre
Also know as
le 18/08/2006 à 12:03
Also know as
Bonjour,

J'ai un script de ce style :

<?php
....
header('Location: ./index.php');
....
?>

Et j'aimerais pouvoir remplacer index.php par la page ou je viens de me logué, en effet mon script me permet de me loguer sur n'importe laquelle de mes pages Internet, mais mon problème c'est que dés qu'il se logue il repart depuis la page index.php, j'aimerais donc savoir comment faire pour qu'il sache la page ou je viens de me logué, sans que j'ai besoin de refaire le script partout, de plus j'ai utilisé include dans mes pages pour nepas modifier mon script dans toutes les pages de mon site Internet.

Merci :)

@+
i M@N
le 18/08/2006 à 12:19
i M@N
Hello !

D'abord tu récupères les variables passées à ton script sur la page en cours :
<?php
$page = $_SERVER['QUERY_STRING'];
?>

Ensuite tu ajoutes un champ hidden à ton formulaire de login :
<input type="hidden" name="page" value="<?php echo $page; ?>">

Tu récupères cette variable dans ton traitement de login :
<?php
if(isset($_POST['page'])) $page = $_POST['page']; else $page = '';
?>

Et à la fin de ton script de login tu rediriges :
<?php
header('Location: ./'.$page.'');


@+...
One Love, One Heart, One Unity.
Also know as
le 18/08/2006 à 13:59
Also know as
Merci beaucoup pour ta rapidité, jen'aipas tout biensuivi mais je testerais ce soir devant mon PC :)

Merci encore une fois pour ta rapidité !!!
i M@N
le 18/08/2006 à 14:19
i M@N
Reuh ...

de rien.

Par contre à la réflection, c'estp'tet
<?php
header('Location: ./index.php?'.$page.''); ?>
à la fin ...

@+...
One Love, One Heart, One Unity.
LupusMic
le 20/08/2006 à 13:47
LupusMic
(i M@N) Pas très « secure » comme méthode, nan ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
i M@N
le 20/08/2006 à 13:57
i M@N
Hello !

Et pourquoi ? Vazy explique et si besoin corrige, qu'on avance ...

@+...
One Love, One Heart, One Unity.
LupusMic
le 21/08/2006 à 09:25
LupusMic
$page = $_SERVER['QUERY_STRING'];

Donnée fournie par le client.

if(isset($_POST['page'])) $page = $_POST['page']; else $page = '';


Tu testes si la variable est vide. Mais tu ne teste pas le fait que ce soit une page désirée (ou désirable).

<?php
header('Location: ./index.php?'.$page.''); ?>

XSS potentiel.

Si je ne donnes pas la réponse tout de suite, c'est pour que tout le monde joue un peu, sinon c'est pas drôle ;)
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
i M@N
le 21/08/2006 à 10:52
i M@N
Hello !

Je suis d'accord avec toi.
J'ai surtout essayé de répondre simplement à la question posée, sans trop compliquer le code avec des fonctions comme htmlentities ou des tests, d'autant que je ne connais pas la structure de son site.

Maintenant le gars qui veut aller @ index.php?page=admin il va le taper direct dans la barre d'adresse, pas modifier le formulaire. smiley

@+...
One Love, One Heart, One Unity.
LupusMic
le 21/08/2006 à 15:03
LupusMic
Certes :) He propose que pour éviter les trolls stériles sur ce sujet nous convenions d'une convention : à chaque fois qu'on donne un exemple simple, on met un gros warning ;)
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Bzh
le 23/08/2006 à 16:54
Bzh
Et pourquoi pas tout simplement: smiley

<?php

header( 'Location: ' . $_SERVER['HTTP_REFERER'] );

?>
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours