Wpis z mikrobloga

#webdev #php
W jaki sposób uzyskać dostęp do zmiennych sesji o danym id? Istotne jest to że robię to na serwerze websocketów i użycie
session_id($id); session_start() odpada, bo session_start() próbuje wysłać nagłówki a nie może tego zrobić przy połączeniu websocketów co generuje warning.
  • 2
  • Odpowiedz
@SiarkoWodor: Jeśli użyjesz session_save_path, to możesz wskazać swój katalog, potem z niego wyciągasz odpowiedni plik i masz. Jeśli nie, to w /tmp powinny siedzieć dane sesji.
Jeśli jest aktywny suhosin, to pliki będą zakodowane i bez session_start chyba się nie obejdzie. A warningi przecież można ukryć.
  • Odpowiedz
@SiarkoWodor: Buforowanie outputu. ob_start i ob_end_clean. To powinno pozwolić Ci przechwycić ten output tak, że nie zostanie wysłany.

Natomiast tak ogólnie, jeśli potrzebujesz takimi hackami uzyskać dostęp do sesji PHP, to znaczy, że prawdopodobnie te dane nie powinny w niej w ogóle być.
Jeślipotrzebujesz szybkiego dostępu do jakichś danych usera, to możesz np. użyć redisa, który też trzyma dane w RAMie.

Ręcznego czytania plików sesji bym nie doradzał. To
  • Odpowiedz