MyBB.de Forum
Login auf externer Seite - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Sonstiges (https://www.mybb.de/forum/forum-1.html)
+--- Forum: Programmierung (https://www.mybb.de/forum/forum-32.html)
+--- Thema: Login auf externer Seite (/thread-2923.html)

Seiten: Seiten: 1 2


Login auf externer Seite - frankrieger - 05.09.2006

Hi
ich hab den Login zu meinem Forum mit meinem Mitgliederbereich zusammengeschaltet. Dazu hab ich folgendes verwendet:
PHP-Code:
include('inc/config.php');
chdir('mitglieder/forum'); // path to MyBB
require './global.php';

if(
$mybb->user['uid']){ 
Das funktionierte wunderbar bis ich auf MyBB 1.2 umgestellt hab. Jetzt kommt die fehlermeldung:
Zitat:Direct initialization of this file is not allowed.

Please make sure IN_MYBB is defined.
Muss ich jetzt eine Variable definieren oder wie bekomm ich das hin?


RE: Login auf externer Seite - Michael - 05.09.2006

Füge folgende Zeile ein bevor du die global.php einbindest:
PHP-Code:
define("IN_MYBB"1); 



RE: Login auf externer Seite - frankrieger - 05.09.2006

Danke.

Top Support.Megasmile

Hat sich anscheinend n bisschen was verändert mit der Version 1.2...Wink

frank


RE: Login auf externer Seite - frankrieger - 07.09.2006

Leider funktioniert das nur wenn ich angemeldet bin.
Wenn ich mich ausgeloggt hab dann kommt automatisch der Anmeldebildschirm des Forums aber man kann sich nicht anmelden weil sich meine Logindatei in nem anderen Verzeichnis befindet als die member.php.
Folgende Datei:
PHP-Code:
echo "test";
define("IN_MYBB"0);
echo 
"test";
chdir('mitglieder/forum'); // path to MyBB
echo "test";
require_once 
'./global.php';
echo 
"test";
if(
$mybb->user['uid']){ 
... 
Bringt folgendes Ergebnis wenn man nicht eingeloggt ist:
Code:
testtesttest
Warning: Cannot modify header information - headers already sent by (output started at /homepages/24/d157964251/htdocs/login.php:4) in /homepages/24/d157964251/htdocs/mitglieder/forum/inc/functions.php on line 1061

Warning: Cannot modify header information - headers already sent by (output started at /homepages/24/d157964251/htdocs/login.php:4) in /homepages/24/d157964251/htdocs/mitglieder/forum/inc/functions.php on line 1061
Und dann die Eingabemaske für nicht angemeldete Mitglieder aus dem Forum.
Also drei mal test und dann wenn die global.php eingebunden wird kommt der Anmeldebildschirm ohne dass der weitere Programmcode ausgeführt wird.


RE: Login auf externer Seite - Garlant - 07.09.2006

Hallo Frankrieger,

Die Fehlermeldung besagt das möglicherweise vor <? oder nach dem ?> (leer-)zeichen sind. Bitte überprüfe deine Daten auf diese Fehlerquelle.
Desweiteren ist dein Codeschnipsel so nicht in ordnung, da das echo zwischen den includes nichts bewirken wird und kann. das echo wird dir auch nicht aufzeigen ob etwas ausgeführt wird.

Es sollte also ausreichen wenn der Code wie folgt aufgbaut ist:
PHP-Code:
echo "test";
define("IN_MYBB"0);
chdir('mitglieder/forum'); // path to MyBB
require_once './global.php';
if(
$mybb->user['uid'])
{
echo
"test";
}
else
{
echo
"test";


Mfg Garlant


RE: Login auf externer Seite - frankrieger - 07.09.2006

Das ich mit den tests nichts ausrichten kann ist mir klar.
Ich wollte damit nur verdeutlichen dass der Anmeldebildschirm durch die global.php ausgelöst wird. Meine eigentliche Datei ist so aufgebaut wie du es vorgeschlagen hast.
Da kommt dann folgende Fehlermeldung:
Code:
test
Warning: Cannot modify header information - headers already sent by (output started at /homepages/24/d157964251/htdocs/login.php:2) in /homepages/24/d157964251/htdocs/mitglieder/forum/inc/functions.php on line 1061

Warning: Cannot modify header information - headers already sent by (output started at /homepages/24/d157964251/htdocs/login.php:2) in /homepages/24/d157964251/htdocs/mitglieder/forum/inc/functions.php on line 1061

Warning: Cannot modify header information - headers already sent by (output started at /homepages/24/d157964251/htdocs/login.php:2) in /homepages/24/d157964251/htdocs/mitglieder/forum/inc/functions.php on line 1061
Und eigentlich kommt die Fehlermeldung nur weil ein echo vor dem require kam, da dort der Header des Forums geladen wird. Es kommt also gar keine Fehlermeldung wenn das erste echo "test"; gelöscht wird. Aber mir geht es darum dass seit der Version 1.2 der Anmeldebildschirm des Forums automatisch geladen wird wenn die global.php initialisiert wird. Und da ich meinen eigen Login hab würde ich das gern verhindern. Ausserdem würde es so leider nicht funktionieren, da sich die member.php zu der man kommt wenn man sich anmeldet in einem anderen Verzeichnis befindet.

[edit]Kann ich vielleicht direkt abfragen ob jemand eingeloggt ist? Ohne über die global.php zu gehen?


RE: Login auf externer Seite - Michael - 07.09.2006

frankrieger schrieb:[edit]Kann ich vielleicht direkt abfragen ob jemand eingeloggt ist? Ohne über die global.php zu gehen?
Ja, du kannst den Cookie mybbuser auslesen, dieser beinhaltet die Benutzer-ID und den Loginkey.


RE: Login auf externer Seite - frankrieger - 07.09.2006

Hab leider keinerlei Erfahrungen mit Cookies.

Wie kann ich es denn auslesen?
Und was sagt mir die Benutzer-ID und der LoginKey? Dass er eingeloggt ist? Wie sieht es aus wenn es kein Cookie gibt kann ich das auch abfragen?


RE: Login auf externer Seite - Michael - 07.09.2006

So sollte es gehen:
PHP-Code:
<?php
if($_COOKIE['mybbuser']) {
    $var explode("_"$_COOKIE['mybbuser']);
    $uid $var['0'];
    $loginkey $var['1'];
} else {
    echo "Kein Cookie";
}
?>



RE: Login auf externer Seite - frankrieger - 07.09.2006

Reicht die Abfrage
PHP-Code:
if($_COOKIE['mybbuser']){ 
Wenn ich nur wissen will ob er eingeloggt ist oder nicht?