MTGmati | 2021-02-17 10:25:49 UTC | #1
Próbuje wyświetlić nazwę użytkownika zapisaną w $_SESSION
, w następujący sposób:
W index.php ->
$_SESSION['client_nickname'] = $client->client_nickname;
W test.php
echo "<b>Name</b>: ".$_SESSION['client_nickname']."</p>";
I brak wyświetlania się nicku.
(Tak wiem że trzeba session_start();
na początku…)
Nieznajomy11 | 2018-02-05 23:29:12 UTC | #2
Więcej kodu, z tego tak ciężko dość coś powiedzieć.
MTGmati | 2018-02-06 00:32:08 UTC | #3
index.php -> (funkie getClientIp() mam zrobioną, przetestowaną. pakiety zaimplementowane TS3 PHP Framework)
foreach ($ts3->clientList(array('client_type' => '0', 'connection_client_ip' => getClientIp())) as $client) {
$FLAG = false;
$client_nick = $client->client_nickname;
$_SESSION['client_nickname'] = $client_nick;
break;
}
test.php ->
session_start();
echo "<b>Name</b>: ".$_SESSION['client_nickname']."</p>";
Jebanany | 2018-02-06 11:29:58 UTC | #4
[quote=”MTGmati, post:1, topic:5336”]
(Tak wiem że trzeba session_start(); na początku…)
[/quote]
No dobrze, a session_start()
; w pierwszym pliku? Dokładniej pisz w postach.
Dodatkowo, zrób np
var_dump($_SESSION);
w pliku test.php.
Sprawdź dodatkowo, najlepiej w trybie incognito przeglądarki. Być może masz jakiś plugin w przeglądarce, który kasuje ciastka. Ciastko powinno mieć nazwę standardowo PHPSESSID
.
Dodatkowo zerknij w php.ini
, bo być może masz wyłączoną obsługę ciastek, a dokładniej cokolwiek źle ustawione.
# Ścieżka do zapisywanie sesji
# Pamiętaj o nadaniu permisji 777
session.save_path = "C:\php\sessiondata\"
# Chyba że używasz ciastek
session.use_cookies = 1
# Domyślna nazwa sesji
session.name = PHPSESSID
# Żywotność ciastka, jeśli 0, to po zamknięciu przeglądarki (w sekundach oczywiście)
session.cookie_lifetime = 0
# Ścieżka pliku, dla którego ciastko obowiązuje
session.cookie_path = /
# Domena, w której ciastko obowiązuje
session.cookie_domain =
# Mechanizm zarządzania sesją, domyślnie PHP (w Google możesz poczytać więcej)
session.serialize_handler = php
Więcej ustawień sesji znajdziesz na stronie dokumentacji PHP: http://php.net/manual/en/session.configuration.php
Sprawdź na dwóch czystych plikach czy w ogóle sesja Ci działa. Po prostu między nimi.
MTGmati | 2018-02-07 04:06:07 UTC | #5
Zrobiłem var_dump($_SESSION);
tak jak kazałeś i otrzymałem następującą wiadomość:
["name"]=> object(__PHP_Incomplete_Class)#1 (3) { ["__PHP_Incomplete_Class_Name"]=> string(24) "TeamSpeak3_Helper_String" ["string":protected]=> string(6) "MTGmati" ["position":protected]=> int(0) }
Jebanany | 2018-02-11 01:15:50 UTC | #6
Nie wiem jak w Twoim frameworku, u mnie patologicznie działało zapisywanie obiektów w sesji. Przed wstawieniem do sesji możesz dać
$client_nick = (string)$client->client_nickname;
system | 2021-02-17 10:25:59 UTC | #7
Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.