Hallo,
if (resulttext.search("Success") >= 0) {
Hier kannst du besser .indexOf("Success") > -1 verwenden. search() ist für reguläre Ausdrücke gedacht.
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
req.setRequestHeader("Content-length", formdaten.length);
req.setRequestHeader("Connection", "close");
Diese Zeilen dürften eigentlich unnötig sein. Bei POST-Requests ist application/x-www-form-urlencoded Standard, und der Browser setzt auch die korrekte Content-Length. Die Angabe von Connection: Close ist nicht zwingend nötig, lass den Browser entscheiden, wann er die TCP-Verbindung schließt.
[code lang=html]
$verbindung = @mysql_connect($server,$login,$pass);
$test_pw = md5($password);
$abfrage = "select anzeigename,loginname from userlogins where loginname='$loginname' AND password='$test_pw'";
Dieses Script hat verschiedene Schwächen und Sicherheitslücken. Problematisch sind hier:
- Verwendung von register_globals anstatt $_GET, $_POST usw.
- Verwendung der veralteten mysql_*-Funktionen anstatt mysqli oder PDO mit Prepared Statements
- Eingabedaten werden ohne Behandlung (Escaping) in SQL-Anfragen eingebaut. Das ist ein Sicherheitsrisiko, siehe auch Kontextwechsel
- Die Passwörter werden ohne Salt mit MD5 gehasht. Es ist ein Kinderspiel, das zu knacken. Besser wäre bcrypt oder PBKDF2.
- Als Authentifizierung im Cookie dient anscheinend der Benutzername und ein davon direkt abgeleiteter Wert. Das ist leicht zu fälschen, wenn der Benutzername bekannt ist. Trenne die Session-Daten von der zufälligen Session-ID. Ändere die Laufzeit der Session entsprechend, falls nötig.
Ich rate dir, ein gutes PHP-/MySQL-Buch durchzuarbeiten. Das bringt einem bei, wie man heutzutage Datenbank-Verbindungen aufbaut, Inhalte bereinigt, Passwörter speichert und Sessions erzeugt.
Viele Grüße,
Mathias