url üzerinden session id geçen

4 Cevap php

I'm trying to get my script to use url session id instead of cookies. The following page is not picking up the variable in the url as the session id. I must be missing something.

İlk sayfa http://www.website.com/start.php

ini_set("session.use_cookies",0);
ini_set("session.use_trans_sid",1);
session_start();
$session_id = session_id();
header("location: target.php?session_id=". $session_id );

Aşağıdaki sayfa - http://www.website.com/target.php?session_id=rj3ids98dhpa0mcf3jc89mq1t0

ini_set("session.use_cookies",0);
ini_set("session.use_trans_sid",1);
print_r($_SESSION);
print(session_id())

Sonuç farklı bir oturum kimliği ve oturum boştur.

Array ([debug] => yok) pt1t38347bs6jc9ruv2ecpv7o2

4 Cevap

Eğer sadece ikinci sayfada session_start() aramak gerekir gibi görünüyor.

Dokümanlar:

session_start () bir oturum oluşturur ya da GET, POST veya bir çerez gibi bir isteği, üzerinden aktarılan geçerli oturum kimliği dayalı geçerli bir sürdürür.

EDIT:

O dedi, elle de sorgu dizesinden session id kapma deneyebilirsiniz. İkinci sayfada gibi bir şey yapmak gerekir:

ini_set("session.use_cookies",0);
ini_set("session.use_trans_sid",1);
session_id($_GET['session_id']);
print_r($_SESSION);
print(session_id());

Eğer bir parametre olarak o id geçirirseniz session_id() function id set unutmayın.

oturum kimlikleri geçmek url kullanırken dikkatli olun, bu referer yoluyla oturum gaspına yol açabilir!

Yerine hardcoding 'PHPSESSID', bu kullanın:

session_id($_GET[session_name()]);

(Flaş domuz IE yedekler gibi oturumları flaş nesne ve firefox arasında paylaşılan bu yüzden,) Benim sorun FF Flash kullanarak edildi

Gerçeğe işaret Tüm bu cevapların php 5.3 kullanma. Ne nihayet işe bulundu oldukça basit .. sorgu dizesinde id geçmek. Ayarlayın. SONRA oturumu başlatın.

session_id($_GET['PHPSESSID']);
session_start();