Seite 1 von 1

Fremdlogin basteln?

Verfasst: 07.04.2005 09:26
von BEEjay
Hallo,
ich hoffe ic bin hier im richtigem Forum, ansonsten bitte ich diesen Thread im in dem richtigen zu verschieben :).


Wir arbeiten derzeit an einer platform die mit einer Mitgliederdatenbank zusammenhängt.

Nun wollten wir das phpBB dort noch als Forum benutzen.

ist es Möglich sich mit dem Einloggen auf unserer Platform, gleichzeitig im phpBB board einzuloggen? Und dementsprechend eingeloggt zu sein.

Währe nett wenn mir da einer helfen könnte.

MfG
Sascha

Verfasst: 07.04.2005 09:39
von kratzer54847
hoi,

es handelt sich bei deinem System um eine abgeschlossene Einheit mit eigenen Cookies, Usern etc?

Dann wird die Sache nicht so einfach werden, in diesem Artikel hier:

Vorlage für in phpBB eingebundene Seiten

wird das generelle Verfahren beschrieben, inwiefern sich das auf deine bisherige Software anwenden lässt, weiß ich leider auch nicht, um welche Software handelt es sich denn?

mfg Johny

Verfasst: 07.04.2005 13:21
von BEEjay
hi also im prinzip ist es ein eigenständiges System, darin soll ja nur das phpBB eingebunden werden.

Also halt ne homepage .. dannnen login für nen mitgliederbereich auf der Seite, und wenn man sich dann dort einloggt soll ein script den user gleichzeitig im Forum einloggen.

gibts dort möglichkeit von aussen zu sagen das sich "userx" eingelogt hat?

Oder müsste man immer eine Session id verwenden?


Ich hab mir auch mal die login.php angesehen also eine Abfrage ob der user existiert hab ich auch schon gemacht ist ja auch nciht schwer nur wohin muss er denn dann gehen?

wenn ich dann sage das er nen redirect machen soll mit dem bfehelr redirect($url) dann macht er mir folgenden fehler

Code: Alles auswählen

Warning: Cannot modify header information - headers already sent by (output started at /var/www/BB/wdklogin.php:2) in /var/www/BB/includes/sessions.php on line 188
hier ist der code den ich veruscht habe zu übernehmen
hab eine Menge aus der login.php rausgenommen.

Code: Alles auswählen

function LoginBB($ValUsername, $ValPassword)
{
    // Datenbank initialisieren
    $db = new sql_db('localhost','bb','bb','phpBB',false);

    if ($db->db_connect_id){

        $sql="SELECT user_id,username,user_password,user_active,user_level
              FROM ".$table_prefix.USERS_TABLE."
              WHERE username='".str_replace("\\'","''",$ValUsername)."'";

        if(!($result=$db->sql_query($sql)))
        {

            return 0;
        }
        //if(!($result=$db->sql_query($sql)))
        if ($row=$db->sql_fetchrow($result))

        {

            if($row['user_level']!=ADMIN && $board_config['board_disable'])
            {
            }
            else
            {

                //Passwort richtig und User nicht gesperrt?
                if (md5($ValPassword)==$row['user_password'] && $row['user_active'])
                {

                    $autologin=(isset($_GET['autologin'])) ? TRUE : 0;
                    $session_id= session_begin($row['user_id'],$user_ip,PAGE_LOGIN,FALSE,0);
                    if (!$session_id)
                    {
                        $url=(!empty($_GET['redirect']))? str_replace('&','&',htmlspecialchars($_GET['redirect'])): '';
                        $redirect= append_sid($url,true);
                        redirect(append_sid($url,true));

                       if (strstr(urldecode($redirect),"\n") || strstr(urldecode($redirect),"\r"))
                        {
                            return 0;
                        }

                    }//if($session_id)
                    else
                    {

                    }
                }
            }

        }//fetchrow
        else
        {
            $err=$db->sql_error($result);
            print "Fehler: ".$err['message'];

        }
    }//if (db->db_connect_id)
    else //(db->db_connect_id)
    {
        return 0;
    }//(db->db_connect_id)
}  //function

define('IN_PHPBB',true);

$phpbb_root_path='./';

include($phpbb_root_path.'extension.inc');
include($phpbb_root_path.'common.php');
$userdata = session_pagestart($user_ip,PAGE_LOGIN);
init_userprefs($userdata);

if (!empty($HTTP_POST_VARS['sid']) || !empty($HTTP_GET_VARS['sid']))
{
    $sid=(!empty($HTTP_POST_VARS['sid'])) ? $HTTP_POST_VARS['sid'] :$HTTP_GET_VARS['sid'];
}
else
{
    $sid='';
}
/*
Server Daten
*/
$HOST="localhost";
$USER="bb";
$PASS="bb";
$DATABASE="phpBB";

/*
Datenbank Klasse und Globale BB Variablen Werden geladen
*/

//Uebergabe von Benutzername, Passwort und Fehlerseite
$userdata = session_pagestart($user_ip,PAGE_LOGIN);
init_userprefs($userdata);
$ret= LoginBB("admin","admin");

nicht meckern über die Programmierung hab schon lange nichts mehr in php gemacht *schäm* :).

Aber ich hoffe das wenigstens ansatzweise was richtig ist

Verfasst: 07.04.2005 13:37
von kratzer54847
was willst du denn auf einmal mit dem Block hier erreichen?

// Datenbank initialisieren
$db = new sql_db('localhost','bb','bb','phpBB',false);