sessions ohne htaccess & datenbank

nisi114

Grünschnabel
Hallo

habe mir auf meiner Homepage eine Index-Seite erstellt, die Benutzername und Passwort abfragt. Die Daten werden in einer Session gespeichert. Beim hochladen und ausführen kam nun folgender Fehler:

Warning: Unknown(): Your script possibly relies on a session side-effect
which existed until PHP 4.2.3. Please be advised that the session
extension does not consider global variables as a source of data, unless
register_globals is enabled. You can disable this functionality and this
warning by setting session.bug_compat_42 or session.bug_compat_warn to
off, respectively. in Unknown on line

Mein Skript sieht so aus
<? if ($_POST["username"]=="") { ?>
<!-- HTML CODE-->
<? } else {
$username=$_POST["username"];
$password=$_POST["password"];
session_start();
if ($username=="hallo" && $password=="test"){
$permission="yes";
}

$username=$_POST["username"];
session_register("permission");
session_register("username");

if ($permission=="yes") { ?>
<html>
<head>
<meta http-equiv="refresh" content="0; URL=start.php"/>
</head>
</html>

<? } else { ?> <!--HTML-Code-->
<? } ?>
<? } ?>

Da ich absoluter php Anfänger bin, bin ich jetz auf das Problem gestoßen, dass man wohl nicht mit register_globals arbeitet. Kann mir jemand erklären was an dem Skript soweit falsch ist bzw wie man es umschrieben muss damit es klappt? Das es nicht unbedingt das sicherste ist, ist klar..

Lg, nisi
 
Der Fehler liegt darin, dass du veralteten PHP-Code nutzt.
Seit PHP > 4.2.3 sollte man Anstelle "session_register($bla)" das Session-Array nutzen.
In Deinem Fall musst Du also deine Variable in der Session folgend speichern:

Code:
session_start();
$_SESSION['permission'] = "yes"
$_SESSION['username']  = $username;

Löschen kannst Du deine Session-Variablen dann mit

Code:
$_SESSION['permission'] = NULL;
$_SESSION['username']  = NULL;

bzw die Session mit
Code:
session_destroy();

beenden.

LG
Andy
 
Zurück