MyBB.de Forum

Normale Version: Session einbinden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo, wieder einmal ich mit meiner Session. Wink

Ich hab mein Forum zu Testzwecken auf einen funpic-account kopiert, siehe

hier:

login, logout funktioniert, aber auf externen Seiten wird die Session nicht übernommen. Was ich bisher gemacht habe:

Code:
<?php
define("IN_MYBB",1);
chdir("../forum");
require_once "../forum/global.php";
?>

... html ...

<?php
echo "session: " . $mybb->user['uid'];
if($mybb->user['uid'] != "0") {
    echo " " . $mybb->user['username'];
    echo "bla";
}
?>

gzip ist deaktiviert, da ich sonst immer eine leere Seite bekommen habe...

Das utf-8 header plugin ist aktiviert

Cookie Einstellungen (login funktioniert ja):

.fotolounge.fo.funpic.de
/forum/

Fehlermeldung gibt es keine beim Aufruf von AllAccess - es funktioniert einfach nicht! Auch bei error_reporting(E_ALL) kommt kein Fehler.

Ehrlich gesagt bin ich etwas ratlos...

lg, Alisha
Wo liegt die externe Seite?
im Ordner neben dem Forumsordner - oder auch erreichbar mit Klick auf AllAccess im Footer.

link
Aber nicht schrecken - is potthässlich, da Prototyp Wink
Da scheint es Probleme zu geben, weil der Cookie-Pfad des Forums nicht mit dem der Seite übereinstimmt. Du kannst mal versuchen den Cookie direkt auszulesen: https://www.mybb.de/forum/showthread.php...9#pid34829
Ggf. kannst du dann noch eine Abfrage an die Datenbanktabelle sessions schicken, um zu verifizieren, dass der Benutzer tatsächlich angemeldet ist.
also... scheinbar gibts da kein cookie zum auslesen...

Code:
if($_COOKIE['mybbuser']) {
    // Information des Cookies zerlegen
    $cookieinfo = explode("_", $_COOKIE['mybbuser']);
    // Query, um die Infos zum Benutzer abzurufen
    $query = mysql_query("SELECT * FROM mybb_users WHERE uid = '".intval($cookieinfo[0])."'");
    $userinfo = mysql_fetch_array($query);
    // Benutzernamen ausgeben
    echo $userinfo['username'];
    echo "cookie!";
} else {
    echo "kein cookie";
}

Als Resultat kommt nur "kein cookie" - Datenbankfehler beim connecten gibts aber keinen.

Könnte ich das ganze eventuell so lösen, dass ich im Footer beim Webseitenaufruf die UserID als GET-Variable mitgebe und dann die Session auslese? Oder gibt es noch eine andere Möglichkeit?

Zur weiteren Info - wenn ich denselben Code bei meiner lokalen Seite einsetze - die eins zu eins dieselbe ist - funktioniert es. (Auch das Cookie-Auslesen)

Kann vielleicht auch der Hoster/die PHP-Version schuld sein?
Wenn der Code 1zu1 identisch ist, ist es natürlich wahrscheinlich, dass es am Hoster liegt. Es kann aber auch an der Domain liegen. Kannst du mal eine Testdatei erstellen, die den Cookie ausliest und diese in den Ordner des Forums schieben? Geht es dann?
Alisha schrieb:
Code:
<?php
define("IN_MYBB",1);
chdir("../forum");
require_once "../forum/global.php";
?>

... html ...

<?php
echo "session: " . $mybb->user['uid'];
if($mybb->user['uid'] != "0") {
    echo " " . $mybb->user['username'];
    echo "bla";
}
?>
Alisha schrieb:im Ordner neben dem Forumsordner - oder auch erreichbar mit Klick auf AllAccess im Footer.
Wenn es genau so ist, kann es eigentlich nicht gehen.
//edit:
Doch, kann es und sollte es. Benutzt trotzdem mal den Code von unten bitte.
Du gehst zweimal aus dem Ordner heraus. Versuch es mal nur mit:
PHP-Code:
<?php
define
("IN_MYBB",1);
require_once 
"../forum/global.php";
if(
$_COOKIE['mybbuser']) {
    // Information des Cookies zerlegen
    $cookieinfo explode("_"$_COOKIE['mybbuser']);
    // Query, um die Infos zum Benutzer abzurufen
    $query mysql_query("SELECT * FROM mybb_users WHERE uid = '".intval($cookieinfo[0])."'");
    $userinfo mysql_fetch_array($query);
    // Benutzernamen ausgeben
    echo $userinfo['username'];
    echo "cookie!";
} else {
    echo "kein cookie";
}
echo 
'<br /><br /><hr /><br /><br />';
print_r($mybb);
?>
Und teil uns das Ergebnis mit.
@Michael: ja, dann geht es!

@Jan: ohne chdir() geht nichts -> Fehlermeldung, hab dann das hier geschrieben:

Code:
chdir("../forum");
require_once "global.php";

So wird alles angezeigt wie gehabt - also nix mit Session oder Cookie...
Kannst du den Cookie-Pfad bitte mal nur in / ändern, dann alle Cookies und den Cache im Browser löschen und es nochmal versuchen?
Wenn du den Cookiepfad so anpasst wie Michael es sagt klappt es.
Du kannst Cookies eigentlich nur da auslesen, wo du sie gesetzt hast. Und das ist in deinem Fall:
.fotolounge.fo.funpic.de/forum/
Du möchtest sie aber unter:
.fotolounge.fo.funpic.de/seite/
auslesen. Das geht nicht.
Wenn du sie jetzt unter:
.fotolounge.fo.funpic.de
setzt, kannst du sie auch unter
.fotolounge.fo.funpic.de/forum/ und .fotolounge.fo.funpic.de/seite/
auslesen.
ABER:
Wofür brauchst du die Cookies denn?
Du kannst ja so auch alles prüfen. So hast du alle Infos über das Forum in einem großen Array.
Seiten: 1 2