$ _POST,FORM和PhP

时间:2013-12-17 03:09:43

标签: php forms post get

我已经阅读了很多关于这个主题的问题,但没有找到答案。 我有一个错误Notice: Undefined index: searchText in C:\xampp\htdocs\twitter\lib\search.php on line 5不知道为什么......

HTML表单:

<div id="search" class="fleft">
        <form name="tsearch" action="lib/search.php" method="post">
            <input type="text" name="searchText" placeholder="Search tweet!">
            <input type="submit" name="search" value="Search"/>
        </form>
    </div>

和PhP脚本的一部分,我正在发送但没有获取数据

全力以赴。     更新:

<?php
    include "connect.php";
    //session_start();

        if (isset($_POST['searchText'])){
            //echo '<pre>'; print_r($_REQUEST); echo '</pre>';
            $query = "SELECT u.nickname, t.text, t.pubdate FROM 111212_tweets t INNER JOIN 111212_users AS u ON t.user_id = u.id WHERE t.text LIKE '%" . $_POST['searchText'] . "%' ORDER BY t.pubdate DESC";
           $_SESSION['searchQuery'] = $query;
             header('Location: ../main.php');

        }else {
            $query = "SELECT u.nickname, t.text, t.pubdate FROM 111212_tweets t INNER JOIN 111212_users AS u ON t.user_id = u.id ORDER BY t.pubdate DESC";
          $_SESSION['searchQuery'] = $query;

    }

    ?>

3 个答案:

答案 0 :(得分:5)

您需要使用isset()来查看变量是否已设置:

if (isset($_POST['searchText']))

如果您想查看它是否包含值(即非空),请同时使用empty()

if (isset($_POST['searchText']) && !empty($_POST['searchText']))

答案 1 :(得分:3)

要检查索引是否存在,您必须使用isset(),如下所示:

if(isset($_POST['searchText'])){
     //do some stuff here
}

答案 2 :(得分:1)

@John Conde是对的。只是添加一些东西......通知不是错误,服务器只是告诉你你的变量没有设置。

检查变量(isset())是一个好习惯,但是如果你不想并且有点懒,你可以设置error_reporting来标记错误 见http://www.php.net/manual/en/function.error-reporting.php