MyBB.support, le portail francophone de MyBB
Connexion parallèle - Version imprimable

+- MyBB.support, le portail francophone de MyBB (https://mybb.fr)
+-- Forum : Plug-ins et modules pour MyBB (https://mybb.fr/forum-32.html)
+--- Forum : Support (https://mybb.fr/forum-15.html)
+--- Sujet : Connexion parallèle (/thread-2721.html)



Connexion parallèle - Saphir - 23-07-2010

Tout d'abord, bonjour à tous ceux qui auront le courage de me lire et éventuellement de m'aider Smile.

Je vous expose mon problème...

Au cas où ça pourrait aider, voici l'arborescence du serveur ftp :
- (root)
- index.php
-- forum
-- web
--- index.php

/index.php redirige automatiquement vers /web/index.php

J'ai créé un formulaire de connexion tout bête sur mon site (placé dans le dossier 'web') menant vers une page de connexion (normal, quoi). Le problème est que j'ignore que mettre dans cette page de connexion : j'aimerais permettre au visiteur de se connecter depuis le site OU le forum au site ET au forum. Le problème étant alors de demander à cette page de connexion de vérifier le mot de passe, ce que je ne sais pas faire :s.

Il me faudrait donc :
- le moyen de vérifier le mot de passe depuis le site
- le moyen de partager les deux connexions (je suppose qu'il va falloir toucher aux cookies, mais je débute, alors)

Je remercie d'avance ceux qui auront l'amabilité de me consacrer un peu de leur temps Smile .

Saphir.


RE: Connexion parallèle - Saphir - 25-07-2010

Personne ne peut m'aider?
Vraiment personne? :s
Une dernière fois?


RE: Connexion parallèle - exdiogene - 30-07-2010

Pardonnez l'anglicisme, mais c'est un "bridge" qu'il vous faut. Maintenant il reste à savoir entre quoi et MyBB?

Il existe déjà plusieurs "bridges" disponibles, il faut donc rechercher si celui qu'il vous faut existe...

La solution est beaucoup plus complexe que d'avoir un simple formulaire et un gestionnaire de cookies! Wink


RE: Connexion parallèle - Saphir - 31-07-2010

Et si je dissocie les cookies, comment puis-je identifier un membre (comment puis-je vérifier que le mot de passe est le bon)?


RE: Connexion parallèle - exdiogene - 31-07-2010

Le mot de passe peut être vérifié simplement en utilisant la fonction de validation de l'application choisie.

Toujours faut-il savoir comment l'utiliser.

Quelle est l'autre application qui sera jumelée avec MyBB, il serait important de déterminer ceci en premier lieu.


RE: Connexion parallèle - Saphir - 31-07-2010

?

C'est juste un formulaire PHP...

$verif = SELECT 'password' FROM 'users' WHERE name=$_POST['id'];

if ($_POST['pass'] = $verif)
{
// Aller à la page de création du cookie.
}
else
{
// Aller à page d'erreur.
}

Mais comment le faire avec le cryptage du mot de passe?


RE: Connexion parallèle - exdiogene - 31-07-2010

Je crois comprendre qu'il n'y a pas de seconde application, mais une simple vérification du mot de passe de l'utilisateur.

Alors la méthode en résumé est celle-ci :

Code PHP :
define("IN_MYBB"1);
require_once 
$working_dir."/inc/init.php";
require_once 
$working_dir."/inc/functions_user.php";
if ( 
validate_password_from_username($username$password) ){
  
//code à exécuter pour une validation correcte du mot de passe...




RE: Connexion parallèle - Saphir - 31-07-2010

Mais comment puis-je remplacer le "/inc/init.php" et "/inc/functions_user.php", vue l'arborescence de mon site :

- root
-- forum
--- inc
--- ...
-- web
--- images
--- ...


RE: Connexion parallèle - exdiogene - 31-07-2010

Il faut simplement ajouter ceci au début du code :

Code PHP :
$working_dir '../forum'

Wink


RE: Connexion parallèle - Saphir - 31-07-2010

OK, merci, je vais tester ça Smile


RE: Connexion parallèle - Saphir - 01-08-2010

ça fonctionne, merci beaucoup Smile
Mais j'ai un autre problème : lorsqu'il y a
Code PHP :
<?php
    define
("IN_MYBB"1);
    require 
"../forum/global.php";
?>
dans une page, les includes ne fonctionnent plus, comment puis-je y remédier?

Juste comme ça, comment fait on pour transformer le "Lieu Inconnu" de la page "Qui est en ligne?" en ce qu'on veut?


RE: Connexion parallèle - Saphir - 08-08-2010

Pas de solution?


RE: Connexion parallèle - exdiogene - 08-08-2010

Dans l'exemple précédent tu peux simplement remplacer la ligne :

Code PHP :
$working_dir '../forum'


par

Code PHP :
$working_dir '../../forum'


ou tout autre répertoire relatif à l'emplacement de ta page!

Wink


RE: Connexion parallèle - Saphir - 08-08-2010

Non non, le formulaire de connexion etc. fonctionnent correctement, c'est juste que lorsque j'ajoute ce code dans ma pages, les includes suivants ne fonctionnent plus en gros j'ai :

- include 'header.php' (qui contient le code, l'include fonctionne)
- include 'menu.php' (l'include ne fonctionne plus quand il y a le code)
- echo $body (ça fonctionne)
- include 'footer.php' (l'include ne fonctionne plus quand il y a le code)


RE: Connexion parallèle - exdiogene - 08-08-2010

Je viens de découvrir qu'une variable du même nom que "$working_dir" est utilisée dans le fichier "global.php" de MyBB. Alors utilisez "$my_working_dir" à la place dans le bout de code déjà fourni!

Cela corrigera probablement votre problème...

Wink


RE: Connexion parallèle - Saphir - 09-08-2010

Je n'utilise pas cette variable dans mon code :s
Peut-être faut-il redéfinir quelque chose après le 'require'?


RE: Connexion parallèle - exdiogene - 09-08-2010

Alors il m'est totalement impossible de répondre à la question sans avoir le contenu complet des scripts en question et l'arborescence de leur localisation...


RE: Connexion parallèle - Saphir - 09-08-2010

global.php :
Code PHP :
<?php if ($sesss == true) { session_start(); } ?>
<?php 
if ($sessd == true) { session_destroy(); } ?>
<?php 
if ($cookies != null) { echo $cookies; } ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $language?>">
    <head>
        <link rel="stylesheet" media="screen" type="text/css" title="<?php if ($language == "fr") { echo "Habillage"; } else { echo "Design"; } ?>" href="design.css"/>
        <link rel="start" title="<?php if ($language == fr) { echo "Accueil"; } else { echo "Home"; } ?>" href="index_<?php echo $language?>.html"/>
        <link rel="help" title="<?php if ($language == fr) { echo "Aide"; } else { echo "Help"; } ?>" href="help_<?php echo $language?>.html"/>
        <link rel="alternate" type="application/rss+xml" title="<?php if ($language == "fr") { echo "Nouvelles"; } else { echo "News"; } ?>" href="news_<?php echo $language?>.xml"/>
        <link rel="shortcut icon" type="image/x-icon" href="icon.ico" />
        <meta name="author" content="<?php echo $author?>"/>
        <meta name="description" content="<?php echo $description?>"/>
        <meta name="keywords" content="<?php echo $keyword?>"/>
        <meta name="reply-to" content="web@gsw.evoserv.net"/>
        <?php
            
if ($pragma == true)
            {
                echo 
"<meta http-equiv=\"pragma\" content=\"no-cache\"/>";
            }
        
?>
        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
        <?php
            
if ($refresh == true)
            {
                echo 
"<meta http-equiv=\"refresh\" content=\"$refreshdelay; URL=$refreshurl\"/>";
            }
        
?>
        <script type="text/javascript">
            <?php echo $javascript?>
            <?php include ("jsmenu.php"); ?>
        </script>
        <style type="text/css">
            <?php echo $css?>
            <?php include ("cssperso.php"); ?>
            <?php include ("cssmenu.php"); ?>
        </style>
        <title><?php if ($language == "fr") { echo "Groupe Saphir's World"; } else { echo "Saphir's World Company"; } ?> - <?php echo $title?></title>
    </head>
    <body>
        <span id="top"></span>
        <div id="header" align="center">
            <?php include ("header_$language.php"); ?>
        </div>
        <div id="menu">
            <?php include ("menu_$language.php"); ?>
        </div>
        <div id="body" align="center">
            <?php echo $body?>
        </div>
        <div id="footer" align="center">
            <?php include ("footer_$language.php"); ?>
        </div>
    </body>
</html> 

header_fr.php :
Code PHP :
<div id="logo">
    <
a href="index_fr.php"><img src="logo.png" alt="Groupe Saphir's World"/></a>
</
div>
<
div id="memberbox">
    <?
php
        define
("IN_MYBB"1);
        require 
"../forum/global.php";
    
?>
    <form action="../forum/member.php" method="post">
        <p>
            <label for="username">Identifiant :</label> <input type="text" name="username" id="username" size="25" maxlength="30"/>
            <label for="password">Mot de Passe :</label> <input type="password" name="password" id="password" size="25" />
            <input type="hidden" name="action" value="do_login"/>
            <input type="hidden" name="url" value="<?php echo $refreshurl?>"/>
            <input type="submit" class="submit" name="submit" value="Connexion"/>
        </p>
    </form>
</div>
<div id="titles" align="center">
    <h1 id="title">
        <?php echo $title?>
    </h1>
    <h2 id="subtitle">
        <?php echo $subtitle?>
    </h2>
</div>
<div id="infobox" align="center">
    <p id="infoboxp">
        Le site du Groupe Saphir's World est acuellement en refonte totale.<br/>Nous vous invitons à rejoindre le forum Saphir's World : <a href="http://gsw.evoserv.net/forum/">http://gsw.evoserv.net/forum/</a>.<br/>Veuillez nous excuser pour la gêne occasionnée.<br/>Saphir.
    </p>
</div> 

index.php :
Code PHP :
<?php
    $language 
"fr";
    
$author "Saphir";
    
$description "Index : Choix de la Langue / Index : Language Choice";
    
$keywords "Groupe Saphir's World, Saphir's World Company, Index, Langue, Language";
    
$pragma false;
    
$refresh false;
    
$refreshdelay 3600;
    
$refreshurl "http://gsw.evoserv.net/web/index.php";
    
$sesss false;
    
$sessd false;
    
$javascript "
        
    "
;
    
$css "
        .lchoice
        {
            text-align: center;
            background-image: url(\"lcbg.png\");
            background-repeat: no-repeat;
            height: 200px;
            width: 150px;
        }
        .biglc
        {
            text-align: center;
            background-image: url(\"biglcbg.png\");
            background-repeat: no-repeat;
            height: 50px;
            width: 500px;
            background-position: center;
            padding-top: 10px;
        }
        .lname
        {
            font-size: 24px;
        }
    "
;
    
$title "Index";
    
$subtitle "";
    
$body "
        <div align=\"center\">
            <p class=\"biglc\">
                Veuillez choisir la langue que vous souhaitez utiliser sur le site.<br/>
                Please choose the language you would like to use on the website.
            </p>
        </div>
        <table align=\"center\">
            <tr>
                <td class=\"lchoice\">
                    <a href=\"http://gsw.evoserv.net/web/index_fr.php\"><img src=\"flagfr.png\" alt=\"Français\"/></a>
                    <p class=\"lname\">
                        <a href=\"http://gsw.evoserv.net/web/index_fr.php\">Français</a>
                    </p>
                </td>
                <td class=\"lchoice\">
                    <a href=\"http://gsw.evoserv.net/web/index_en.php\"><img src=\"flagen.png\" alt=\"English\"/></a>
                    <p class=\"lname\">
                        <a href=\"http://gsw.evoserv.net/web/index_en.php\">English</a>
                    </p>
                </td>
            </tr>
        </table>
    "
;
    
$creadate "Mardi 20 Juillet 2010";
    
$creatime "18:25";
    include (
"global.php");
?>

Arborescence :
- root
-- forum
--- inc
--- ...
-- web
--- footer_en.php
--- footer_fr.php
--- global.php
--- header_en.php
--- header_fr.php
--- index.php
--- menu_en.php
--- menu_fr.php
--- ... (images etc.)


RE: Connexion parallèle - exdiogene - 09-08-2010

Bon, je vais être très honnête avec toi.

Au début tu demandais :

- le moyen de vérifier le mot de passe depuis le site
- le moyen de partager les deux connexions (je suppose qu'il va falloir toucher aux cookies, mais je débute, alors)

J'ai simplement répondu à ta première demande, avec un bout de code fonctionnel. maintenant tu as complètement changé la façon de faire avec du code différent et tu voudrais que je "debug" et/ou complète ton application...

Je n'avais pas l'intention d'aller si loin, voilà pourquoi j'avais simplement donné le bout de code, voyant que personne ne te répondait. Je développe des logiciels de façon professionnelle et habituellement je facture mon temps!

Malheureusement, ce que tu demandes maintenant dépasse le simple bénévolat et je ne ferai pas d'exception ici et ne donnerai pas gratuitement un "bridge" pour une situation particulière. Ce serait comme me tirer dans le pied en aidant gratuitement un compétiteur ou en travaillant longtemps gratuitement pour un seul individu.

Je te souhaite donc bonne chance avec ton projet et espère qu'une autre personne acceptera de te donner son temps pour résoudre tes problèmes de codification...

Wink


RE: Connexion parallèle - Saphir - 09-08-2010

OK, tant pis, merci quand même Wink


 Utilitaire de traduction fourni par Regentronique