Seite 1 von 1

Loginstatus Abfragen

Verfasst: 11.06.2008 10:20
von Shay
Hallöchen ^^

Ich hab ein externes Login System was auch gut funktioniert.

Ich möchte nun jedoch je nach dem ob jemand ein oder ausgeloggt ist ein bestimmtes Textfeld ändern.
Meine Abfrage sieht so aus:

Code: Alles auswählen

if ( $userdata['session_logged_in'] )
{
echo 'Eingeloggter Text';
}
else
{
echo 'Ausgeloggter Text';
}
Nun habe ich das Problem, das mir mein ausgeloggter Text nur angezeigt wird, wenn ich vorher angemeldet war und mich ausgeloggt habe. Ich würde jedoch gern das man standartmäßig den Ausgeloggten Text sieht wenn man halt nich eingeloggt is und auch vorher nicht eingeloggt war ^^
Also das auch Gäste halt den Ausgeloggten Text sehen.

Würde mich freuen wenn mir da jemand helfen kann

Verfasst: 11.06.2008 10:47
von Dr.Death
Anscheinend wird bei deinem externen Loginscript die alte Session nicht aus der Datenbank gelöscht.

Verwende dazu den Befehl:

Code: Alles auswählen

$user->session_kill();
Ein Beispiel Script findest Du dazu hier: [Snippet] Externer Login / Logout für phpBB3

Verfasst: 11.06.2008 13:49
von Shay
Danke schonmal für die Antwort ^^

Aber ich weiß nich wo ich das hinsetzen soll +g+ bin noch nich so fit in dem ganzen.

Da ich phpbb2 nutze post ich hier nochmal mein login script damit du mir sagen kannst wo ich den kill hinsetzen muss ^^'

Code: Alles auswählen

<?php

session_start();


//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './shay_04/';
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(isset($_GET['sid']) || $_GET['sid'] != $_SESSION['sid']) {
    $_SESSION['sid'] = $_GET['sid'];
}

/***** Inhaltsbereich ******/


//Login/Logout
if ( $userdata['session_logged_in'] )
{
    // Code, wenn ein Benutzer angemeldet ist
    ?> das is aber toll <br />
   <a href="shay_04/login.php?logout=true&sid=<?=$userdata['session_id'];?>&redirect=../logged.php">Logout</a>
<?
}
else
{
    // Code, wenn kein Benutzer angemeldet ist
    ?><form action="shay_04/login.php" method="post">
    Benutzername: <input type="text" name="username"><br>
    Passwort: <input type="password" name="password"><br>
    Autologin? <input type="checkbox" name="autologin"><br>
    <input type="hidden" name="redirect" value="../logged.php">
    <br>
    <input type="submit" name="login" value="Login">
    <br />

<?
}


?>

Verfasst: 11.06.2008 14:20
von Jan500
hi

wieso machst du

Code: Alles auswählen

if(isset($_GET['sid']) || $_GET['sid'] != $_SESSION['sid']) {
    $_SESSION['sid'] = $_GET['sid'];
} 
? die sid wird bereits in $userdata['session_id'] gespeichert und wird entweder aus den cookies gelesen oder aus der $_GET also ich dneke da kommt bei dir das problem her...
lösche/kommentiere mal den code oben aus und lösch auch session_start(); oben das wird bereits alles vom phpbb gemacht

Jan

Verfasst: 11.06.2008 21:26
von Shay
Hiho nochma ^^

Hab men fehler gefunde, ich hab einfach den head aus der login in der falschen seite gehabt -.-' und warum das da steht..ka xD ich bin recht neu was php angeht udn fummel mir schnippsel zusamm bis was klappt ^^

Aber nochmal ne andere Frage, undzwar würde ich gerne eine Abfrage machen, wenn der nutzer eingeloggt ist, sieht er z.b. neusten 5 forenbeiträge die er noch nicht gelesen hat.
Hab hier auch schon bisschen rumgesucht aber irgendwie hat das alles nur fehler ausgespuckt ^^

Shay