PHP file_get_contents () oturumu farkında Yapımı

4 Cevap php

Önsöz: Benim app mod_rewrite etkindir ve ben REQUEST_URI dayalı vaious sayfaları indirir ve sayfa içerik olarak bunları yazdıran index.php sayfası var.

Sorun: Dosya () veya file_get_contents () işlevi benim diğer app sayfalarını indirirken mükemmel. Ama en kısa sürede ben download a page that is session enabled için kullanmak için çalışırken, ben sorunlarınız başlar.

Asıl sorun sayfadan url Varolan session id geçmek çalıştığımda indir, örneğin olduğunu

  $url = "http://localhost/EmplDir/AdminMenu.php";
  return implode('',file($url. "&" . session_name() . "=". session_id()));

My page never loads (or file() never loads content). I suspect I shoud use curl functions here, but it has too many options. My be an advice which curl options to use to make downloadable pages know about current PHP session would be helpful.

P.S. Yukarıda hem Windows ve Linux için gerçek gibi görünüyor.

4 Cevap

Bir ile URL kalanından sorgu dizesi ayrı değil mi?

Denemek

return file_get_contents($url. "?" . session_name() . "=". session_id());

Ayrıca, sunucu session.use-only-cookies yapılandırma ayarını kullanın olmadığından emin olmak gerekir.

Script sadece ($ _GET) var_dump yapan bir komut dosyası yazma ve yukarıdaki gibi isteyerek kendinizi ikna edebilirsiniz, bunun üzerine sorgu dizesi ve hareket göremiyorum hiçbir neden yok. Eğer çıkış sorgu argümanları görürseniz o zaman sadece session id verilen beklendiği gibi davranmasına değil neden görmek için komut dosyası hata ayıklama gerekiyor.

NOTE: I'm assuming that you wanting to request a file from the same domain as your application, otherwise using your session id for a remote site doesn't make much s ense.

Script herhangi değiştirmez yoksa superglobal variables, sadece bunu içerebilir:

ob_start();
include $_SERVER['DOCUMENT_ROOT'].'/EmplDir/AdminMenu.php';
return ob_get_clean();

session_name ve session_id size geçerli komut oturumunu verir; Değil kaldır sunucusu. Sen http anlayan bir şey kullanmak gerekir. Curl yapacağını, ya da tamamen bir tarayıcı öykünür SimpleBrowser gibi bir şey kullanabilirsiniz.

Ben aynı soruyu ve bir working answer burada bulunabilir:!

http://stackoverflow.com/a/16922510/846348