Nasıl URL PHPSESSID gönderebilir?

3 Cevap php

Ben bir HTTP üzerinden PHPSESSID göndermeye çalışıyorum bir çerez daha az müşteri için GET değişkeni.

I ?PHPSESSIONID=123ABC her linke ekleme olduğu çeşitli drupal uygulamalarında görmüştüm, ama nasıl PHP bu belirtmek ve olabilir bu yüzden GET parametresini değiştirmenin bir yolu var mı istiyorsun? Belirteç = 123ABC, ettik hatta HTTP POST aracılığıyla gönderilir?

Standart LAMP Zend çerçeve çalışan yığını.

Teşekkürler!

3 Cevap

Bir cookie kullanarak ya da değil, bu PHP seçenekleri tarafından yapılandırılır:

If the first one is set, cookies will be used if possible.
PHP should detect if cookies are enabled or not, and use them only if they are supported by the client.


To enable passing of the session id by GET instead of cookies, you might have to activate
session.use_trans_sid, which is disabled by default (Which means that, by defaut, session id is only passed by cookies -- never by GET).

But note that, with this option activated, PHP will pass the session id by GET at least for the first page each user of your site will come to... as they won't have the cookie at first, and the only way to check if they support cookies is by setting one, and trying to read it back on the next page.
And users that don't support cookies, including search engines I'd probably say, will have that session id -- and that is not nice :-(


And, you might also want to take a look at session.name to set the name of the key (set to to "token" instead of "PHPSESSID", I mean)


For more details, you can take a look at the Session Handling section of the manual :-)

Php.ini dosyasına (veya ini_set() kullanılarak) session_name() or session.name kullanarak PHPSESSID değiştirebilirsiniz.

Cookieless istemcileri için, session.use_trans_sid php.ini seçenek var - birbirine oturum kimlikleri ile URL'leri geçen, örneğin kullanıcılar, ya da URL'leri toplayıp arama motorları için - bu sorunlara neden olabilir farkında olmalıdır.

Elle yapıyor:

if ($_REQUEST['token'])
  session_id($_REQUEST['token']);
session_start();

print("foo=".$_SESSION['foo']++."<br />".
      "<a href={$PHP_SELF}?token=".session_id().">link</a><br />");
print("<form method=POST>".
      "<input type=hidden name=token value=".session_id()." />".
      "<input type=submit /></form>");