Ok, ich habe jetzt einen Schutz gegen diese SQL-Injections. Seltsamer weise werden die Korrekten Variablen jetzt auch in die Tabelle geschrieben, ausser "str". Woran könnte das liegen? was mache ich Falsch?
Das mit dem Fehlerhandling habe ich nicht hingekriegt,
hat nichts gemacht.
Mein Code bis jetzt:
BELL
Das mit dem Fehlerhandling habe ich nicht hingekriegt,
PHP:
if (!$mysqli->error) {
printf("Errormessage: %s\n", $mysqli->error);
}
Mein Code bis jetzt:
PHP:
<?php
//verbindung wird hergestellt
$db = mysqli_connect("localhost", "php", "passwort", "bell");
//eventuelle fehler werden ausgespuckt
if(!$db)
{
exit("Verbindungsfehler: ".mysqli_connect_error());
}
//variablen werden auf die Werte des Formulars gesetzt
$vname = $_POST["vorname"];
$name = $_POST["name"];
$str = $_POST["strasse"];
$strnr = $_POST["hausnummer"];
// gegen SQL-Injection
$vnameI = string mysqli::real_escape_string ( string $vname )
$nameI = string mysqli::real_escape_string ( string $name )
$strI = string mysqli::real_escape_string ( string $str )
$strnrI = string mysqli::real_escape_string ( string $strnr )
//endlich alles in DB schreiben
$eintragen = mysqli_query($db, "INSERT INTO daten (VORNAME, NACHNAME, STRASSE, STRASSENNUMMER) VALUES ('$vnameI', '$nameI', '$strI', '$strnrI')");
?>
BELL