2013-12-17 66 views
-1

我已閱讀有關此主題的許多問題,但未找到答案。 我有一個錯誤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腳本,我要送,但不獲取數據

全部sript的一部分。 更新:

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

    } 

    ?> 
+0

你檢查看看你的表單是否已經提交,然後再檢查if($ _POST ['searchText'])'? – andrewsi

+0

'if(isset($ _ POST ['searchText']))' – bansi

回答

5

您需要使用isset(),看是否該變量設置:

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

如果你想看看它是否包含一個值(即不爲空),使用empty()與它還有:

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

以13秒爲由擊敗我:) – scrblnrd3

+0

無論如何,你會得到一個+1;) –

+0

哈哈謝謝。你也可以用 – scrblnrd3

3

要檢查是否存在索引,你必須使用isset(),像這樣:

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

@John Conde是對的。只是添加一些東西......通知不是錯誤,服務器只是告訴你,你的變量沒有設置。

這是一個很好的做法,檢查變量(isset()函數),但如果你不想和有點懶,你可以設定error_reporting只是標出錯誤 見http://www.php.net/manual/en/function.error-reporting.php