MyBB.de Forum
Session einbinden - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Archiv (https://www.mybb.de/forum/forum-57.html)
+--- Forum: MyBB 1.2.x und älter (https://www.mybb.de/forum/forum-27.html)
+---- Forum: Allgemeiner Support (https://www.mybb.de/forum/forum-36.html)
+---- Thema: Session einbinden (/thread-5621.html)

Seiten: Seiten: 1 2


Session einbinden - Alisha - 18.04.2007

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


RE: Session einbinden - Michael - 18.04.2007

Wo liegt die externe Seite?


RE: Session einbinden - Alisha - 18.04.2007

im Ordner neben dem Forumsordner - oder auch erreichbar mit Klick auf AllAccess im Footer.

link
Aber nicht schrecken - is potthässlich, da Prototyp Wink


RE: Session einbinden - Michael - 18.04.2007

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?tid=4854&pid=34829#pid34829
Ggf. kannst du dann noch eine Abfrage an die Datenbanktabelle sessions schicken, um zu verifizieren, dass der Benutzer tatsächlich angemeldet ist.


RE: Session einbinden - Alisha - 18.04.2007

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?


RE: Session einbinden - Michael - 18.04.2007

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?


RE: Session einbinden - Jan - 18.04.2007

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.


RE: Session einbinden - Alisha - 18.04.2007

@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...


RE: Session einbinden - Michael - 18.04.2007

Kannst du den Cookie-Pfad bitte mal nur in / ändern, dann alle Cookies und den Cache im Browser löschen und es nochmal versuchen?


RE: Session einbinden - Jan - 18.04.2007

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.