LeWaR
12.11.2003, 12:14:29
Oto kawałek kodu:
[php:1:804b3d8bee]<?php
session_start();
if ($PHPSESSID=='fcb5ad7af8d9eb95bd0a9d466371eb28')
{
$PHPSESSID='';
session_id('');
session_destroy();
session_start();
}
?>[/php:1:804b3d8bee]
O co chodzi? Mianowicie jeśli pojawi się taki indentyfikator sesji to ma być zlikwidowany i ustawiony na nowo.
Niestety nie działa. Wpisując w adres ?PHPSESSID=fcb5ad7af8d9eb95bd0a9d466371eb28 indentyfikator jest nadawany.......
Czekam na pomysły...
Pozdrawiam
FiDO
12.11.2003, 12:23:42
[php:1:8750de8830]<?php
session_start();
if ($_GET[session_name()]=='fcb5ad7af8d9eb95bd0a9d466371eb28')
{
//$PHPSESSID='';
//session_id('');
// po co to? ^^
session_destroy();
session_start();
}
?>[/php:1:8750de8830]
Mozna wiedziec po co Ci "restartowanie" sesji w tym jednym przypadku?
LeWaR
12.11.2003, 12:27:17
jedna z wyszukiwarek zanotowała sobie link z tym id, a niestety baaardzo niewskazane jest, aby dwóch klientów na stronie w parade sobie wchodziło....
ew. zmienie session.name i po sprawie...
ale do tego to przed chwilą doszedłem...
pozdrawiam
LeWaR
12.11.2003, 13:06:28
Przed chwilą znalazłem:
[php:1:debec4ef5f]<?php
session_start();
print session_id();
session_regenerate_id();
// This is now different
print session_id();
print_r($_SESSION);
?>[/php:1:debec4ef5f]
Może się komuś przyda. php 4.3.3+
LeWaR
13.11.2003, 13:34:37
Oto rozwiązanie:
[php:1:14035c5358]<?php
if ($_GET[session_id()]=='fcb5ad7af8d9eb95bd0a9d466371eb28')
{
session_destroy();
session_start();
}
?>[/php:1:14035c5358]
FiDO
13.11.2003, 16:00:39
Nie wydaje mi sie, aby to dzialalo...
Po pierwsze session_id() zwraca ID sesji, a w $_GET jest tylko zmienna o indeksie session_name()
Po drugie nie masz na poczatku session_start(), wiec session_id() zwroci pusty string.
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.