ورود

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : سوال php : لاگین و حفظ سشن



rules
October 19th, 2014, 18:09
استاید چند روزه یک مشکلی دارم. داخل سایت با curl یا snoopy کامل لاگین میشه. حالا میام صفحه رو مثلا از صفحه رو سیو کنم یا file-get-contents کنم اما باز لاگین میخواد انگار سشن فقط برای کار با snoopy یا curl میمونه. راه حل چییه ؟

hamid.soltani92
October 19th, 2014, 18:19
سلام.
بله سشن برای curl باز می‌مونه. دلیلش هم واضحه، چون فایل کوکی رو به curl میدید.
با استفاده از curl و تعریف مجدد فایل کوکی که هنگام لاگین استفاده شده، می‌تونید این کار رو انجام بدید.

iMohsen
October 19th, 2014, 18:26
در مورد snoopy نمیدونم چی هست . ولی اگر شما cookie ذخیره کنید و از curl_close استفاده کنید . در درخواست های بعدی دیگه این cookie معتبر نیست . شما در تابعی که باهاش لاگین میکنید و cookie نگه میدارید نباید از curl_close استفاده کنید تا cookie در دیگر توابع نیز قابل استفاده باشد .

hamid.soltani92
October 19th, 2014, 18:34
در مورد snoopy نمیدونم چی هست . ولی اگر شما cookie ذخیره کنید و از curl_close استفاده کنید . در درخواست های بعدی دیگه این cookie معتبر نیست . شما در تابعی که باهاش لاگین میکنید و cookie نگه میدارید نباید از curl_close استفاده کنید تا cookie در دیگر توابع نیز قابل استفاده باشد .
جسارتا، فرمایشتون کاملا اشتباه هست.

rules
October 19th, 2014, 18:49
جسارتا، فرمایشتون کاملا اشتباه هست.

قبل اینکه curl_close کنیم مثلا باید با تابع file-get-contents کار کنم ؟ یا باید یک curl جدید با COOKIEJAR ؟

- - - Updated - - -

حل شد. برای دوستانی که سول من رو دارن : (اگر لینکتون شناسایی یوز میخواد خودتون setopt کنید)


function file_get_contents_curl($url) {
$ch = curl_init();

curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

$data = curl_exec($ch);
curl_close($ch);

return $data;
}

iMohsen
October 20th, 2014, 11:08
جسارتا، فرمایشتون کاملا اشتباه هست.

من طبق تجربه ای که داشتم گفتم . در سیستم هایی که براساس session میان و کوکی ست میکنن با هر بار curl_close استفاده از اون کوکی امکان پذیر نیست و مجددا باید کوکی بگیرید .
البته این رو هم خوندم .


You should only call curl_close() when you know you're done with that particular handle, or if switching from its current state to a new one (ie: changing a ton of options via curl_setopt() would be faster by going from a clean new handle than your current "dirty" one.

hamid.soltani92
October 20th, 2014, 12:33
من طبق تجربه ای که داشتم گفتم . در سیستم هایی که براساس session میان و کوکی ست میکنن با هر بار curl_close استفاده از اون کوکی امکان پذیر نیست و مجددا باید کوکی بگیرید .
البته این رو هم خوندم .
در صورتی که به سیستم فایل کوکی رو معرفی کنید، مشکلی با بستن curl نخواهید داشت.
مگه موقع کار کردن با مرورگر، هنگام بستن تب سشن شما اکسپایر میشه؟!