![]() |
PHP: Session_register registriert Vars, aber Values nicht
Hi,
erstmal bisschen Code: Index.php:
Code:
LogIn.php:
<?
session_start(); if ($login) // DAS hier ist nur zum Test { echo 'ja'; } ?> <form action="login.php" method="post" name="leaderlogin" id="leaderlogin"> Passwort: <input name="lpw" type="password" id="lpw" size="35" maxlength="20"> <input name="lsub" type="submit" id="lsub" value="LogIn"> </form>
Code:
<?
session_start(); include('inc/function.inc.php'); if (isset($_POST['lsub'])) { $pw = $_POST['lpw']; DoLogin('TSD_Spider', $pw); } ?> Function.Inc.php:
Code:
Eigentlich sollte das mit den Session, so wie es jetzt ist, funktionieren. Die Variablen werden registriert, aber nicht, was ich ihnen zuweise.
function DoLogin($username, $pw)
{ Connect(); $sql = "SELECT * FROM users WHERE (username = '$username')"; $result = mysql_query($sql); if (mysql_num_rows($result) == 1) { $row = mysql_fetch_assoc($result); if ($row['active'] == 1) { if ($row['passwort'] == md5($pw)) { session_start(); session_register('user', 'state', 'login'); $user = $username; $state = $row['status']; $login = true; header('Location: index.php'); } else { echo 'Falsches Passwort '; } } else { echo 'Benutzername inaktiv'; } } else { echo 'Benutzername nicht vorhanden'; } } Wenn ich per print_r($_SESSION) das Session-Array ausgebe kommt das raus:
Code:
Wie man sieht, wurden die Variablen registriert, aber die Zuweisungen nicht (ich wiederhole mich^^).
Array ( [user] => [state] => [login] => )
Wenn ich nun aktuallisiere, dann sind auch die Zuweisungen gelöscht wurden. Nein, ich rufe kein Session_destroy(); auf. Ich hab noch ein anderes LogIn-Script, für eine andere Seite geschrieben, dort mach ich das haargenau so und dort funktioniert, aber in diesem Script nicht. Ich weiß nicht warum. Hat vllt. einer eine Idee? [edit=alcaeus][Klammern entfernt] Mfg, alcaeus[/edit] |
Re: [PHP] Session_register registriert Vars, aber Values nic
Ahhh... da will jemand globale Variablen nutzen. Jehova, Jehova! :wink:
Dein Code würde mit "register_globals = on" funktionieren. Aber jetzt komm bloß nicht auf die Idee register_globals auf on zu setzen. Die sind aus gutem Grund seit 4.1 standardmäßig auf off und sollen auch so bleiben. Mach die Zuweisung einfach so:
Code:
Bis neulich ...
session_register('user', 'state', 'login');
$_SESSION['user'] = $username; $_SESSION['state' = $row['status']; $_SESSION['login'] = true; |
Re: [PHP] Session_register registriert Vars, aber Values nic
JA! :love:
Danke! Das komische ist, in dem anderen Script, von dem ich sprach, hab ich das genauso gemacht und dort wird nirgendwo register_global aufgerufen und es funktioniert. Warum soll man register_global nicht auf on stellen? |
Re: [PHP] Session_register registriert Vars, aber Values nic
Zitat:
Zitat:
Nur soviel: Stell Dir folgendes Szenario vor. Es existiert eine Session-Variable namens "test" und in der url wird ?test=dingens übergeben. Welchen Wert beinhaltet nun $test? Den aus der Session oder den des GET-Parameters? Greift man über $_GET['test'] bzw. $_SESSION['test'] zu ist es eindeutig. Du hast Dir genau diesen Fallstrick selber eingebaut. Das hier:
Code:
sollte das Problem verdeutlichen. Klar meinst Du in diesem Fall den Wert von "login" aus der Session aber es ist nicht eindeutig. Hängt man "?login=true" an die url ist der login u.U. überwunden ohne, daß man nach einem pass gefragt wurde.
if ($login) // DAS hier ist nur zum Test
{ echo 'ja'; } Also immer über $_SESSION, $_GET, $_POST, etc... zugreifen. Bis neulich ... |
Re: [PHP] Session_register registriert Vars, aber Values nic
Hi,
danke. Beim Beispiel hats klick gemacht, warum man das nicht auf on stellen sollte. Ist ja wie mit Delphi und Globalen Variablen (Igitt) |
Re: PHP: Session_register registriert Vars, aber Values nich
session_register soll überhaupt nichtmehr verwendet werden.
Ein Mix aus session_register und $_SESSION ist eig. Schwachsinn. In dem obigen Code kann das session_register komplett weggelassen werden, $_SESSION['...'] = "..." reicht vollkommen um es direkt zu definieren. Denn session_register arbeitet genauso mit register_globals = on air |
Re: PHP: Session_register registriert Vars, aber Values nich
Hi,
wenn ich das Session_register weglasse, dann funktioniert es nichtmehr ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz