Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Die Suche zeigt alle Produkte an

Ihr Formular ist nicht richtig strukturiert - das Feld "user_query" befindet sich außerhalb des Formulars, also $_GET['user_query'] würde nie eingestellt werden. Versuchen Sie Folgendes zu ändern:

<form class="form-wrapper cf">
    <input type="text" name="user_query" placeholder="Search here..." required>
  <form method="get" action="results.php" enctype="multipart/form-data">
    <button type="submit" name="search" value="Search">Search</button>
</form> 

Zu so etwas:

<div class="form-wrapper cf">
    <form method="get" action="results.php" enctype="multipart/form-data">
        <input type="text" name="user_query" placeholder="Search here..." required>
        <button type="submit" name="search" value="Search">Search</button>
    </form> 
</div>

Wie mehrere andere angemerkt haben, ist dies auch anfällig für SQL-Injection. Dieser Beitrag beschreibt ein Szenario, das Ihrem sehr ähnlich ist:Wie kann ich SQL-Injection in PHP verhindern?

Ich empfehle dringend, dass Sie Ihren generierten Code durch einen Validierungsdienst laufen lassen, um Fehler in Ihrem HTML-Code zu finden. Stellen Sie sicher, dass Sie den generierten HTML-Code verwenden (Kopie von "Quelle anzeigen" im Browser), nicht nur den Code aus Ihrer PHP-Datei, da der Validator das PHP nicht versteht. Das WWW-Konsortium hat ein gutes Tool:http://validator.w3.org/#validate_by_input