Wyświetlanie z SESSION w innym pliku

Pytania i problemy
MTGmati
MTGmati

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 "Name: ".$_SESSION['client_nickname']."";

I brak wyświetlania się nicku.


(Tak wiem że trzeba session_start(); na początku...)

Nieznajomy11
Nieznajomy11 Moderator forum.lvlup.pro

Więcej kodu, z tego tak ciężko dość coś powiedzieć.

MTGmati
MTGmati

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 "Name: ".$_SESSION['client_nickname']."";
Jebanany
Jebanany

MTGmati:

(Tak wiem że trzeba session_start(); na początku…)

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
MTGmati

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
Jebanany

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
system

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.