0

我正在开发一个有搜索引擎的网站。

假设我们在 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

顺便说一句,这是我开发的第一个网站,如果我提供了太多信息和代码,我很抱歉,但我不知道我的问题到底出在哪里。

4

2 回答 2

0

如果您想通过 GET 获取它们,则必须使用以下命令获取它们$_GET["paramName"]

$searching = $_GET['searching'];
$find = $_GET['find'];
$date = $_GET['date'];
$category = $_GET['category'];

表格应使用以下方式发送GET

<form method ="get" name="search" action="<?=$PHP_SELF?>" style="margin-top: 20px;">

如果要使用POST,请使用POST代码中的方法。

无论如何,如果您愿意,您可以随时使用这两种方法。action您可以在表单的属性上传递一些变量,然后通过POST.

于 2012-12-13T10:22:11.073 回答
0

不确定我是否理解这个问题,但不是$_REQUEST你想要的吗?

于 2012-12-13T10:16:53.737 回答