Я пытаюсь вставить введенные пользователем ключевые слова в URL результатов поиска.
Я заставил его работать, изменив method = post на method = get, но затем он прервал поиск, и я не получил результатов. Я пытался изменить различные вещи, но ничего не работает, поэтому я вернулся к исходному коду, который работает (минус ключевые слова в URL)
URL-адрес после поиска: /imagesearch?go
Я хотел бы быть что-то вроде: /imagesearch?kewords+keyword or similar.
Спасибо, если вы можете указать мне правильное направление.
Вот мой оригинальный код:
<div align="center">
<p>Search by keyword..</p>
<form method="post" action="imagesearch?go" id="search-form">
<input type="text" name="q">
<input type="submit" name="sa" value="Search">
</form> </div>
if(isset($_POST['sa'])){
if(isset($_GET['go'])){
if(preg_match("/^[ a-zA-Z]+/", $_POST['q'])){
$name=$_POST['q'];
$sql="SELECT ID FROM Image WHERE Name LIKE '%" . $name . "%' Order by Saleable Desc LIMIT 50";
//-run the query against the mysql query function
$result=mysql_query($sql);
$content .= ' <p><div id="wrapper">';
// Loop
while($row=mysql_fetch_array($result)){
$id=$row['ID'];
$img = new Image($id);
$name=$_POST['q'];
$sql="SELECT ID FROM Image WHERE Name LIKE '%" . $name . "%' Order by Saleable Desc LIMIT 50";
вы только получаете q
из переменных POST. Как это должно работать с запросом GET?
Также, НИКОГДА НИКОГДА использовать пользовательский ввод непосредственно в запросе SQL. Представить q == "'; DROP TABLE Image;"
! Тот, кто учил вас разработке сайтов, должен был сказать вам до даже начав объяснять, как вы выполняете SQL-запросы.
Что касается того, что вы хотите, это должно помочь.
<html>
<form method="get">
<input type="text" name="q">
<button type="submit">Search</button>
</form>
</html>
<?php
if (isset($_GET['q'])) {
echo "<p>" . $_GET['q'] . "</p>";
}
?>