alter_Bekannter
N.A.C.J.A.C.
Das Ziel ist sowohl:
GET user=HalloÖÖdu
preg_match("/^[a-zA-Z1234567890öäüÖÄÜ]+$/", $_GET["user"]) == 1
als auch
HalloÖÖdu in der Datenbank, die entsprechende Spalte ist: utf8_general_ci
was aber: "HalloÖÖdu" im letzten Versuch ergab.
Der Ausdruck an sich funktioniert getestet wie folgt:
preg_match("/^[a-zA-Z1234567890öäüÖÄÜ]+$/", "HalloÖÖdu") == 1
Auch Post mit folgendem HTML Dokument produziert den selben Fehler:
[src=html4strict]<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Formular Beispiel</title>
</head>
<body>
<form action="auth.php" method=POST>
<label for="zuname">Zuname</label>
<input type="text" name="user" maxlength="20">
<button type="submit">Eingaben absenden</button>
</form>
</body>
</html>[/src]
Im Browser also wenn ich die Zeichenfolge einfach wieder ausgeben wird sie richtig angezeigt weswegen ich ganz schön suchen musste um das Problem einzugrenzen...
Die verwendete SQL Erweiterung ist mysqli eingefügt wird über ein prepared statement wie folgt:
[src=php]if ($stmt = mysqli_prepare($conn, 'insert into users VALUES(NULL, ?, md5(?), ?, now(), NULL)'))
{
/* bind parameters for markers */
mysqli_stmt_bind_param($stmt, "sss", $username, md5($password.$salt), $salt);
/* execute query */
mysqli_stmt_execute($stmt);
/* close statement */
mysqli_stmt_close($stmt);
return "okay";
}[/src]
GET user=HalloÖÖdu
preg_match("/^[a-zA-Z1234567890öäüÖÄÜ]+$/", $_GET["user"]) == 1
als auch
HalloÖÖdu in der Datenbank, die entsprechende Spalte ist: utf8_general_ci
was aber: "HalloÖÖdu" im letzten Versuch ergab.
Der Ausdruck an sich funktioniert getestet wie folgt:
preg_match("/^[a-zA-Z1234567890öäüÖÄÜ]+$/", "HalloÖÖdu") == 1
Auch Post mit folgendem HTML Dokument produziert den selben Fehler:
[src=html4strict]<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Formular Beispiel</title>
</head>
<body>
<form action="auth.php" method=POST>
<label for="zuname">Zuname</label>
<input type="text" name="user" maxlength="20">
<button type="submit">Eingaben absenden</button>
</form>
</body>
</html>[/src]
Im Browser also wenn ich die Zeichenfolge einfach wieder ausgeben wird sie richtig angezeigt weswegen ich ganz schön suchen musste um das Problem einzugrenzen...
Die verwendete SQL Erweiterung ist mysqli eingefügt wird über ein prepared statement wie folgt:
[src=php]if ($stmt = mysqli_prepare($conn, 'insert into users VALUES(NULL, ?, md5(?), ?, now(), NULL)'))
{
/* bind parameters for markers */
mysqli_stmt_bind_param($stmt, "sss", $username, md5($password.$salt), $salt);
/* execute query */
mysqli_stmt_execute($stmt);
/* close statement */
mysqli_stmt_close($stmt);
return "okay";
}[/src]