2012-11-12 6 views
0

나는 데이터베이스에서 데이터를 선택하고 있으며 여전히 게임 중이라고 말합니다. 내가 아니었을 때, 나는 그것을 확인했다.PHP & MySQL 데이터베이스에서 선택

이 단원을 해결하는 방법은 무엇입니까?

 $moneda = (CMS == 'uber' ? $users->GetUserVar(USER_ID, moneda) : $myrow[moneda]); 
     $isonline = mysql_query("SELECT `online` FROM `users` WHERE `username` = ".$_POST['Naam'].""); 
     $error = array(); 
     if($isonline == 1) 
       $error[] = "De ander moet uit het hotel gaan voordat je belpixels kunt overschrijven."; 
+3

코드는 SQL 주입으로 실행 가능합니다. 먼저 문제를 해결하십시오. [here] (http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php) –

+0

'$ isonline'이 쿼리에서 결과 집합을 얻고 있습니다. SQL 쿼리가 실패하면 false가됩니다. 먼저 mysql_fetch_array와 같은 것으로 쿼리 결과를 얻어야한다. – andrewsi

+0

그래서 보안을 유지하는 가장 좋은 방법은 "여기 보시오"페이지에서 단서를 얻지 못하게하는 것입니다. –

답변

1
$isonline = mysql_query("SELECT `online` FROM `users` WHERE `username` =".$_POST['Naam'].""); 

$ isonline는 결과 개체가 아닌 결과를 포함하여 answer..dude 없습니다.

$row=mysql_fetch_assoc($isonline); 
if($row['online']==1){} 

과는 mysql_query를 사용

긴 사람을 제거 ...

SQL 당신이 열 이름 주위에 따옴표를 넣어하지 .. PDO

$isonline = mysql_query("SELECT online FROM로 전환되지 않습니다 주변 사용자 이름도 여기에 있습니다. 여기에서 사용자 이름 값 하나를 얻으십시오 :

$isonline = mysql_query("SELECT online FROM users WHERE username ='".$_POST['Naam']."'"); 
+0

이 코드는 나를 위해 작동하지 않습니다. 전체 코드를 보여 주겠습니까? –

+0

'

+0

온라인에서 제거하십시오. – geekman

0

mysql_query는 단일 사용자 레코드를 반환하지 않습니다. 비록 SQL 쿼리가 오직 하나의 레코드만을 리턴 할지라도, PHP 리소스를 반환합니다.

즉, $ isonline은 해당 변수의 올바른 이름이 아닙니다. 다음이 첫 번째 (이 경우 만 해당) 결과 행을 반환합니다

$user_record = mysql_fetch_array($online_query_results); 

전화 $ online_query_results와 같은 이름을 호출합니다. 그런 다음 $ isonline을 테스트하는 대신

$user_record['online'] 
+0

이것은 작동하지 않습니다. 사용자가 게임 중일 때 오류를 반환해야합니다. 온라인 상태 인 데이터베이스가 1로 설정되어 있으면 여전히 오류가 발생합니다. –

+0

db_query 문에서 실제로 반환되는 내용을 보려면이 코드에 logging 문을 넣을 수 있습니까? 또는 mysql_fetch_array에서? 예 : 'printr ($ user_record)'? (실제 사이트의 데이터베이스 레코드 결과에는 printr을 사용하지 마십시오. 출력에는 데이터베이스 사용자 이름과 암호가 포함됩니다). 제안 된 변경 사항이 작동하지 않는 경우 데이터베이스 쿼리가 nil 또는 빈 개체를 반환하기 때문에 가능성이 가장 높습니다. – chapka

+0

지금 사용중인 실제 검색어 문자열을 게시하십시오. 이 쿼리 문자열을 사용하면 작동합니까? -> '온라인에서 선택 {사용자} 사용자 이름 = {$ _POST [ 'Naam']}' – chapka

관련 문제