Redirection vers la page précédente
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 :)
@+
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.
Merci beaucoup pour ta rapidité, jen'aipas tout biensuivi mais je testerais ce soir devant mon PC :)
Merci encore une fois pour ta rapidité !!!
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.
(i M@N) Pas très « secure » comme méthode, nan ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
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.
$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.
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.
@+...
One Love, One Heart, One Unity.
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.
le 23/08/2006 à 16:54
Bzh
Et pourquoi pas tout simplement:
<?php
header( 'Location: ' . $_SERVER['HTTP_REFERER'] );
?>
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: