Also, schlüsseln wir mal auf, was du an PHP-Code in deinem Script hast:
PHP-Code:
$abfrage0 = @mysql_query("SELECT username FROM registry WHERE passwort = PASSWORD('$passwort') AND username = '$username'");
if(@mysql_num_rows($abfrage0) == 1);
{
$abfrage1 = @mysql_result($abfrage0, 0, 0);
$username = $abfrage1;
session_start();
session_register("$username");
}
1. mysql_query, Ergebnis geht in $abfrage0
2. if-anfrage, wieviele zeilen in $abfrage0 sind, wenn es nur eine ist kommt
---> Hier der erste Fehler: nach dem if kommt kein ; sondern die öffnende schweifklammer, und am ende die schließende.
3. $abfrage1 wird mit mysql_result gefüllt
---> Warum denn mysql_result? mysql_fetch_array ist doch viel einfacher zu bedienen! man erhält ein assoziatives array, welches zum Bleistift in diesem Falle den usernamen in der variablen $abfrage1[username] gespeichert hätte.
4. $username wird gleich $abfrage1 gesetzt
---> bei der verwendung von ...fetch_array würde dies so aussehen: $username = $abfrage1[username];
5. session starten und usernamen registrieren
---> dummer fehler! man registriert so: session_register("username"); bzw. bei den aktuellen PHP-Versionen kann man auch (bzw. soll man auch) so registrieren: $_SESSION[username] = $abfrage1[username]; somit kann man sich auch den zwischenschritt zur definition von $username sparen.
Ich würde das Script mal folgendermaßen umstellen:
PHP-Code:
$abfrage0 = @mysql_query("SELECT username FROM registry WHERE passwort = PASSWORD('$passwort') AND username = '$username'");
if(@mysql_num_rows($abfrage0) == 1)
{
$abfrage1 = @mysql_fetch_array($abfrage0);
session_start();
$_SESSION[username] = $abfrage1[username];
}
was jetzt aber immernoch fehlt ist der aufruf der userok.php bzw. userfail.php. das erreicht man am besten per header und die werden einfach in die vorhandene if-anweisung eingegliedert, also so:
PHP-Code:
$abfrage0 = @mysql_query("SELECT username FROM registry WHERE passwort = PASSWORD('$passwort') AND username = '$username'");
if(@mysql_num_rows($abfrage0) == 1) {
$abfrage1 = @mysql_fetch_array($abfrage0);
session_start();
$_SESSION[username] = $abfrage1[username];
header("Location: userok.php");
} else {
header("Location: userfail.php");
}
Ich hoffe ich konnte helfen und es funzt jetzt!