2014-08-27 2 views
0

검색하고 싶습니다. 내가 텍스트 상자에 사용자 ID를 입력하고 제출 버튼을 누르면 해당 사용자 데이터가 나타납니다. 어떻게 만들 수 있니? 나는이 코딩이 잘못된 것을 알고있다. 관리자가 btw이고 사용자를 찾고 싶습니다.사용자 ID를 기반으로 검색 버튼을 만듭니다.

<?php 
include 'config1.php'; 
$query = "SELECT * FROM login WHERE userid LIKE '%$searchTerm%'" 
$result = mysql_query($query); 
echo "<table height = '30%'border='1'>"; 

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{ 
    echo "<tr>"; 
    echo "<td width='5%'><b>USER ID:</b> {$row['userid']} </td>"; 
    echo "<td width='5%'><b>USER NAME :</b> {$row['username']} </td>"; 
    echo "<td width='5%'><b>USER EMAIL:</b> {$row['useremail']} </td>"; 
    echo "<td width='5%'><b>USER DIVISION:</b> {$row['userdiv']} </td>"; 
    echo "<td width='5%'><b>USER DEPARTMENT:</b> {$row['userdepartment']} </td>"; 
} 
echo"</table>"; 
?> 
+0

당신이 While 루프의 끝에서를 추가 할 필요를 제외하고 귀하의 코드 샘플은 확인을 것 같다 . mysql 대신 mysqli 함수를 사용한다. –

+0

무엇을 추가 하시겠습니까? 미안 해요, 새로운 : – lightyagami

+0

내가 웹 사이트 에서이 말을 실행할 때 구문 분석 오류 : 예기치 않은 '$ 결과'(T_VARIABLE) C : \ xampp \ htdocs \ viewAdmin.php 41 행에 구문 오류 : – lightyagami

답변

0

당신 (5 월) SQL 인젝션에 취약하고 소스 코드에 보안 구멍이있다.

$query = "SELECT * FROM login WHERE userid LIKE '%$searchTerm%'" 

필터링도 당신은 SQL을 삽입하는 구멍을 개방하고 $searchTerm을 소독하지 마십시오.

PDO, 특히 prepared statements"Are PDO prepared statements sufficient to prevent SQL injection?"에 대해 읽어보실 것을 강력하게 권합니다.

$query = "SELECT * FROM login WHERE userid LIKE '%$searchTerm%'" 
                   ^

$query = "SELECT * FROM login WHERE userid LIKE '%$searchTerm%'"; 

플러스을 사용할 필요가 $searchTerm을 사용 :

1

당신은이 라인에서 누락 된 세미콜론이 your comment

when i run this on website it say Parse error: syntax error, unexpected '$result' (T_VARIABLE) in C:\xampp\htdocs\viewAdmin.php on line 41

에서 촬영 예를 들어 "search"라는 이름의 입력이있는 양식. <input type = "text" name = "search"> 다음을 수행하십시오.

$searchTerm = $_POST['search']; 

POST 양식 방법을 사용하십시오.

<form method = "post" action = "your_SQL_file.php"> 

    Search: <input type = "text" name = "search"> 

<input type = "submit" name = "submit" value = "Search"> 

</form> 

<?php 
include 'config1.php'; 
$searchTerm = $_POST['search']; 
$query = "SELECT * FROM login WHERE userid LIKE '%$searchTerm%'"; 

... 

편집 : (모든 파일 하나)

<form method = "post" action = ""> 

    Search: <input type = "text" name = "search"> 

<input type = "submit" name = "submit" value = "Search"> 

</form> 


<?php 
include 'config1.php'; 

if(isset($_POST['submit'])){ 

$searchTerm = mysql_real_escape_string($_POST['search']); 

$query = "SELECT * FROM login WHERE userid LIKE '%$searchTerm%'"; 
$result = mysql_query($query); 

    echo "<table height = '30%'border='1'>"; 

    while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
    { 
     echo "<tr>"; 
     echo "<td width='5%'><b>USER ID:</b> {$row['userid']} </td>"; 
     echo "<td width='5%'><b>USER NAME :</b> {$row['username']} </td>"; 
     echo "<td width='5%'><b>USER EMAIL:</b> {$row['useremail']} </td>"; 
     echo "<td width='5%'><b>USER DIVISION:</b> {$row['userdiv']} </td>"; 
     echo "<td width='5%'><b>USER DEPARTMENT:</b> {$row['userdepartment']} </td>"; 
    } 
    echo"</table>"; 

} // brace for submit isset 
?> 
+0

그것은 정의되지 않은 searchterm라고합니다. 내가 그 searchterm을 선포한다고 가정 해? LIKE의 기능은 무엇입니까? – lightyagami

+0

@lightyagami 내 대답을 다시 불러오고, 내가 보지 못했을 수도있는 몇 가지 추가 사항을 만들었습니다. –

+0

답변을 편집 할 때 이미 답장을 보내고 있습니다. 미안하다. 나는 코딩의 중요한 부분을 보여줍니다. (모두 같은 페이지에 있음) – lightyagami

관련 문제