sql >> Databasteknik >  >> RDS >> Mysql

Sökningen visar alla produkter

Ditt formulär är inte korrekt strukturerat - fältet "user_query" är utanför formuläret så $_GET['user_query'] skulle aldrig ställas in. Försök att ändra detta:

<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> 

Till något sånt här:

<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>

Som flera andra har noterat är detta också känsligt för SQL-injektion. Det här inlägget diskuterar ett scenario som är mycket likt ditt:Hur kan jag förhindra SQL-injektion i PHP?

Jag rekommenderar starkt att du kör din genererade kod genom en valideringstjänst för att fånga upp fel i din HTML. Se till att använda den genererade HTML-koden (kopiera från "visa källa" i webbläsaren), inte bara koden från din php-fil eftersom valideraren inte förstår PHP. WWW-konsortiet har ett bra verktyg:http://validator.w3.org/#validate_by_input




  1. Hur man laddar upp bilder till MySQL-databasen med PHP-kod

  2. SQLite returnerade en felkod på 14

  3. oväntat T_ENCAPSED_AND_WHITESPACE, förväntar T_STRING eller T_VARIABLE eller T_NUM_STRING fel

  4. Naturlig koppling i SQL Server