2017-05-02 4 views
0

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?

+1

Es ist wahrscheinlich eine mathematische 'log' Funktion aus irgendeinem Grund nennen. Ist das der echte Code? Was passiert, wenn Sie den Namen ändern? – Carcigenicate

+0

http://php.net/manual/en/function.log.php <überrascht, dass Sie nicht eine 'nicht redeclare Funktion 'Fehler bekommen ... – CD001

+2

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). –

Antwort

1

Sie möchten Ihre benutzerdefinierte Funktion log() umbenennen. Verwenden Sie anstelle von log() einen anderen Namen für Ihre Funktion.

log() ist eine (bereits bestehende) mathematische Funktion.

Read about log()

Best of luck!

+0

Er definierte "log" neu – sidyll

Verwandte Themen