[PHP] - Sessionabfrage will nicht...
-
Hi Zusammen!
Eigentlich hatte ich vor, dass wen 'username' registriert, also sich vorher eingeloggt, ist, dass dann im Menu LOGOUT, angezeigt wird, ansonsten Login!
<?php if(!session_is_registered('username')) echo "<br><a href=\"log_in.php\">Login</a>"; else echo "<br><a href=\"logout.php\">Logout</A>"; ?>
nun, in der log_in.php kann man sich einloggen! GEHT WUNDERBAR! Ich komme so auf jede Seite wo es logins braucht, da ich eingeloggt bin!
Doch im menu wird immer nur Login angezeigt, AUCH wenn ich EINGELOGGT bin... komisch!
Gibts da noch eine Lösung oder ist das gar nicht möglich??mfg
Pro
-
Hmmmm... ich kenne session_is_registered() gar nicht. Könntest auch 'ne Variable in der Session anlegen und falls diese vorhanden ist, dann machst du echo "logout" und wenn sie nicht angelegt ist machst du echo "login"
Wäre 'ne Möglichkeit, aba da gibts unter Garantie was besseres
MfGTobsen
-
Original erstellt von Tobsen:
**
Wäre 'ne Möglichkeit, aba da gibts unter Garantie was besseres
MfGTobsen**
du sagst es... die variable is username... ausschnitt der login.php:
<?php session_start(); session_register("username"); ?> <? include ("config.php"); $password=crypt($password,$schluessel); $password .= "\n"; $log=0; $userdatei = fopen ("member_log_pwd.txt","r"); //In dieser "u_pass.txt" werden alle Userdaten gespeichert! //Damit nicht jeder die Passwörter auslesen kann, sind sie verschlüsselt! while (!feof($userdatei)) { $zeile = fgets($userdatei,50); $userdata = explode("|", $zeile); if ($userdata[0]==$user ....... ...
-
<?php
if(login_erfolgreich == true)
{
session_start();
$_SESSION['username'] = $username;
}if(empty(\_SESSION['username']) || !isset(_SESSION['username'])
{
echo "login";
}
else
{
echo "logout";
}
?>
-
ok. thx, habe jetzt
<?php if(empty($_SESSION['username']) || !isset($_SESSION['username'])) { echo "<br><a href=\"log_in.php\">Login</a>"; } else { echo "<br><a href=\"logout.php\">Logout</A>"; } ?>
und in der Login.php
<?php session_start(); session_register("username"); $_SESSION['username'] = $username; ?>
keine Ahnung, aber es will immer noch net klappen... ... komisch! wirlich komisch.. Oder bin ich zu blöd???
-
session_register() kannste schon mal weglassen. Und wenn _SESSION['username']) true ist.
-
okay.. warte..
Hier mal den ganzen code der Login.php<?php session_start(); session_register("username"); $_SESSION['username'] = $username; ?> <? include ("config.php"); $password=crypt($password,$schluessel); $password .= "\n"; $log=0; $userdatei = fopen ("member_log_pwd.txt","r"); //In dieser "u_pass.txt" werden alle Userdaten gespeichert! //Damit nicht jeder die Passwörter auslesen kann, sind sie verschlüsselt! while (!feof($userdatei)) { $zeile = fgets($userdatei,50); $userdata = explode("|", $zeile); if ($userdata[0]==$username && $userdata[1]==$password) { $log=1; } } fclose($userdatei); if ($log==1) { ?> <br><br><br><br><br><br><hR><center><b>Login erfolgreich!</b> Bitte klicke <a href="index.php">hier</a></center><hr> <? } else { die ("Benutzername oder Passwort falsch!<hr><a href=\"log_in.php\">Erneut versuchen</a>"); } ?>
Könnte es sein, dass ich _SESSION['username']=username zu früh gesetzt habe?
-
Also ich sehe da mehrere Fehler:
1. if (userdata[0]==username && userdata[1]==password)
- da scheint $username leer zu sein. (sehe jedenfalls nicht wo du es definierst!?2. session_register() kannst du echt einfach weglassen
3. Du sollst $_SESSION['username'] = $username erst dann der session zuweisen, wenn der login erfolgreich war.
Also z.B. if(login == erfolgreich)
{
weise session die variable username zu -> $_SESSION['username'] = $username;
}sonst ist die bedingung ja immer true!
so das wars nach erstem überfliegen.Falls es immer noch nicht klappt, schreib nochmal!
MfGTobsen
-
also.
1. FEHLER SIND ES KEINE!
a) Denn der Login klappt auch sonst IMMER wunderbar!
b) Der Bezug kommt aus dem Formular <input type="text" name=username....
c) das Forumar verweist auf <form action="member_login.php" method=....2. Eben dorthin, wo der COder der login.php ist...
a) Hab _SESSION['username']=username; nach IF gesetzt...
b) Funktioneirt leider immer noch nicht
c)Mfg
Pro
-
1. ok, tschuldigung!
2. schick nochmal den code so wie du ihn jetzt hast, dann schau ich mir das nochmal offline an.
MfGTobsen
-
<?php session_start(); ?> <? include ("config.php"); $password=crypt($password,$schluessel); $password .= "\n"; $log=0; $userdatei = fopen ("member_log_pwd.txt","r"); //In dieser "u_pass.txt" werden alle Userdaten gespeichert! //Damit nicht jeder die Passwörter auslesen kann, sind sie verschlüsselt! while (!feof($userdatei)) { $zeile = fgets($userdatei,50); $userdata = explode("|", $zeile); if ($userdata[0]==$username && $userdata[1]==$password) { $_SESSION['username'] = $username; $log=1; } } fclose($userdatei); if ($log==1) { echo "<br><br><br><br><br><br><hR><center><b>Login erfolgreich!</b> Bitte klicke <a href='index.php'>hier</a></center><hr>"; } else { die ("Benutzername oder Passwort falsch!<hr><a href=\"log_in.php\">Erneut versuchen</a>"); } ?> //Dann in der index.php folgendermaßen anfangen: <? session_start(); if(empty($_SESSION['username']) || !isset($_SESSION['username'])) { echo "Login"; } else { echo "Logout"; } ?>
[ Dieser Beitrag wurde am 01.05.2003 um 13:33 Uhr von Tobsen editiert. ]
-
Ok. Vielen Dank!
Klappt so!