Fehler im Login-Skript
Küppers
- php
Untenstehendes Script funktioniert für ein Login, aber dennoch erscheint nach dem Absende-Button des Anmeldeformulars die Fehlermeldung:
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 0
Anmerkung: Die Variablenzuordnung in Zeile 3 bis 5 hab ich zusätzlich eingefügt, sonst funktioniert das Skript nicht (es werden dann offensichtlich nicht die Felder vom Login-Fomular übertragen).
<?php
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
session_register("username");
?>
<?
include ("config.php");
$password=crypt($password,$schluessel);
$password .= "\n";
$log=0;
$userdatei = fopen ("user.txt","r");
while (!feof($userdatei))
{
$zeile = fgets($userdatei,50);
$userdata = explode("|", $zeile);
if ($userdata[0]==$username && $userdata[1]==$password)
{
$log=1;
}
}
fclose($userdatei);
if ($log==1)
{
?>
Fügen Sie hier den Inhalt der Inhaltspage ein!
<? echo "<center><a href="$logoutseite">Logout</a></center>"; ?>
<?
}
else
{
echo "Benutzer existiert nicht oder das Passwort ist falsch!<br><a href="$loginseite">zurück</a>";
}
?>
Das ist kein Fehler, sondern eine Warnung...
Erklärungen gibts bei google, wenn du nach der Fehlermeldung suchst.
Session_register ist veraltet und soll nichtmehr verwendet werden. Mach das über den Session Container, also $_SESSION["username"] = $username;
gruß, japo
Ich habe leider nicht viel Ahnung von PHP. Brauche ich nur
session_register("username");
durch
$_SESSION["username"] = $username;
ersetzen oder muss ich sonst noch etwas im Skript ersetzen?
Danke
Das ist kein Fehler, sondern eine Warnung...
Erklärungen gibts bei google, wenn du nach der Fehlermeldung suchst.
Session_register ist veraltet und soll nichtmehr verwendet werden. Mach das über den Session Container, also $_SESSION["username"] = $username;gruß, japo
1> session_start();
2> $username = $_POST['username'];
3> $password = $_POST['password'];
4> $password2 = $_POST['password2'];
5> session_register("username");
in deinem fall reicht es aus, wenn du session_register(...) durch $_SESSION["username"] = $username; erstetzt.
in 2> weisst du den Wert des übergenenen Formularfeldes der HTML-datei der variablen $username zu. mit $_SESSION["username"] = $username; machst du jetzt genau das gleiche im bezug auf die Session-Variable.
Du musst halt nur beachten: wenn du auf die gespeicherte session variable zugreifen willst, musst du $_SESSION["username"] benutzen. zb
echo $_SESSION["username"] . " ist dein benutzername";
HEy,
hab auch gerade so einen ähnlichen Login gebaut.
Mich würde mal interessieren, wie sicher soetwas ist. Also abgehört werden kann sie verbindung ja trotzdem noch dagegen könnte man mit SSL vorgehen, stimmts?
Aber was gibt es sonnst noch für sicherheitslücken.
gruß
Alex