Seite 1 von 1
Forums-Logout auf Webseite
Verfasst: 06.10.2007 17:35
von legiondesringes
Hallo, ich bin noch ein absoluter php-Neuling und habe ein kleines (evtl. auch mittleres) Problem. Ich habe auf meiner Homepage ein Login-Formular für das phpbb-Forum eingebaut. Das klappt auch sehr gut. Nun wollte ich als nächste Stufe erreichen, dass nach dem Login der Logout-Button anstelle des Login-Forms erscheint. Dies klappt leider nicht. Ich es wird immer nur wieder das Loginform angezeigt. Hier mal der Code:
Code: Alles auswählen
<?php
if ($user->data['user_id'] == 0)
{
?>
<form action="/Forum/login.php" method="post" style="background-image:url(images/gen_background.jpg)">
Benutzername:<br>
<input class="login" type="text" name="username"><br>
Passwort:<br>
<input class="login" type="password" name="password"><br>
Eingeloggt bleiben
<input class="checkbox" type="checkbox" name="autologin"><br>
<input type="hidden" name="redirect" value="../index2.php"/>
<input class="mainoption" type="submit" name="login" value="Login">
</form>
<?php
}
else
{
?>
<form action="/Forum/index.php?mode=logout&sid=<?php echo $user->data['session_id']; ?>" method="post">
<input type="hidden" name="redirect" value="../index2.php" />
<input type="submit" value="Logout" /></form><br>
<?php
}
?>
Ich hoffe ihr könnt mir weiterhelfen. In der Suche habe ich nämlich nichts gefunden.
Vielen Dank im Vorraus
Tim
Verfasst: 07.10.2007 08:33
von Underhill
Hi,
ist denn nach dem Login
vorhanden? oder welcher Wert ist da drinn?
Einfach mit mal
Code: Alles auswählen
<?php
echo $user->data['user_id'] . '<hr />';
if ($user->data['user_id'] == 0)
ausgeben lassen..
Ich gehe mal davon aus, dass da nichts anderes ausser NULL drinn sein kann..
Gruß
Underhill
Verfasst: 07.10.2007 15:18
von legiondesringes
Danke erst einmal für deine Hilfe.
Ich habe deine Code-Zeile eingefügt.
Underhill hat geschrieben:
Einfach mit mal
Code: Alles auswählen
<?php
echo $user->data['user_id'] . '<hr />';
if ($user->data['user_id'] == 0)
ausgeben lassen..
Ich gehe mal davon aus, dass da nichts anderes ausser NULL drinn sein kann..
Tatsächlich gibt er mir gar nichts aus. Es erscheint nur die <hr>-Linie.
Also wird scheinbar gar keine user_id geladen.
Ich poste mal sämtlichen php-Code meiner Seite:
Anfang:
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);
?>
Loginform:
Code: Alles auswählen
<?php
echo $user->data['user_id'] . '<hr />';
if ($user->data['user_id'] == 0)
{
?>
<form action="/Forum/login.php" method="post" style="background-image:url(images/gen_background.jpg)">
Benutzername:<br>
<input class="login" type="text" name="username"><br>
Passwort:<br>
<input class="login" type="password" name="password"><br>
Eingeloggt bleiben
<input class="checkbox" type="checkbox" name="autologin"><br>
<input type="hidden" name="redirect" value="../index2.php"/>
<input class="mainoption" type="submit" name="login" value="Login">
</form>
<?php
}
else
{
?>
<form action="/Forum/index.php?mode=logout&sid=<?php echo $user->data['session_id']; ?>" method="post">
<input type="hidden" name="redirect" value="../index2.php" />
<input type="submit" value="Logout" /></form><br>
<?php
}
?>
Ich hoffe ihr könnt mir weiterhelfen.
Gruß
Tim
Verfasst: 07.10.2007 16:07
von Underhill
Hi,
teste mal
Ist da etwas nach der Anmledung drinn?
Gruß
Underhill
Verfasst: 07.10.2007 22:42
von legiondesringes
Zuerst einmal: Herzlichen Dank.
Mit
wird die ID nun tatsächlich ausgegeben.
Nicht eingeloggt: ID=-1
Eingeloggt: ID= 17
Leider kam nach dem Login noch nicht der Logout-Button.
Ich habe dann rumexperimentiert und in der If-Bedingung auch
user->data durch userdata ersetzt. Außerdem musste noch was in Form action etwas geändert werden.
Jetzt klappt das wunderbar.
Ich habe nur noch eine Frage: Wann benutze ich user->data und wann userdata?
Gruß
Tim
Verfasst: 08.10.2007 16:26
von Underhill
Hi,
$userdata[] ist ein Array das nach den nötigen phpBB-Includes verfügbar ist.
mit $user->data[] wird innerhalb der phpbb Datei mit einem Array gearbeitet (gepusht?)
Gruß
Underhill
Verfasst: 08.10.2007 21:51
von gn#36
Arbeitest du mit phpbb2 oder phpbb3?
Die beiden Versionen verwenden unterschiedliche Variablen.
In phpbb2 stehen alle Userdaten in $userdata und es gibt das Objekt $user nicht (zu dem auch $user->data gehört). Phpbb3 kennt dagegen $userdata nicht.
Aus den eingebundenen Includes würde ich schließen dass du phpbb2 nutzt, daher solltest du alles auf $userdata umstellen.
Verfasst: 20.11.2007 14:41
von legiondesringes
ich hab jetzt folgendes eingebaut. Klappt bestens:
Code: Alles auswählen
<?php
//Benoetigte 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);
//fuer LogOut Button
if ($_POST['ausloggen'] == 1){
$userdata = array();
$_SESSION = array();
}
?>
(das ist im Kopf)
login/ Logout selbst:
Code: Alles auswählen
<?php
if ($userdata['user_id'] == -1)
{
?>
<tr>
<td>Login</td>
</tr>
<tr>
<td>
<form action="/FORUM/login.php" method="post"
>
Benutzername:<br>
<input class="login" type="text" name="username"><br>
Passwort:<br>
<input class="login" type="password" name="password"><br>
Eingeloggt bleiben
<input class="checkbox" type="checkbox" name="autologin"><br>
<input type="hidden" name="redirect" value="../index2.php"/>
<input type="submit" name="login" value="Login">
</form>
<a style="font-size:12px; color:#733A1A;" href="/FORUM/profile.php?mode=register&sid=<?php echo $userdata['session_id']; ?>">Registrieren</a>
<?php
}
else
{
?>
<tr>
<td>Logout</td>
</tr>
<tr>
<td>
<form action="/FORUM/login.php?logout=true&sid=<?php echo $userdata['session_id']; ?>"
method="post">
<input type="hidden" name="redirect" value="../index.php" />
<input type="submit" value="Logout" />
</form><br>
<?php
}
?>
Verfasst: 20.11.2007 21:25
von onken
danke legiondesringes
