PHP file_get_contents kullanırken $ _SESSION erişimini

2 Cevap php

Oldukça basit şeyler - - Ben bir e-posta gönderen bir sayfa adlı send.email.php var ben iş isteği oluşturur ve gönderir, bir sipariş id geçmektedir. Ben (URL için bir AJAX arama yapmak ve bir sorgu parametresi olarak order_id geçmek için javascript kullanın) geliştirdiği bağlamında kullanıldığında bu çalışıyor

Ben ancak şimdi ben php file_get_contents kullanarak arıyorum başka bir uygulamada aynı sayfayı yeniden çalışıyorum ($ base_url. 'Admin / send.email.php? Order_id ='. $ Order_id). Ben sayfayı bu şekilde aradığınızda, $ _SESSION dizisi boş IsEmpty () = 1'dir.

Ben file_get_contents kullanarak yeni bir oturum başlatma ve ben oturum açma $ _SESSION saklanan değerler var içinde bana mevcut değildir çünkü bu?

-> Geribildirim için teşekkür ederiz. Bu yeni çağrı varolan oturuma erişimi yok ki mantıklı ...

Ama yeni bir sorun:

Ben şimdi olsun: failed to open stream: HTTP isteği başarısız oldu! Ne zaman yürütmeye çalışıyor:

$opts = array('http' => array('header'=> 'Cookie: ' . $_SERVER['HTTP_COOKIE']."\r\n"));
$context = stream_context_create($opts);
$contents = file_get_contents($base_url.'admin/send.sms.php?order_id='.order_id, false, $context);

(Bu sadece bana erişim oturumunu izin vermez): ben onu aramak eğer HENÜZ, URL çalışıyor

$result file_get_contents($base_url.'admin/send.sms.php?order_id='.$order_id);

2 Cevap

file_get_contents() yerde kullanılmaması gerektiğini size iletilen kimlik / oturum bilgilerini gerekir. Herhangi bir çerez göndermek gitmiyor, bu nedenle kullanıcının kimlik bilgileri varsayılan olarak dahil edilmeyecektir.

Sen tür URL sorgu parametresi olarak oturum tanımlayıcı (varsayılan olarak örneğin 'PHPSESSID') dahil ederek çevresinde hack, ve bunun için diğer komut kontrol olabilir. Ama URL oturum tanımlayıcıları ileten sadece aynı sunucuya olsa bile, korkunç kötü bir uygulamadır.

$contents = file_get_contents("http://.... /send_sms.php?order_id=$order_id&" . session_name() . '=' . session_id());

Düzgün Bunu yapmak için, CURL kullanmak ve ana sayfanın tanımlama bilgileri de dahil olmak üzere tam bir HTTP isteği oluşturmak.

Eğer dosya eklemek veya send.sms.php komut ilgili işlevleri çağırmak gerekiyor. yerine (ki değil) bir webcoder gibi çağrı