Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: nazwa sesji
Forum PHP.pl > Forum > PHP
Bora
Chce zmienić nazwe identyfikatora sesji na sid ale niestety działa to tylko za 1 wywołaniem strony (sesje działąja poprawnie).
Pod spodem kod, może ktoś znajzie jakieś błedy.

[php:1:14e7729322]<?php
<?php
ini_set( 'session.name', 'sid' );
session_start();

echo"<a href=?sid=".session_id().">dalej</a>";
if (empty($_SESSION['ile']))$_SESSION['ile']=0;
echo ++$_SESSION['ile'];
ini_get( 'session.name');
echo"<br>
PHPSESSID: ".PHPSESSID."<br>
sid: ".sid."<br>
session_id: ".session_id()
."<br><br>";

phpinfo();
?>
?>[/php:1:14e7729322]
kubatron
sproboj tak ale nie wiem czy pomogłem więc nie strzelaj jesli niepomogłem biggrin.gif [php:1:556392e528]<?php
session_start();
ini_set( 'session.name', 'sid' );

echo"<a href=?sid=".session_id().">dalej</a>";
if (empty($_SESSION['ile']))$_SESSION['ile']=0;
echo ++$_SESSION['ile'];
ini_get( 'session.name');
echo"<br>
PHPSESSID: ".PHPSESSID."<br>
sid: ".sid."<br>
session_id: ".session_id()
."<br><br>";
echo "<a href=index.php>Strona gg</a>";
phpinfo();
?>[/php:1:556392e528] mnie uczono ze sessja musi być na początku strony zawsze chyba ze w tym przypadku to nie ma znaczenia lub sessja musi być zmieniona, ale raczej nic niepomogło sad.gif
Bora
ini_set( 'session.name', 'sid' ); musi być przed session_start() inaczej nazwa nie zostaje zmieniona.

Podspodem umieszcam linka, zięki niemu zobaczycie jak to działa.
http://217.97.239.199/error.php
kubatron
nio wiem teraz zrozumiałem a dokładnie to o co tobie chodzi o zapisanie sessji czy co?
Bora
pokaże to na przykładzie:

za 1 otwarciem jest :
Kod
ile:1

session.name: sid

PHPSESSID: PHPSESSID

sid: sid=955064e9990dcf71b9467d291802a5b3

session_id: 955064e9990dcf71b9467d291802a5b3

czyli wydaje sie być dobrze niestety już każdce kolejne otwarcie odswierzenie daje cioś takiego:
Kod
ile:2

session.name: sid

PHPSESSID: PHPSESSID

sid:

session_id: 955064e9990dcf71b9467d291802a5b3

czyli sid nagle znika, i to jesat największy problem. Składnia wydaje sie być ok a tutaj taki wałek. sid znika i nie pokazuje sie już
dob
Cytat
Use of undefined constant PHPSESSID - assumed 'PHPSESSID'


Użyłeś niezdefiniowanej stałej ...
linie 12 z pierwszego Twojego kodu zamien na to :
[php:1:1232d56a4e]<?php
echo "sid: ".SID."<br>";
?>[/php:1:1232d56a4e]

Nie wiem czy dobrze zrozumialem problem (jak nei to sorki) ale chyba powinno działać
Bora
naprowadziłeś mnie a dobre rozwiązanie thanx. Czasami jak sie czegoś nie używa przez długi okres czasu to potem trzeba sobie to przypominac od zera i są takie wałki smile.gif


update

głupia sprawa miałem poprawną wersje tylko przez moment i coś skopałem wiec szukam od nowa smile.gif

jak zrobie poprawną wersje to odrazu udostępnie.
chfast
A nikt nie słyszał o [manual:67372ca5d4]session_name[/manual:67372ca5d4]() :?:
Bora
słyszałem ale znalazłem tylko małą wzmianke o tym na webcity i do końca nie kumam tej funkcji. Mógłbyś ją troche przybliżyć ?


update

slyszałem.
Niestety sesja nadal sie dziwnie zachowują i SID znika po odświerzeniu nawet jak jest standardowo PHPSESSID

[php:1:aa01b02536]<?php
session_start();

echo"<a href=?".SID.">dalej</a>";
?>[/php:1:aa01b02536]
i po odświerzeniu SID znika. Ktoś ma jakieś sugestie?questionmark.gif
chfast
Cytat
słyszałem ale znalazłem  tylko małą wzmianke o tym na webcity i do końca nie kumam tej funkcji. Mógłbyś ją troche przybliżyć ?

Po do dałem link do manuala, żebyć sobie mógł poczytać.
Funkcja ta ustawia nazwę sesji - czyli dokładnie mówiąc zmienia identyfikator sesji na podany, jednocześnie zwracając stary.
Bora
session_name() i ini_set( 'session.name', 'sid' ) działają poprawnie problem tkwi w sesjach czemu SID znika
chfast
Cytat
session_name() i ini_set( 'session.name', 'sid' ) działają poprawnie problem tkwi w sesjach czemu SID znika

Chyba już wiem o co biega. Chodzi ci o to, że za drugim otworzeniem strony nie ma już zmiennej sid w adresie??
Bora
tak.
zmienna sid znika.
ps ciacha są wyłączone.

na początku myslałem ze to wina innej nazwy sesji ale okazało sie że bez zmiany też znika
chfast
Cytat
ps ciacha są wyłączone.

No może jednak php znajduje sposób na przekazanie sesji w inny sposób niż URL. Jeśli sesja jest przekazywana to nie powinieneś się tym przejmować.
Bora
Manual php:
Kod
Istnieją dwie metody propagacji identyfikatora sesji:

    * Ciasteczka

    * Parametry URL'a


A wiec jaki jest jeszcze inny spsób questionmark.gif
chfast
Cytat
Kod
ile:2

session.name: sid

PHPSESSID: PHPSESSID

sid:

session_id: 955064e9990dcf71b9467d291802a5b3

Jak widać id sesji zostało przekazane (bez URL). Może jednak cookie działają. W ogóle trzeba pamiętać, że php to cwana bestia - zawsze jakoś uda jej się cię podejść.
Bora
ini_set( 'session.use_cookies', 'false' ); w końcu spowodowało że sid pokazuje sie za każdym odświerzeniem.

Wygląda na to że mino wyłączonych ciasteczek w przeglądarce (IE o Mozilla) nadal w jakiś sposób były przechowywane ciasteczka
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.