Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sesje
Forum PHP.pl > Forum > Przedszkole
Nevi
Mam problem smile.gif, zrobiłem autoryzacje na stronie i przesyłam dwi zmienne za pomoca sesji do następnej strony, niby wszystko działa (48 osobom działa) jednak znalazły si dwi którym to nie działa, oby dwie zmienne sa puste u nich. Jak to naprawić i dlaczego tak sie dzieje?
nospor
Hmmm, trochę maŁo danych. Może ty te sesje w ciasteczkach przechowujesz, a te dwie osoby mają wyłączone ciasteczka?
Guest
Sesji nie przechowuje w ciasteczkach, bo ona potrzebna jest tylko na cas włączenia przeglądarki

<?php session_start();
include ("data/db.php") ;
?>

<?
session_register("zal");
session_register("laz");
?>

<?
if (''==$zal) {echo "<p>Zaloguj się!!! error#003</p>"; exit;}
if (''==$laz) {echo "<p>Zaloguj się!!! error#002</p>"; exit;}
?>
kilka fragmeńcików smile.gif, tym dwóm osoba wyskakuje błąd smile.gif.
nospor
Cytat
bo ona potrzebna jest tylko na cas włączenia przeglądarki
To żeś mi dowalił laugh.gif
Sesja nie tylko tobie jest potrzebna na czas włączenia przeglądarki. Sesja z reguły jest na czas przeglądarki. Gdy wyłączasz przeglądrkę sesja wygasa.
A id sesji nosi się np. w ciasteczku lub w url.
Guest
Cytat(nospor @ 2005-07-13 08:20:24)
Cytat
bo ona potrzebna jest tylko na cas włączenia przeglądarki
To żeś mi dowalił laugh.gif
Sesja nie tylko tobie jest potrzebna na czas włączenia przeglądarki. Sesja z reguły jest na czas przeglądarki. Gdy wyłączasz przeglądrkę sesja wygasa.
A id sesji nosi się np. w ciasteczku lub w url.

No przecież napisałem że jej nie przechowuje bo nie mam takiej potrzeby, nadal to nie rozwiazuje problemu dlaczego sesja jest gubiona pomiędzy dwoma stronami <lol>.
Nevi
Nadal mam ten problem z sesjami, wiem ze sesje nie działają tym osobą pod IE natomist pod Operą działają im bezproblemu.
switch
A na drugiej stronie dałeś?
  1. <?php session_start();
  2. ?>


I jak na mój gust to poinno być:
  1. <?php
  2.  
  3. if ($_SESSION['zal'])
  4.  
  5. ?>

a nie
  1. <?php
  2.  
  3. if(==$zal)
  4.  
  5. ?>
Nevi
jest na każdej stronie, zmieniłem, o dziwo jednej osobie samo zaczeło działać :-), u drugiej pomogła zmiana rzeglądarki, tylko nadal useró przybywa i pojawiają się kolejni z tym problemem.
switch
To może zrób to banalnie. Zawsze mi to działa.
Na samej górze przed nagłówkiem.
  1. <?php 
  2. if (!$_SESSION['zal']) {
  3. header(&#092;"Location:http://strona_do_logowania\");
  4. }
  5. ?>


Jeżeli masz strony na zasadzie index1.php?id=1, gdzie dodajesz podstrony do jednej głównej pamietaj, aby sesje oraz polecenie wywalenia gościa dac również na każdej z nich, gdyż można np wyświetlić wyłącznie stronę wewnętrzną i jestem na koncie w banalny sposób dla Ciebie. zauwazyłem, ze plik. który ddoajesz przy starcie sesji znajduje się w katalogu. Czy masz taki katalog utworzony i czy jego nazwa jest zdefiniowana z małych liter, czyli nazywa się "data", czy tez z pozycji Windowsa dałeś nazwę np "Data", co dla serwera na Unixie powoduje, ze taki katalog jest nieobecny cool.gif W zasadzie na Twoim miejscu zmieniłbym zapis

  1. <?
  2. session_register(&#092;"zal\");
  3. session_register(&#092;"laz\"); 
  4. ?>


na rozwiązanie typu

  1. <?php
  2.  
  3.  
  4. if (tutaj dajesz polecenie sprawdzenia danych w bazie) {
  5.  
  6. $_SESSION['zal'];
  7. $_SESSION['laz'];
  8.  
  9. header(&#092;"Location:./strona_klienta.php\");
  10.  
  11. }
  12.  
  13. ?>
popo
co do sesji to jej id ZAWSZE jest przechowywany po stronie klienta. Przewaznie w ciasteczku (default w 99% instalacji). Sprawdz wiec co jest ustawione w php.ini i ustaw use cookies only na 0 wtedy php powinno przeslac id sesji do klienta w urlu jesli cookies nie trybia
Guest
Dostępu do pliku php.ini nie mam, problem właśnie polegał na tym że przy wyłączonych ciasteczkach id sesji nie było przekaztwane, więc musiałem sam je podoklejać do adresów smile.gif.
kurt
Cytat(switch @ 2005-07-14 12:12:37)
A na drugiej stronie dałeś?

session_start();

może to banał dla większości ale nigdzie nie znalazłem informacji,że
  1. <?php
  2. ?>
trzeba klepać na każdej stronie php. Wydawało mi się, że
  1. <?php
  2. ?>
właśnie tworzy odrębną sesję i każdorazowe jego wklejenie na kolejnej stronie spowoduje jej zmianę. (?)
kwiateusz
nie session_start() jesli dostaje info z poprzedniej strony ze jakas sesja istnieje to ja kontynuuje a jak sesji nie ma to ja tworzy .. jesli nie dasz tego to skrypt nie widzi poprostu zmiennych sesji ...
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.