Ich bekomme diese PHP Warnung: Warnung: log() erwartet Parameter 1 float, String in (Route zu dieser Datei)Warnung: log() erwartet, dass Parameter 1 float ist, String in
Ich weiß nicht warum ... Ich erkläre den Typ der Variablen nicht. Irgendeine Hilfe?
Hier ist der Code:
function sanitizeMysql ($string, $mysqli) {
return $mysqli->real_escape_string($string);
}
function sanitizeHtml ($string) {
return htmlspecialchars($string);
}
function log ($data, $mysqli) {
$data = sanitizeMysql($data, $mysqli);
$data = sanitizeHtml($data);
if ($insert = $mysqli->prepare("INSERT INTO log (data) VALUES ('" . $data . "')")) {
if ($insert->execute()) {
return $mysqli->insert_id;
} else {
return $mysqli->error;
}
} else {
return $mysqli->error;
}
}
$url = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
$error = "Unauthorized view of ". $url;
log($error, $mysqli);
exit();
$ mysqli deklariert und arbeiten. Irgendeine Idee?
Es ist wahrscheinlich eine mathematische 'log' Funktion aus irgendeinem Grund nennen. Ist das der echte Code? Was passiert, wenn Sie den Namen ändern? – Carcigenicate
http://php.net/manual/en/function.log.php <überrascht, dass Sie nicht eine 'nicht redeclare Funktion 'Fehler bekommen ... – CD001
Ihre Desinfektion ist nicht ausreichend. Sie sollten [** mysqli **] (https://secure.php.net/manual/en/mysqli.prepare.php) vorbereitete Anweisungen mit gebundenen Parametern verwenden, wie in [** dieser Beitrag **] beschrieben (https: //stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php). –