2014-04-05 2 views
0

Google 크롬 콘솔에 코드 묶음을 붙여 넣어 자바 스크립트를 사용하여 대량 로그인을 시뮬레이션하려고했습니다.PHP에서 컬을하고 세션을 저장하고 결국 세션 변수를 사용하는 방법

var data = [{u:1, p:1}, {u:2, p:2}, {u:3, p:3} ...] 

function login(u,p,callback){ 
    $.post('/login.php', {u:u, p:p}).done(function(){ 
     logout(callback); 
    }); 
} 

function logout(callback){ 
    // delete session cookies using javascript 
    callback(); 
} 

function main(){ 
    // recursive function to iterate in the data collection 
    login(data[counter].u, data[counter].p, function(){ 
    if(counter++ < data.length){ 
     main(); 
    } 
    }); 
} 

질문

내가 어떻게 그 PHP 컬을 사용하여 :

이 나는 ​​기본적으로 무엇입니까? 이는 세션을 에뮬레이션하는 방법에 관한 것이므로 "유일한 멤버 동작"도 로그인 후에도 액세스 할 수 있습니다.

세션을 지우려면 어떻게해야합니까? 자바 스크립트에서 파괴 세션을 사용할 필요가 없다면 브라우저에 저장된 세션 쿠키 만 삭제하면됩니다. curl php에서 어떻게 할 수 있습니까? 당신이 볼 수 있듯이

내 시도

$url = 'login.php'; 
$fields = array(
      'u' => urlencode('1'), 
      'p' => urlencode('1') 
     ); 

//url-ify the data for the POST 
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } 
rtrim($fields_string, '&'); 

$ch = curl_init(); 

//set the url, number of POST vars, POST data 
curl_setopt($ch,CURLOPT_URL, $url); 
curl_setopt($ch,CURLOPT_POST, count($fields)); 
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); 

//execute post 
$result = curl_exec($ch); 

//close connection 
curl_close($ch); 

, 나는 자격 증명의 1 개 세트를 시도했다. 그러나 그 이상으로 나는 무엇을 해야할지 모른다.

+0

PHP에서 무엇을하려 했습니까? – hindmost

+0

아, 예, 게시해야합니까? –

답변

0

How do I clear the session? PHP 코드에서 세션을 만들지 않았습니다. 쿠키 파일을 의미합니다. 따라서 아무 것도 정리할 필요가 없습니다. 당신이 세션/쿠키를 생성해야하는 경우

는하지만, 그러나, 당신은 당신이 너무 조금 코드를 수정 한 CURLOPT_COOKIEJARCURLOPT_COOKIEFILE

사용해야합니다. 여기있다 :

$fields = array(
    'u' => '1', 
    'p' => '1' 
); 

$ch = curl_init($url); 
curl_setopt($ch,CURLOPT_POST, count($fields)); 
curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($fields)); 

// uncomment if you want to save cookie. 
// curl_setopt($ch, CURLOPT_COOKIEJAR, '/var/tmp/cookie.txt'); 
// curl_setopt($ch, CURLOPT_COOKIEFILE, '/var/tmp/cookie.txt'); 

$result = curl_exec($ch); 
curl_close($ch); 

// do some other processes 

// and then you can unlink('/var/tmp/cookie.txt') if you want 
관련 문제