راکت
حل شده

گرفتن کوکی با curl

6 پاسخ

@nimageneral
@mhyeganeh
@behzad.azizan
چطوری میتونم با curl کوکی یک سایت رو بگیرم

ftp
ftp
@ftp
ثبت پرسش جدید

پاسخ‌ها

6
علی ام
علی ام
@aliam
بهترین پاسخ

باید از دستور CURLOPT_COOKIEJAR و CURLOPT_COOKIEJAR استفاده کنید. دقیق تفاوتشون رو یادم نیست متاسفانه اما با جستجو میتونید بفهمید.
و این هم نمونه کدی که برای لاگین توی یه سایتی خودم نوشته بودم. این کد هم کوکی رو میگرفت و هم اگر سرور درخواست میکرد باز ارسالش میکرد براش.

$ch = curl_init('http://site.com/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . "/cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . "/cookies.txt");
$response = curl_exec($ch);
IrajJavidan
IrajJavidan
@IrajJavidan1

@mehdisut

curl -c - http://example.com
ftp
ftp
@ftp

تخصص: ساده

@aliam
الان درست شد اما این ارور Error:Could not resolve host: میده

شاید پاسخ شما همین‌جا باشد

علی ام
علی ام
@aliam

@mehdisut
توی استک خواندم این میتونه مربوط به این باشه که curl داره با ipv6 کار میکنه و یا مشکل از dns هست. (من که از هیچ کدوم سر در نمیارم ولی این دو کد رو گفتن امتحان کنید. اول:

curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );

و اگر نشد این رو هم امتحان کنید:

curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, false );
curl_setopt($ch, CURLOPT_DNS_CACHE_TIMEOUT, 2 );

و در آخر با اینها هم میتونید جزئیات بیشتری از ارور بدست بیارید:

var_dump(curl_exec($ch));
var_dump(curl_getinfo($ch));
var_dump(curl_error($ch)); 

منبع برای توضیحات بیشتر.

ftp
ftp
@ftp

تخصص: ساده

@aliam
ببخشید یک سوال دیگه الان هر بار که با کدی که گفتید کرال میکنم کوکی جدید سایت رو به من میده یا نه؟

علی ام
علی ام
@aliam

@mehdisut
بله قطعا.
هر بار کوکی جدید توی فایل cookies.txt ذخیره میشه. میتونید بازش کنید بخونیدش خودتون.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام