FluxBB.fr

Le site des utilisateurs francophones de FluxBB.

Vous n'êtes pas identifié(e).

#1 23-10-2016 17:32:18

abdellah
Membre
Inscription : 13-10-2007
Messages : 98

Formulaire de connexion et la redirection après authentification

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 &nbsp;</label><input class="fastlogin" id="username" type="text" name="req_username" size="10" /><br />
          <label for="password">Mot de passe &nbsp;</label><input class="fastlogin" id="password" type="password" name="req_password" size="10" /><br />
          <label for="autologin">Connexion auto ? &nbsp;</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

#2 23-10-2016 17:57:52

Otomatic
Régisseur
Lieu : Paris, France
Inscription : 12-12-2005
Messages : 3 660
Site Web

Re : Formulaire de connexion et la redirection après authentification

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

#3 23-10-2016 20:57:47

abdellah
Membre
Inscription : 13-10-2007
Messages : 98

Re : Formulaire de connexion et la redirection après authentification

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

#4 24-10-2016 09:49:01

Otomatic
Régisseur
Lieu : Paris, France
Inscription : 12-12-2005
Messages : 3 660
Site Web

Re : Formulaire de connexion et la redirection après authentification

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

#5 24-10-2016 10:31:27

abdellah
Membre
Inscription : 13-10-2007
Messages : 98

Re : Formulaire de connexion et la redirection après authentification

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

#6 24-10-2016 11:25:59

Otomatic
Régisseur
Lieu : Paris, France
Inscription : 12-12-2005
Messages : 3 660
Site Web

Re : Formulaire de connexion et la redirection après authentification

abdellah a écrit :

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

#7 24-10-2016 12:32:25

abdellah
Membre
Inscription : 13-10-2007
Messages : 98

Re : Formulaire de connexion et la redirection après authentification

D'accord la je comprend mieux merci, je vais essayer de modifier login.php

Hors ligne

#8 02-11-2016 14:51:06

abdellah
Membre
Inscription : 13-10-2007
Messages : 98

Re : Formulaire de connexion et la redirection après authentification

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

#9 02-11-2016 17:23:44

Otomatic
Régisseur
Lieu : Paris, France
Inscription : 12-12-2005
Messages : 3 660
Site Web

Re : Formulaire de connexion et la redirection après authentification

Bonjour,

abdellah a écrit :

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

#10 02-11-2016 19:53:38

abdellah
Membre
Inscription : 13-10-2007
Messages : 98

Re : Formulaire de connexion et la redirection après authentification

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

#11 03-11-2016 12:21:09

abdellah
Membre
Inscription : 13-10-2007
Messages : 98

Re : Formulaire de connexion et la redirection après authentification

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

Pied de page des forums