Das geht schon beim select los:
"SELECT * FROM users WHERE email='$email'"
Wenn $email, was ja über $_POST reinkommt, jetzt den Inhalt
' OR id = 1; -- x
hat, dann wird diese Query daraus;
SELECT * FROM users WHERE email='' OR id = 1; -- x'
Und id 1 könnte ja schon mal der admin sein ![]()
BTW: ich sehe gerade, dass Du die SELECT-Query abschickst, BEVOR Du $email definierst:
PHP
// hier feuerst du die query ab:
$result = $mysqli->query("SELECT * FROM users WHERE email='$email'");
$first_name = $_POST['firstname'];
$last_name = $_POST['lastname'];
// aber HIER definierst du $email erst
$email = $_SESSION['email'];
Das heißt, Du suchst nach einer email "".
So rum sollte es laufen:
Code
$first_name = $_POST['firstname'];
$last_name = $_POST['lastname'];
$email = $_SESSION['email'];
$sql = "SELECT * FROM users WHERE email = ?"; // mit platzhalter
if ($stmt = $mysqli->prepare($sql)) {
$stmt->bind_param("s", $city);
$stmt->execute();
// ... und fetch ect ...
} else {
// error abfangen ....
}
Alles anzeigen