2014-09-17 5 views
1

만 응답 부울을 얻기 위해 나는 다음과 같은 코드어떻게 컬 PHP

$handle = curl_int(); 
$i = '123456'; 
curl_setopt_array(
    $handle, 
    array(
     CURLOPT_URL =>'localhost/unnamed/loginpage.php', 
     CURLOPT_POST => true, 
     CURLOPT_POSTFIELDS => "uname=birat&pword=$i", 
     CURLOPT_RETURNTRANSFER => true, 
    ) 
); 

$response = curl_exec($handle); 

//This if statement doesnot work 
if($response == 1) { 
    echo 'Password is '. $i; 
} 

} 
curl_close($handle); 

문제는 항상 저를 나타내는 대신 '1'또는 '0'의 전체 HTML 페이지를 얻을 수 있다는 것입니다 가지고있는 사용자 이름과 암호가 일치합니다. 또한 마지막 if 문이 작동하지 않습니다. 이 if 문을 사용하지 않으면 위쪽에 '1', 아래 페이지에 html 데이터가 표시됩니다. 나는 그 html 데이터를 원하지 않는다. 나는 단지 '1'또는 '0'을 원한다. 그리고이 if 절이 작동하기를 원한다. 나는 무엇을해야합니까?

답변

-1

. 이것은 당신을 도울 수 있습니다.

$httpcode = curl_getinfo($handle,CURLINFO_HTTP_CODE); 
if ($httpcode == '200') 
{ 
    //logged in 
} 
else 
{ 
    //not logged in 
} 

대부분의 경우 HTTP 코드 200은 유효한 인증입니다.

+0

그것은 효과가있었습니다. 그러나 페이지가 다운로드되고 무시되는지 또는 페이지가 전혀 다운로드되지 않았는지 여전히 알 수는 없습니다. –

+0

이 줄을 삭제 해보십시오. $ response = curl_exec ($ handle);'. 이것은 페이지를 가져 오는 것입니다. –

+0

제거한 후 $ httpcode = '200'은 특정 비밀번호가 아닌 모든 데이터에 유효합니다. –

0

귀하의 요청을 처리하기 만하면 귀하의 경우, 대상 페이지의 내용을 반환합니다. 당신은 1 또는 0 대상 페이지에 출력이 필요하고 다음과 같이 확인 : 당신은뿐만 아니라 HTTP 코드를 확인해야

if (trim($result)=='1') { 
    // do something 
} 
+0

답변을 읽은 후, 나는 그의 질문을 읽지 않았다고 말할 수 있습니다. –

+0

@TraianTatic 나는 당신에 대해서도 이렇게 말할 수있다. 내가 이해 하듯이 OP는 어딘가에 ("CURLOPT_RETURNTRANSFER"가 TRUE 일 때) "1"또는 "0"을 가진 목표 페이지의 전체 HTML을받으며 그는 전체 대신에이 숫자 만 필요로한다. 페이지. – Timur

+0

예 할 수는 있지만 전체 페이지를 다운로드하지 않으려합니다. 난 단지 그것이 전체 페이지가 아니라 '1'또는 '0'응답을 갖기를 원한다. –