php curl giriş sorunu

4 Cevap php
<?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);
?>

peki benim koduyla yanlış neden ben kendi posta doğrudan giriş mümkün değilim

4 Cevap

Daha sonra COOKIE_FILE yükleme, sert bir kodlama bir oturum kimliği kuruyoruz. Başka PHPSESSID çerez zaten çerez dosyasında var değil emin olun. Bu sadece elle ayarlamak oturum kimliği geçersiz olabilir.

Yanı sıra, POST veri kullanıcı adı ve şifre anahtarlarını geçiyoruz, ama aslında adı ve parola göndererek değil. Belki bu yazı onları sansürlü ettik, ama işaret değer. Bu büyük olasılıkla ".... & username = someuser & password = SOMEPASSWORD" olmalıdır.

Daha sonra bir curl_getinfo(), ama henüz curl_exec() çağrısı yapmadım, bu yüzden bazı CURL iç ayarların dışındaki ilgili bilgi almak için uygun bir şey yok.

Sen $data şey CURL içinde başarısız olduğu durumda, bunu çıktısını almadan YANLIŞ olup olmadığını kontrol etmek isteyebilirsiniz:

$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

Sen bir webmail gelen kutusu kazımak taranması için çalışıyor gibi görünüyor. O ile ilgili yardım almak için, çok daha fazla bilgi sağlamanız gerekir.

Ancak, PHP doğrudan POP3 posta kutularına erişmek için imkan sunuyor: Kullanıcı notları katkıda IMAP Functions olarak, orada gibi görünüyor ne a full-fledged code snippet POP3 posta kutularına erişmek için.

http başlığında ve içinde çerez için curl_setopt ($ ch, CURLOPT_COOKIE, $ strCookie) kullanın $ strCookie değerini almak için kod düzenlemek, bu phpsession id değeri geçersiz olacak ..

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

u böyle ur strcookie yazabilirsiniz

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

Veya u CURLOPT_COOKIEFILE & kullanabilirsiniz CURLOPT_COOKIEJAR (CURLOPT_COOKIE olmadan) dosya üzerinde çerez kaydetmek için

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);

Bu helpfull Umut

Belki referer, CURLOPT_REFERER kontrol alır.