2010-05-03 3 views
-4
<?php 
// create a new CURL resource 
$file_path = '/mail'; 
define("COOKIE_FILE", "c:\cookie.txt"); 
$ch = curl_init(); 
// set URL and other appropriate options 
curl_setopt($ch, CURLOPT_URL, "https://mail.gov.in/iwc/signin"); 

curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_COOKIESESSION, TRUE); 
session_write_close(); 
$strCookie = 'PHPSESSID=d095af0e30afc021dd3652734009' . $_COOKIE['PHPSESSID'] . '; path=/mail'; 
curl_setopt($ch, CURLOPT_COOKIE, $strCookie); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, COOKIE_FILE); 
curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIE_FILE); 

curl_setopt ($ch, CURLOPT_POST, 1); 

curl_setopt ($ch, CURLOPT_POSTFIELDS,'fromLogin=true&domainName=nic.in&username=&password=&button=Sign%20In'); 

$url = curl_getinfo($ch); 

// grab URL and pass it to the browser 
$data = curl_exec($ch); 
echo $data."<pre>"; 

echo "<pre>"; 
print_r($url); 

// close CURL resource, and free up system resources 
curl_close($ch); 
?> 

, что случилось с моим кодом, почему я не могу войти непосредственно в их почтеPHP локон проблема Войти

+2

Например занять некоторое время, чтобы написать правильный вопрос с нормальными предложениями и грамматикой. По крайней мере, если вы ожидаете какой-либо помощи. – Ben

+0

И, пожалуйста, не публикуйте дубликаты. Какого черта. Вы задали тот же вопрос несколько часов назад. -1, голосование закрывается. –

+0

http://stackoverflow.com/questions/2757442/php-curl-login-problem –

ответ

1

Вы устанавливаете жесткое кодирование идентификатора сеанса, а затем загружаете COOKIE_FILE. Убедитесь, что в файле cookie уже нет другого файла cookie PHPSESSID. Это может быть переопределение идентификатора сеанса, который вы только что установили вручную.

Кроме того, вы передаете ключи имени пользователя и пароля в данных POST, но фактически не отправляете имя пользователя и пароль. Возможно, вы подвергли их цензуре с этого поста, но стоит отметить. Скорее всего, это будет «.... & username = SOMEUSER & password = SOMEPASSWORD».

Затем вы делаете curl_getinfo(), но вы еще не сделали звонок curl_exec(), так что нет ничего, чтобы получить информацию, кроме некоторых внутренних настроек CURL.

Вы можете проверить, если $data ЛОЖЬ перед выводом его, в случае, если что-то не удалось в CURL:

$data = curl_exec($ch); 
$info = curl_getinfo($ch); 
if ($data === FALSE) { 
    print("CURL failed: " . curl_error($ch) . "\n"); 
} 
var_dump($info); // print out full information array from curl 
var_dump($data); // print out anything the server may have returned 
+0

Ошибка сервера На этом сервере возникла внутренняя ошибка, которая мешает ему выполнить ваш запрос. Наиболее вероятная причина - неправильная конфигурация. Попросите администратора найти сообщения в журнале ошибок сервера. " – user331329

+0

массив (20) {[" url "] => строка (30)" https://mail.nic.in/mail/mauth "[" content_type "] => строка (9)" text/html "[ "http_code"] => int (500) ["header_size"] => int (244) ["request_size"] => int (412) ["filetime"] => int (-1) ["ssl_verify_result"] = > int (20) ["redirect_count"] => int (0) ["total_time"] => float (0.031) ["namelookup_time"] => float (0) ["connect_time"] => float (0) [ "pretransfer_time"] => float (0.031) ["size_upload"] => float (92) ["size_download"] => float (305) ["speed_download"] => float (9838) ["speed_upload"] => float (2967) ["download_content_length"] => – user331329

+0

@user 'Пожалуйста, попросите администратора искать сообщения в журнале ошибок сервера. –

0

Может быть, реферер получает проверяемых, CURLOPT_REFERER.

+0

может быть более понятным. – user331329

2

Вы, кажется, пытается экранировать скоблить веб-почты почтовый ящик. Чтобы получить помощь в этом, вам нужно предоставить гораздо больше информации.

Тем не менее, PHP предлагает возможность напрямую обращаться к почтовым ящикам POP3: IMAP Functions В примечаниях, внесенных пользователем, есть a full-fledged code snippet для доступа к почтовым ящикам POP3.

+0

Я представил кодирование выше PLZ помочь мне ............. – user331329

0

check CURLOPT_POSTFIELDS: где пароль для входа и имя пользователя? Вы установили CURLOPT_COOKIE, который включает в себя куки-файлы, которые вы дали, но curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIE_FILE); делает то же самое.

2

использование curl_setopt ($ ч, CURLOPT_COOKIE, $ strCookie) для печенья в заголовке HTTP & редактировать код, чтобы получить $ значения strCookie, это значение идентификатора PHPSESSION будет недействительным ..

1. $strCookie = 'PHPSESSID=d095af0e30afc021dd3652734009' . $_COOKIE['PHPSESSID'] . '; path=/mail'; 

и можно переписать уры strcookie как этот

2. $strCookie = 'PHPSESSID=' . $_COOKIE['PHPSESSID'] . '; path=/mail'; 

Или вы можете использовать CURLOPT_COOKIEFILE & CURLOPT_COOKIEJAR, чтобы сохранить куки на файл (без CURLOPT_COOKIE)

if(!file_exists(COOKIE_FILE)) { 
    $fh = fopen(COOKIE_FILE, "w"); 
    fwrite($fh,""); 
    fclose($fh); 
} 
curl_setopt ($ch, CURLOPT_COOKIEJAR, COOKIE_FILE); 
curl_setopt($ch, CURLOPT_COOKIEFILE, COOKIE_FILE); 

Надеется, что это полезно