2013-02-25 3 views
1

안녕하세요, 저는 카테고리로 검색하는 도움을 받아 스크립트를 만들었습니다. 예 : 다음 PCgames, All 및 Documents가 있습니다. X 사용자가 PC 게임에서 Y 게임을 검색 중입니다. 그리고 스크립트는 Y 게임을위한 PCgames atterory에서 소름 끼치고 모든 결과를 표시합니다. 그러나 사용자는 검색 버튼에 서버 표시 다음 오류 공지 사항을 클릭 할 때 : 5 호선 HTML 코드PHP 검색 엔진 공지 사항 : 정의되지 않은 인덱스 : 카테고리

<form action="search.php" method="POST"> 
<p><br /> 
<input name="q" type="hidden" /> 
<font color="black">Hunt Data:</font> 
<input type="text" style="width: 180px" name="qfront" id="name" /> 
<select name="category"> 
<option value="0" id="all">All</option> 
<option value="1" id="PCgames">PC-Games</option> 
<option value="2" id="Console">Console</option> 
<option value="3" id="Movies">Movies</option> 
<option value="4" id="Music">Music</option> 
<option value="5" id="XXX">XXX</option> 
<option value="6" id="Windows">Windows</option> 
<option value="7" id="Linux">Linux</option> 
<option value="8" id="Software">Software</option> 
<option value="9" id="Documents">Documents</option> 
</select> 
<input type="submit" value="Search" /> 
</p> 
</form> 

search.php 파일

<?php 
//define each directory here, the index starts with 0 == all and so on. 
$categorydir = array('/Category/All/', '/Category/PCGames/', '/Category/Documents/'); 
//if option selected and its valid number 
if($_POST['category'] && ctype_digit($_POST['category'])){ //line 5 
if(array_key_exists($_POST['category'], $categorydir) && is_dir($categorydir[$_POST['category']])){ 
    $handle = opendir($categorydir[$_POST['category']]); 
}else{ 
    echo 'target directory not found'; 
} 
}else{ 
//please enter an option 
} 
?> 

도움에 search.php 카테고리 : 정의되지 않은 인덱스를 Notice : Undefined index : 5 행의 search.php 카테고리? 양식 10 고양이가 있지만

+2

대신에 if (isset ($ _ POST [ 'category'])))를 시도하십시오. –

+0

원본 게시물을 개선해보십시오. http://stackoverflow.com/questions/15056015/php-search-function-in-a-category 이렇게하면 다시 열 수 있습니다. –

+0

치명적인 오류 : search.php의 5 번째 줄에 쓰기 컨텍스트에서 함수 반환 값을 사용할 수 없습니다. –

답변

0
if(isset($_POST['category']) { 
if(ctype_digit($_POST['category']) && isset($categorydir[$_POST['category']])){ 

} 
} 

하고 배열

$categorydir = array('/Category/All/', '/Category/PCGames/', '/Category/Documents/'); 

는 3 개 항목이 있습니다.

+0

감사합니다. 이 스크립트는 작동하지만 결과를 표시하지 않습니다 ... –

관련 문제