2017-02-10 2 views
0

Hier ist der Code für mein HTML-FormularWarnung: mysqli :: query(): Kann nicht holen Mysqli

<html> 
<body> 
    <style> 
body { 
    background-color: #003D4F; color: white; font-family: arial; 
} 
</style> 
<h1> Clicky </h1> 
<h2> Submit Scores </h2> 
<i> We can tell when you lie! Don't do it! ;) </i> <br> 
<form action="submit.php" method="post"> 
    <input type="text" value="Name" /> <br> 
    <input type="text" value="Score" /><br> 
    <input type="submit" value="Submit" /> 
</form> 
</body> 
</html> 

Der Code für 'Connection.php'

<?php 


function Connect() 
{ 
$dbhost = "localhost"; 
$dbuser = "username"; 
$dbpass = "password"; 
$dbname = "my_database"; 

// Create connection 
$conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname) or die($conn->connect_error); 

return $conn; 
} 

?> 

und den Code für Submit.php

<?php 

require 'connection.php'; 
$conn = Connect(); 
$name = isset($_POST['Name']) ? $_POST['Name'] : ''; 
$score = isset($_POST['id']) ? $_POST['id'] : ''; 
$query = "INSERT into test.clicky (name, score) VALUES('" . $name . "','" . $score . "')"; 
$success = $conn->query($query); 

if (!$success) { 
    die("Couldn't enter data: ".$conn->error); 

} 

echo "Thank you for submitting! <br>"; 

$conn->close(); 

?> 

Der Fehler, den ich erhalte, ist wie folgt.

Warnung: mysqli :: mysqli(): (HY000/1045): ProxySQL Fehler: Zugriff verweigert für Benutzer 'username' (Passwort: Nein) in (connection.php) auf der Leitung 12

Warning: mysqli :: query(): Ich konnte mysqli in (submit.php) in Zeile 8 nicht abholen

Warnung: main(): Ich konnte mysqli in (submit.php) in Zeile 11 nicht abrufen Konnte nicht eingegeben werden Daten:

Der erste Fehler Ich habe eine Idee, wie in meinem Fall zu beheben. Die anderen beiden Fehler bereiten mir jedoch Schwierigkeiten.

Auch Sie können vielleicht bemerken, dass ich über das Einreichen auf eine sehr seltsame Weise gegangen bin. Wenn meine Datenbank automatisch hochgeladen werden könnte, wäre das großartig.

+1

** WARNUNG ** defnie: Bei der Verwendung von 'mysqli' Sie [parametrisierte Abfragen] verwenden sollten (http://php.net/manual/en /mysqli.quickstart.prepared-statements.php) und ['bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), um Benutzerdaten zu Ihrer Abfrage hinzuzufügen. ** Verwenden Sie NICHT ** String-Interpolation oder Verkettung, um dies zu erreichen, weil Sie einen schwerwiegenden [SQL injection bug] erstellt haben (http://bobby-tables.com/). ** NIEMALS ** $ _POST 'oder' $ _GET' Daten direkt in eine Abfrage einfügen, es kann sehr schädlich sein, wenn jemand versucht, Ihren Fehler auszunutzen. – tadman

+0

Dies ist ein Anmeldeproblem. Stellen Sie sicher, dass das Konto, das Sie verwenden, Zugriff hat. – tadman

+0

'Einfügen in test.clicky'? Ist "test" die db? –

Antwort

0

Bitte lesen Sie die Warnungen & Fehler. Sie haben falsche Zugangsdaten. Überprüfen Sie erneut Ihre Verbindungsdaten. Sie haben $username, $password, $host & $database das gleiche mit Datenbankdetails

+0

ich definierte sie mit geeigneten Variablen, ich verdeckte sie nur, so niemand könnte ... nun ... hack meine db –

+0

Überprüfen Sie noch einmal diese Daten und versuchen, von ihnen in die Datenbank zu protokollieren . Vielleicht haben Sie ein Leerzeichen oder eine Groß- und Kleinschreibung –