我正在开发一个有搜索引擎的网站。
假设我们在 index.html 中,它具有以下搜索形式:
<form method ="post" name="search" action="search.php?go">
<input accesskey="s" type="text" size="20px" name="find" id="fastsearch" alt= "search" value="search..." />
<input type="hidden" name="searching" value="yes" />
<input id="searchicon" type="submit" value="" style="border-style: none; background: url('searchsmall.png') no-repeat;"/>
</form>
然后我有这个下面的search.php,除了它下面的高级搜索之外,它还有结果。
这是结果部分:
$searching = $_POST['searching'];
$find = $_POST['find'];
if ($searching =="yes") {
echo "<h2>Results</h2><p>";
if ($find == "")
{
echo "<p>You forgot to enter a search term";
exit;
}
//Connect to mysql server
$con = mysql_connect($DB_HOST, $DB_USER, $DB_PASSWORD);
if(!$con) {
die('Failed to connect to server: ' . mysql_error());
}
//Select database
$db = mysql_select_db($DB_DATABASE);
if(!$db) {
die("Unable to select database");
}
$find = strtoupper($find);
$find = strip_tags($find);
$find = trim ($find);
$date = $_POST['date'];
$category = $_POST['category'];
$data ="SELECT * FROM event WHERE upper(title) LIKE'%".$find."%'OR date LIKE '%".$date."%' OR upper(category_id) LIKE ".$category." ORDER BY date;" ;
$result=mysql_query($data );
if($result) {
while($info = mysql_fetch_array( $result ))
{
echo "<a href=' ".$info['url']." '> ".$info['title']." </a><br/>";
echo "<br>";
}
}
else
{
echo "Sorry, but we can not find an entry to match your query<br><br>";
echo "<b>Searched For:</b> " .$find;
}
}
最后是高级搜索部分:
<form method ="post" name="search" action="<?=$PHP_SELF?>" style="margin-top: 20px;">
<div class="blockbody" style="width: 700px;">
<h3 class="blocksubhead">Advanced search </h3>
<div class="section">
<!--<div class="blockrow">
<label for="keyword">Search by title: </label>
<input type="text" name="keyword" name="find" >
</div >-->
<div class="blockrow">
<label for="category"> Category </label>
<select name="category">
<option VALUE="CONFERENCE"> Conference </option>
<option VALUE="WORKSHOP"> Workshop </option>
<option VALUE="ACTIVITY"> Activity </option>
</select>
</div>
<div class="blockrow">
<label for="date">Search by date </label>
<input type="date" name="date">
</div>
</div>
<div class="actionbuttons">
<input type="submit" name="search" value="Search" />
</div>
</div>
</div>
</form>
我的问题是,我怎样才能让 php 文件从它自己的文件和另一个以它的形式发送的文件中获取变量。我尝试将 post 用于索引中的那个并用于高级搜索中的那些,但是将 post 和 get 放在同一个文件中是不正确的。当我让它们都得到时。发生了一个错误,说变量(查找、搜索、日期、类别)被点头声明了?:/
请注意: *Find 是 index.html 中的搜索词 *searching 只是一个检查他是否使用搜索的值,也在 index.html 中
*date 用于在同一 search.php 文件中输入日期,在高级搜索 *category 用于选择值,它取决于选项。也在 search.php
顺便说一句,这是我开发的第一个网站,如果我提供了太多信息和代码,我很抱歉,但我不知道我的问题到底出在哪里。