MyBB.support, le portail francophone de MyBB

Version complète : Utiliser login MyBB sur page externe
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.

Bonsoir!

Je souhaiterais utiliser le module de connexion de mon forum MyBB afin qu'il soit aussi utilisé sur un bout de page web que j'ai fais, pour ultérieurement limiter d'accès certaines pages aux membres du forum.

Pensant simplifier le truc, j'ai mis ma page web dans le même dossier que le forum en utilisant le prefixe _res pour toutes les pages!

index du forum: http://fifa-fuma.info/forum
index de la page web: http://fifa-fuma.info/forum/res_index.php

Au début de res_index j'ai donc ajouté:
<?php include("res_login.php"); ?>

Ensuite dans le res_login.php, j'y ai mis:

<span style="float: left; margin-left: 10px; margin-top: -1px;">

<form action="member.php" method="post">

<input type="text" class="textbox" name="username" value="Username" size="20" onfocus="if(this.value == 'Username') { this.value = ''; }" onblur="if(this.value=='') { this.value='Username'; }" />

<input type="password" class="textbox" name="password" value="password" onfocus="if(this.value == 'password') { this.value = ''; }" onblur="if(this.value=='') { this.value='password'; }" size="20"/>

&nbsp; <label title="{$lang->remember_me_desc}"><input type="checkbox" class="checkbox" name="remember" checked="checked" value="yes" style="vertical-align: middle; margin-top: -1px;" /> Se rappeler</label>

<span style="margin-left: 8px;">
<input type="submit" class="button" name="submit" value="Se connecter" />
<input type="hidden" name="action" value="do_login" />
</span>

</form>

</span>

<span style="float: right; font-weight: bold; margin-top: 2px; margin-right: 10px;">

<img class="icon" src="http://fifa-fuma.info/forum/images/darkfusion/icons/key.png" alt="" /><a href="http://fifa-fuma.info/forum/member.php?action=lostpw">Mot de passe oublié?</a>

&nbsp; - &nbsp;

<img class="icon" src="http://fifa-fuma.info/forum/images/darkfusion/icons/register.png" alt="" /><a href="http://fifa-fuma.info/forum/member.php?action=register">S'enregister</a>

</span>


Tout ce bout de code, je l'ai pris dans header_welcomeblock_guest de MyBB !

Visiblement j'arrive à me connecter (même si en sortant du member.php il m'envoie sur l'index du forum et non de ma page web), mais quand je retourne sur la page, il me propose toujours de me log...

J'sais pas si j'ai été très clair...

Merci d'avance pour votre aide.
Petite précision, au final tout ce que je veux, c'est utiliser le design du truc de login (enfin là comme il est présenté actuellement sur res_index.php ca me convient, pas grave si j'ai pas le fond ^^, et surtout, utiliser la même BDD pour pas que les gens aient à s'inscrire sur le forum et les pages web res_*
Dernière précision, je viens de découvrir le php ce soir, donc soyez indulgents! Big Grin
Bonsoir djul.

D'abord, sachez que la réponse à votre question a déjà été donnée plusieurs fois ici, aussi nous vous saurions gré d'utiliser le moteur de recherche à votre disposition sur MyBB.fr.

La façon la plus simple de vérifier si une personne est connectée à votre forum est d'inclure le fichier global.php qui se trouve à la racine de MyBB. L'exemple ci-dessous pourra vous mettre sur la voie.

Code PHP :
<?php
    define
("IN_MYBB"1);
    
define("THIS_SCRIPT""res_index.php");
    require_once 
"global.php";

    if(
$mybb->user['uid'] > 0) {
        echo 
"Bonjour " $mybb->user['username'] . " !";
    }
    else {
        echo 
"Merci de <a href='member.php?action=login'>vous identifier</a>.";
    }
?>
Je pense pas que votre réponse soit celle que ma question suppose ...

De plus je ne sais pas trop quoi faire de votre code en fonction de ce que j'ai déjà fais.

Et je vous assure que j'ai déjà parcouru tous les sujets se rapprochant de ce que je veux faire, mais aucun n'y répond réellement...
Votre bout de code fait la même chose que ce que j'ai déjà fais en fait ....
Vous avez votre formulaire de connexion.
Lorsque vous vous connectez, MyBB insère un cookie dans votre navigateur qui indique que vous êtes connecté.
Le fichier global.php permet de récupérer ce cookie.

En incluant ce fichier global.php, vous aurez donc accès, entre autres, aux variables
$mybb->user['uid'] qui contient votre identifiant utilisateur (supérieur à 0 si vous êtes effectivement connecté) et
$mybb->user['username'] qui contient votre nom d'utilisateur.

Dans l'exemple précédent, vous pouvez mettre, à la place de la première ligne echo... le contenu qui doit s'afficher pour un membre connecté, et à la place de la seconde ligne echo... le contenu qui doit s'afficher pour une personne qui n'est pas encore connectée (le formulaire de connexion, par exemple).
Je suis désolé mais je comprends pas ...

Alors ok j'ai le formulaire, et il fonctionne(car quand je vais voir sur le forum, je suis connecté), mais les soucis sont:

* Après le passage par member.php, ca m'envoie sur: http://fifa-fuma.info/forum/index.php au lieu de http://fifa-fuma.info/forum/res_index.php

* Quand je reviens sur http://fifa-fuma.info/forum/res_index.php il m'affiche toujours le formulaire, alors que je suis censé être enregistré.



J'ai testé ça:
<?php
define("IN_MYBB", 1);
define("THIS_SCRIPT", "res_index.php");
require_once "global.php";

if($mybb->user['uid'] > 0) {
echo "Bonjour " . $mybb->user['username'] . " !";
}
else {
echo <span style="float: left; margin-left: 10px; margin-top: -1px;">

<form action="member.php" method="post">

<input type="text" class="textbox" name="username" value="Username" size="20" onfocus="if(this.value == 'Username') { this.value = ''; }" onblur="if(this.value=='') { this.value='Username'; }" />

<input type="password" class="textbox" name="password" value="password" onfocus="if(this.value == 'password') { this.value = ''; }" onblur="if(this.value=='') { this.value='password'; }" size="20"/>

&nbsp; <label title="{$lang->remember_me_desc}"><input type="checkbox" class="checkbox" name="remember" checked="checked" value="yes" style="vertical-align: middle; margin-top: -1px;" /> Se rappeler</label>

<span style="margin-left: 8px;">
<input type="submit" class="button" name="submit" value="Se connecter" />
<input type="hidden" name="action" value="do_login" />
</span>

</form>

</span>

<span style="float: right; font-weight: bold; margin-top: 2px; margin-right: 10px;">

<img class="icon" src="http://fifa-fuma.info/forum/images/darkfusion/icons/key.png" alt="" /><a href="http://fifa-fuma.info/forum/member.php?action=lostpw">Mot de passe oublié?</a>

&nbsp; - &nbsp;

<img class="icon" src="http://fifa-fuma.info/forum/images/darkfusion/icons/register.png" alt="" /><a href="http://fifa-fuma.info/forum/member.php?action=register">S'enregister</a>

</span>
}
?>

Mais du coup ca me met une page blanche, visiblement y'a un soucis au niveau de } ou de la fermeture du php
Désolé encore mais je suis vraiment novice en la matière ^^
Vous ne pouvez pas mettre du HTML comme ça dans du PHP !

Dans le code ci-dessus, remplacez le deuxième "echo" par ?>
et, juste avant le dernier } ajoutez <?php

Par ailleurs, il me semble que le champ url permet de définir la page de redirection après connexion, vous pouvez le mettre juste après le premier champ caché, par exemple.

Voila le résultat :

Code PHP :
<?php
define
("IN_MYBB"1);
define("THIS_SCRIPT""res_index.php");
require_once 
"global.php";

if(
$mybb->user['uid'] > 0) {
echo 
"Bonjour " $mybb->user['username'] . " !";
}
else {
?>
<span style="float: left; margin-left: 10px; margin-top: -1px;">

<form action="member.php" method="post">

<input type="text" class="textbox" name="username" value="Username" size="20" onfocus="if(this.value == 'Username') { this.value = ''; }" onblur="if(this.value=='') { this.value='Username'; }" />

<input type="password" class="textbox" name="password" value="password" onfocus="if(this.value == 'password') { this.value = ''; }" onblur="if(this.value=='') { this.value='password'; }" size="20"/>

&nbsp; <label title="{$lang->remember_me_desc}"><input type="checkbox" class="checkbox" name="remember" checked="checked" value="yes" style="vertical-align: middle; margin-top: -1px;" /> Se rappeler</label>

<span style="margin-left: 8px;">
<input type="submit" class="button" name="submit" value="Se connecter" />
<input type="hidden" name="action" value="do_login" />
<input type="hidden" name="url" value="res_index.php" />
</span>

</form>

</span>

<span style="float: right; font-weight: bold; margin-top: 2px; margin-right: 10px;">

<img class="icon" src="http://fifa-fuma.info/forum/images/darkfusion/icons/key.png" alt="" /><a href="http://fifa-fuma.info/forum/member.php?action=lostpw">Mot de passe oublié?</a>

&nbsp; - &nbsp;

<img class="icon" src="http://fifa-fuma.info/forum/images/darkfusion/icons/register.png" alt="" /><a href="http://fifa-fuma.info/forum/member.php?action=register">S'enregister</a> 

</span>
<?php
}
?>

(à vérifier pour ce qui concerne la redirection, je ne suis pas sur de moi)

EDIT : Il risque d'y avoir un problème avec les {$......}, remplacez-les par le texte correspondant si nécessaire. Wink
Bon visiblement ça fonctionne !

Y'a juste le coup de "il me semble que le champ url permet de définir la page de redirection après connexion, vous pouvez le mettre juste après le premier champ caché, par exemple" que je sais pas mettre en pratique. Rolleyes

Je l'ai mis dans le code que je vous ai donné, il s'agit de la ligne
Code PHP :
<input type="hidden" name="url" value="res_index.php" /> 

ça fonctionne sur mon propre forum, essayez sinon avec
Code PHP :
<input type="hidden" name="url" value="http://fifa-fuma.info/forum/res_index.php" /> 
Oh pardon je n'avais pas vu que vous aviez remis le code dans son intégralité, chez moi le truc de code PHP sortait de l'écran du coup j'avais pas vu la barre de scrolling!

La redirection est ok en effet, merci beaucoup pour votre aide ainsi que votre réactivité !
Je vous en prie. Bonne soirée à vous. Smile

Ceci est un message préformaté et peut ne correspondre qu'en partie à votre requête.

Bonsoir djul.

Votre requête a été marquée comme étant résolue.

Si vous avez de nouveau besoin de nos services, n'hésitez pas à ouvrir une nouvelle discussion dans nos forums de support.

Merci de l'intérêt que vous portez à MyBB !
 Utilitaire de traduction fourni par Regentronique