2015-08-19 2 views
0

Я пытаюсь получить свою домашнюю страницу после входа в систему, используя CURL, но я не знаю знаю, почему он не отображается. Я думаю, что что-то не так в моем коде; пожалуйста, проверьте мой код и дайте мне знать, что случилось в этом кодеВойти с помощью curl не работает с captcha

я попытался каждую вещь, но не каждый раз, но я видел, что можно войти в систему на этом сайте, у меня есть одно программное обеспечение, которое успешно войти в систему, но его это пробная версия и я хотел построить такую ​​же вещь в PHP

<?php 
$file_contents=file_get_contents("https://www.irctc.co.in/eticketing/loginHome.jsf"); 
$dom = new DOMDocument(); 
@$dom->loadHTML($file_contents); 

$xpath = new DomXpath($dom); 
$imgs = $xpath->query('//*[@id="cimage"]'); 
foreach($imgs as $img) 
{ 
    $imagesrc=$img->getAttribute('src') . PHP_EOL; 
} 
?> 

<?php 
//initial request with login data 
if(isset($_REQUEST['submit'])) 
{ 
     $user='ansari4all'; 
     $pass='ansari4all'; 
     $captcha=$_REQUEST['j_captcha']; 
     $submit=$_REQUEST['submit']; 
     $ch = curl_init(); 

     curl_setopt($ch, CURLOPT_URL, 'https://www.irctc.co.in/eticketing/loginHome.jsf'); 
     curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/32.0.1700.107 Chrome/32.0.1700.107 Safari/537.36'); 
     curl_setopt($ch, CURLOPT_POST, true); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, "j_username=$user&j_password=$pass&j_captcha=$captcha&submit=$submit"); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch, CURLOPT_COOKIESESSION, true); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
     curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie-name'); //could be empty, but cause problems on some hosts 
     curl_setopt($ch, CURLOPT_COOKIEFILE, '/var/www/ip4.x/file/tmp'); //could be empty, but cause problems on some hosts 
     $answer = curl_exec($ch); 
     if (curl_error($ch)) { 
      echo curl_error($ch); 
     } 

     //another request preserving the session 

     curl_setopt($ch, CURLOPT_URL, 'https://www.irctc.co.in/eticketing/home'); 
     curl_setopt($ch, CURLOPT_POST, false); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, ""); 
     echo $answer = curl_exec($ch); 
     if (curl_error($ch)) { 
      echo curl_error($ch); 
     } 
} 
?> 
<form method="post"> 
    <img src="https://www.irctc.co.in/eticketing/<?php echo $imagesrc;?>" /> 
    captcha:<input type="text" name="j_captcha" /> 
    <input id="loginbutton" type="submit" name="submit" value="Login" /> 
</form> 

ответ

0

Я не могу войти на сайт с моим браузером, он каждый раз говорит

enter image description here

Похоже, это ошибка страницы. Если нет, вы должны получить URL-адрес изображения и изображение с помощью cURL и использовать сеанс как в своем запросе POST. Это очень важно для некоторых капчей.

+0

Вы говорите, что «используйте сеанс как с вашим запросом POST», можете ли вы объяснить это? я не могу понять, что вы пытаетесь сказать, пожалуйста, уточните это. –

Смежные вопросы