Le site des utilisateurs francophones de FluxBB.
Vous n'êtes pas identifié(e).
Bonjour,
J'ai intégré le formulaire de connexion sur mes pages php, j'aimerai qu'on soit redirigés vers la page courante après authentification et non vers la page forum/index.php (page d’accueil forum).
J'ai fait des recherches avant de poster ce message, d’après ce que j'ai compris il faut ajouter l'input :
<input type="hidden" name="redirect_url" value="<?php echo $_SERVER['REQUEST_URI']; ?>" />Mais je suis toujours redirigé vers la page d’accueil de mon forum j'ai essayé plusieurs paramètre dans le value de cet input aucun changement.
Le formulaire au complet :
<?php
// inclure fluxbb
define('PUN_ROOT', 'forum/');
require PUN_ROOT.'include/common.php';
if ($pun_user['is_guest'])
{
?>
<!-- Panneau de connexion -->
<div class="submenu">
<h2>Connexion</h2>
<form id="login" action="<?php echo PUN_ROOT.'login.php?action=in'; ?>" method="post">
<p class="form">
<input type="hidden" name="form_sent" value="1" />
<input type="hidden" name="redirect_url" value="<?php echo $_SERVER['REQUEST_URI']; ?>" />
<label for="username">Nom d'utilisateur </label><input class="fastlogin" id="username" type="text" name="req_username" size="10" /><br />
<label for="password">Mot de passe </label><input class="fastlogin" id="password" type="password" name="req_password" size="10" /><br />
<label for="autologin">Connexion auto ? </label><input class="check" id="autologin" type="checkbox" checked="checked" name="save_pass" />
</p>
<p class="submit">
<input class="connect" type="submit" name="login" value="Connexion" /> <a href="<?php echo PUN_ROOT.'register.php' ?>"><button class="connect">Inscription</button></a>
</p>
</form>
</div>
<?php
}
?>Cdt.
Hors ligne
Bonjour,
Avec $_SERVER['REQUEST_URI'], vers quoi pensiez-vous être redirigé ?
Voir la documentation PHP : http://php.net/manual/fr/reserved.variables.server.php
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
Salut
quand je fait un var_dump sur $_SERVER['REQUEST_URI'] ca renvoie le nom de la page courante.
au début j'ai essayé avec $_SERVER['PHP_SELF'] et aussi :
<input type="hidden" name="redirect_url" value="http://localhost/index.php" />Dernière modification par abdellah (23-10-2016 20:58:03)
Hors ligne
Bonjour,
Non ! $_SERVER['REQUEST_URI'] ne renvoie pas le nom de la page courante !
Vous n'êtes pas allé voir la documentation afférente dont, pourtant, j'avais mis le lien.
'REQUEST_URI' renvoie l'URI qui a été fourni pour accéder à cette page.
Si vous voulez être redirigé « vers la page courante », encore faut-il savoir ce que vous entendez par page courante, car c'est toujours la page sur laquelle on est.
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
Bonjour,
Je vous assure que je suis aller sur le lien que vous m'avez donné, mais j'avoue ne pas avoir compris grand chose.
J'ai créer une page teste.php dedans j'ai fait un var_dump de $_SERVER['REQUEST_URI'] sa renvoie '/teste.php'
c'est ce que j’appelle la page courante.
Hors ligne
J'ai créer une page teste.php dedans j'ai fait un var_dump de $_SERVER['REQUEST_URI'] sa renvoie '/teste.php'
Ce n'est pas parce que la page s'appelle 'teste.php', mais parce que vous l'avez lancé par 'http://xxxxxx/teste.php'.
L'URI c'est ce vous tapez dans la barre d'adresse pour aller sur une page.
La redirection, dans login.php est faite par :
// Try to determine if the data in HTTP_REFERER is valid (if not, we redirect to index.php after login)
if (!empty($_SERVER['HTTP_REFERER']))
$redirect_url = validate_redirect($_SERVER['HTTP_REFERER'], null);Il faut donc avoir un HTTP_REFERER valide ou alors, modifier cette partie de code pour rediriger correctement.
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
D'accord la je comprend mieux merci, je vais essayer de modifier login.php
Hors ligne
Salut Otomatic,
Je reviens vers toi parceque je n'ai pas bien avancer dans ce que je cherche a faire.
Je n'ai pas réussi a modifier la partie de code que tu m'a montré.
La seule manière que j'ai trouvé c'est de modifier cette partie de code :
// Try to determine if the data in redirect_url is valid (if not, we redirect to index.php after login)
$redirect_url = validate_redirect($_POST['redirect_url'], 'index.php');j'ai modifié la fin de code au lieux de 'index.php' j'ai remplacé par $_SERVER['HTTP_REFERER'] ce qui donne :
// Try to determine if the data in redirect_url is valid (if not, we redirect to index.php after login)
$redirect_url = validate_redirect($_POST['redirect_url'], $_SERVER['HTTP_REFERER']);Comme ça le redirection fonctionne, mais je me demande est-ce que c'est correcte de faire cette modif est-ce qu'elle ne causera pas des problèmes soit de sécurité ou le bon fonctionnement de mon forum ?
Cordialement.
Hors ligne
Bonjour,
Comme ça le redirection fonctionne, mais je me demande est-ce que c'est correcte de faire cette modif est-ce qu'elle ne causera pas des problèmes soit de sécurité ou le bon fonctionnement de mon forum ?
Que dit la documentation PHP :
'HTTP_REFERER'
L'adresse de la page (si elle existe) qui a conduit le client à la page courante. Cette valeur est affectée par le client, et tous les clients ne le font pas. Certains navigateurs permettent même de modifier la valeur de HTTP_REFERER, sous forme de fonctionnalité. En bref, ce n'est pas une valeur de confiance.
Ce qui veut dire qu'éventuellement, on peut être redirigé sur une autre page que celle d'origine.
Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche
Hors ligne
Et si a la place => $_SERVER['REQUEST_URI']
d’après la doc :
L'URI qui a été fourni pour accéder à cette page. Par exemple : '/index.html'.
edit : non sa ne fonctionne pas enfaite :-D
Dernière modification par abdellah (02-11-2016 19:56:46)
Hors ligne
Salut,
J'ai remarqué que Fluxbb utilise $_SERVER['HTTP_REFERER'] pour les redirection de login.php a la page précédente.
Donc c'est exactement ce que j'ai fait en modifiant le login.php
Dernière modification par abdellah (03-11-2016 12:24:18)
Hors ligne