저는 며칠 동안 DOTNETNUKE 응용 프로그램에 로그인 할 작은 PHP 스크립트를 얻으려고했습니다. 파이어 폭스에 대한 Tamper Data plugin을 사용하여 헤더를 복사하고 변수를 정확히 게시했습니다.Curl (Or Guzzle)을 사용하여 DOTNETNUKE 응용 프로그램에 로그인
나는 다음과 같은 오류를 얻을 데이터에 보낼 때마다 :
무엇을 내가 그것을 말할 수에서error=Your%20session%20has%20expired.%20%20Please%20try%20again
DotNetNuke의 쿠키는 다시 전달되지 않는 어떤 도움이 크게 될 이유는 확실하지이기 때문에 고맙습니다. 내 GUZZLE 코드는 다음과 같습니다.
include_once(LIBRARY_PATH . '/guzzle.phar');
use Guzzle\Http\Client;
use Guzzle\Plugin\Cookie\CookiePlugin;
use Guzzle\Plugin\Cookie\CookieJar\ArrayCookieJar;
$cookiePlugin = new CookiePlugin(new ArrayCookieJar());
$client = new Client('ASPX URL CODE GOES HERE');
$client->addSubscriber($cookiePlugin);
$client->setUserAgent('Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0');
$response = $client->get('ASPX URL CODE GOES HERE')->send();
$request = $client->post('ASPX URL CODE GOES HERE', array(), array(
'__EVENTTARGET' => 'dnn$ctr383$LoginPage$SearchPage$dataPanel$ctl01$ctl13$LoginButton',
'__EVENTARGUMENT' => '',
'dnn$ReturnModuleFocus' => '',
'dnn$ModuleFocalPoint' => '',
'dnn$ModuleInvokedFromDataSearch' => '',
'dnn$ctr383$LoginPage$SearchPage$dataPanel$ctl01$ctl11$userName$mb_userName' => 'USERNAME HERE',
'dnn$ctr383$LoginPage$SearchPage$dataPanel$ctl01$ctl12$password$mb_password' => 'PASSWORD HERE',
'dnn$ctr383$LoginPage$SearchPage$dataPanel$ConfirmationSaveResponse' => '',
'dnn$ctr383$LoginPage$SearchPage$dataPanel$MinMax' => '',
'dnn$ctr383$LoginPage$SearchPage$dataPanel$dpPostBack' => '',
'ScrollTop' => '',
'__dnnVariable' => '',
'ScrollX' => '0',
'ScrollY' => '0',
'iCWindowID' => '2',
'iCRequestID' => '1',
'iCFieldsChanged' => '0',
'__VIEWSTATE' => ''
));
$response = $request->send();
echo $response;
감사합니다.
ASP 사이트를 다루고 있습니다. 그러나 그 __VIEWSTATE thats 문제는 위의 내 게시물 변수에서 볼 수있는 공백으로 전달 된 및 구문 분석을 시도하고 항상 비어있는 것 같다. – Sincore