Seite 1 von 1

Überprüfung des Benutzerstatus in Externen-HP

Verfasst: 17.09.2005 16:09
von Nana23
In der Dokumentation http://www.phpbb.de/doku/kb/artikel.php?artikel=152
steht zwar wie es geht, nur wie macht man das?

Code: Alles auswählen

Überprüfung des Benutzerstatus

Um zu überprüfen, ob ein Benutzer angemeldet ist, muss die Session-ID entweder aus dem Cookie (Cookie-Name: der im Admin-Bereich festgelegte Cookie-Name ergänzt um '_sid' (ohne Anführungszeichen) oder aus dem POST/GET-Parameter sid abgefragt werden. Dabei müssen alle drei Möglichkeiten geprüft werden! Um in phpBB einer URL ggf. eine Session-ID anzufügen, ist die Funktion append_sid() zu verwenden.

Diese Daten sind dann mit den Daten der Tabelle phpbb_sessions abzugleichen (siehe oben). Hierbei ist darauf zu achten, dass nur dann eine gültige Sitzung übergeben wurde, wenn:

    * session_id existiert,
    * session_logged_in 1 ist,
    * session_time + 3600 in der Zukunft liegt (sofern im Admin-Bereich keine andere Sitzungslänge festgelegt wurde; die Sitzungslänge ist in der Tabelle phpbb_config unter session_length gespeichert) und
    * der Benutzer auf aktiv (user_active = 1 in phpbb_users) gesetzt ist. (ggf. wäre auch die Bann-Funktion und die IP-Adresse zu prüfen)

Wie erfahre ich den die SessionID aus dem Cookie?
So das ich auslesenkann ob der Userangemeldet ist oder nicht.

Verfasst: 17.09.2005 16:13
von Nana23
hab es auch schon so probiert:

Code: Alles auswählen

<?php
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);

//
// Start session management
//
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);
//
// End session management
//

if( !$userdata['session_logged_in'] )
{
message_die(GENERAL_MESSAGE, 'nicht eingeloggt');
}

///inhalt..
?> 


Nur funktionieren dann meine anderen PHP Script nicht mehr :(
Die Script funktionieren über die var action_page und werdne über URL übergeben


Hier mal nen Beispiel Code:

Code: Alles auswählen

<?php




//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './forum/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);


//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);


//<!-- NAVIGTAION -->

include 'navigation-auslesen.php';


//<!-- NAVIGTAION -->
       

//<!-- INHALT -->       

<?php
if($userdata['session_logged_in'])
{

echo " Eingelogged";
echo $userdata['session_page'];
}
else
{
echo "<form action=\"forum/login.php\" method=\"post\">";
echo "Benutzername: <input type=\"text\" name=\"username\"><br>";
echo "Passwort: <input type=\"password\" name=\"password\"><br>";
echo "Autologin? <input type=\"checkbox\" name=\"autologin\"><br>";
echo "<input type=\"hidden\" name=\"redirect\" value=\"../index.php\">";
echo "<input type=\"submit\" name=\"login\" value=\"Login\">";
echo "</form>";
}
if($action_page == '')
{
echo "<table width=\"423\" cellspacing=\"0\" cellpadding=\"0\">";
echo "<tr>";
echo "<td class=\"content_top\">Willkommen</td>";
echo "</tr>";
echo "<tr>";
echo "<td class=\"content_middle\">Ich wünsche euch viel Spass auf meiner Page.";
echo "<BR>";
echo "Im Moment ist die Page noch im Aufbau, soll sich aber nach ihrer Fertigstellung mit folgenden Themen befassen:";
echo "<BR>-CSS";
echo "<BR>-AirAttack";
echo "<BR>-PHP";
echo "<BR>-Party / Saufen";
echo "<BR>-Frauen :P";
echo "<BR>";
echo "<B>Greetz Martin</B>";
echo "</td>";
echo "</tr>";
echo "<tr>";
echo "<td class=\"content_bottom\"></td>";
echo "</tr>";
echo "</table>";
}

Verfasst: 17.09.2005 20:05
von Nana23
kann mir keiner helfen?

ich hab jetzt mal die login kontrolle eingebaut so:

Code: Alles auswählen

<?php

//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './forum/';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);


//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);


if($userdata['session_logged_in'])
{

echo " Eingelogged";
echo $userdata['session_page'];
}
else
{
echo "<form action=\"forum/login.php\" method=\"post\">";
echo "Benutzername: <input type=\"text\" name=\"username\"><br>";
echo "Passwort: <input type=\"password\" name=\"password\"><br>";
echo "Autologin? <input type=\"checkbox\" name=\"autologin\"><br>";
echo "<input type=\"hidden\" name=\"redirect\" value=\"../index.php\">";
echo "<input type=\"submit\" name=\"login\" value=\"Login\">";
echo "</form>";
}


?>

Diese lass ich dann in meiner inde.php includen
Jedoch funktionieren dann keine Script weiterhin!!!
Wenn ich zum beispiel auf den link
index.php?action_page=links
gehe passiert nichts mehr
woran könnte das liegen?

Verfasst: 18.09.2005 19:25
von Nana23
TOP