Unity Loginsystem mit PHP 500 Error?

2 Antworten

Aktiviere Error Logging für dein PHP-Skript, um mehr Informationen zum Fehler zu erhalten:

ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
error_reporting(E_ALL);

Beachte im Übrigen, dass dein Login-Skript nicht sicher ist. Zum einen ermöglichst du einem Anfragenden, SQL-Injections durchzuführen und zum anderen speicherst du Passwörter offensichtlich in Klartextform. Verwende stattdessen Prepared Statements und speichere Passwörter nur als Hash.


nikeboycookie 
Beitragsersteller
 03.10.2023, 13:13

Danke, werde ich versuchen ;)

Versuche mal:
Username: 'x' UNION SELECT 'geheim' as password
Passwort: geheim

Benutze daher Prepared Statements...

Das du dir password_hash und password_verify benutzen solltest und Passwörter nicht unverschlüsselt speichern solltest wurde schon gesagt.

Soweit so gut, das löst nur leider dein Problem nicht. Das PHP Script scheint syntaktisch korrekt zu sein, also schaue mal ins error.log des Apache, warum der da einen Fehler 500 meldet. Oder in den Netzwerk-Tab im Browser, ob mit dem 500 da eine Ausgabe kommt.

Und du hast noch ein Problem: Im JS vergleichst du nur auf Success, setzt aber im Fehlerfall nicht den HTTP Statuscode im PHP, so dass das immer 200 zurück gibt. Im Fehlerfall solltest du http_response_code(403) im PHP setzen, damit das JS das auch erkennt... wegen deiner ganzen Ausgaben braucht es da wahrscheinlich noch ein ob_start() ganz am Anfang.

Woher ich das weiß:Berufserfahrung – Softwareentwickler & Admin

nikeboycookie 
Beitragsersteller
 03.10.2023, 13:40

danke fuer die antwort bekomme folgenden fehler

[Tue Oct 03 13:31:31.403506 2023] [php:error] [pid 32821] [client eineip] PHP Fatal error:  Uncaught mysqli_sql_exception: Unknown column 'testuser' in 'where clause' in /var/www/Cavemanodyssey/Login.php:24\nStack trace:\n#0 /var/www/Cavemanodyssey/Login.php(24): mysqli->query()\n#1 {main}\n  thrown in /var/www/Cavemanodyssey/Login.php on line 24


iQa1x  03.10.2023, 13:43
@nikeboycookie

Beim SQL Query fehlen die Anführungszeichen. Baue da ein Prepared Statement ein, dann ist es gleich "richtig" behoben. Zum schnell testen:

$sql = "SELECT password FROM users WHERE username = '" . $loginUser . "'";
   
nikeboycookie 
Beitragsersteller
 03.10.2023, 13:50
@iQa1x

Danke, hat funktioniert. ich taste mich gerade an php an fuer mein unity login system. Das youtube tutorial ist etwas aelter deswegen.

regex9  04.10.2023, 11:20
@nikeboycookie

Die hier bisher erwähnten Fehler/Probleme sind nicht dem Alter zuzuschreiben.

nikeboycookie 
Beitragsersteller
 04.10.2023, 13:51
@regex9

hi hattest recht hab danach das video weitergeguckt und bemerkt das er den fehler selbst behoben hatte ;( haha aber war zu faul um dir nochmal zu antworten