Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sesje w PHP4 a PHP5
Driver
post 26.08.2008, 13:08:31
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 26.08.2008

Ostrzeżenie: (0%)
-----


Podaje przyklad banalnego skryptu (chodzi o same sesje pomijając bezpieczeństwo itd.)

  1. <?php
  2. $a = $_POST[&apos;haslo&apos;];
  3. $c = $_POST[&apos;login&apos;];
  4.  
  5. if (($c == &#092;"xxx\") && ($a == \"zzz\")) {
  6. $_SESSION[&apos;zalogowany&apos;] = &apos;tak&apos;;
  7. }
  8. else 
  9. $_SESSION[&apos;zalogowany&apos;] = &apos;nie&apos;;
  10. ?>


i drugi plik
  1. <?php
  2. if ($_SESSION[&apos;zalogowany&apos;] == &#092;"tak\") {
  3. //cos tam
  4. }
  5. else {
  6. //blad autoryzacji
  7. }
  8.  
  9. ?>


Po wpisaniu odpowiedniego loginu i hasla do sesji wrzucana jest zmienna zalogowany rowna 'tak'. Przekierowuje na inny plik i sprawdzam czy $_SESSION['zalogowany'] == "tak".
I tu pojawia sie problem - pod PHP4 chodzi bez problemu, pod PHP5 nie chodzi (wyswietla sie blok "blad autoryzacji").

Moze wiecie co zmienic zeby dzialalo pod PHP5 ?

Ten post edytował kwiateusz 26.08.2008, 13:11:17
Powód edycji: używaj bbcode


--------------------
Profesjonalne strony internetowe
Skrypty baz noclegowych
Pozycjonowanie

Strony24.com
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
bim2
post 26.08.2008, 13:22:40
Post #2





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Daj w drugim pliku print_r($_SESSION); i powiedz co sie pojawiło. Może coś się wkrada do sesji. :0


--------------------
Go to the top of the page
+Quote Post
Driver
post 26.08.2008, 20:22:07
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 26.08.2008

Ostrzeżenie: (0%)
-----


W pierwszym pliku wyswietla sie prawidlowa tablica
Array ( [zalogowany] => tak )

W drugim tablica jest pusta.

Szukalem w googlach i gdzies napotkalem watek o nazwach sesji w php5. Niestety nie wiem jak mam to zastosowac


--------------------
Profesjonalne strony internetowe
Skrypty baz noclegowych
Pozycjonowanie

Strony24.com
Go to the top of the page
+Quote Post
ActivePlayer
post 26.08.2008, 20:42:40
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 224
Pomógł: 40
Dołączył: 6.07.2004
Skąd: Wuppertal

Ostrzeżenie: (0%)
-----


problem na 90% lezy po stronie konfiguracji serwera z php5
Go to the top of the page
+Quote Post
bim2
post 26.08.2008, 20:56:31
Post #5





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Może zły folder tmp dla sesji i nie może jej zapisać?


--------------------
Go to the top of the page
+Quote Post
Driver
post 27.08.2008, 07:45:53
Post #6





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 26.08.2008

Ostrzeżenie: (0%)
-----


Serwer raczej nie, zz tego wzgledu ze pisalem do admina nazwa.pl w tej sprawie (bo serwer mama na nazwie).
Odpisal:

Proszę sprawdzić PHP info sesionid jest inne dla php5 niż dla php4. Większość
zmian można dokonać za pomocą pliku .htaccess. Poniżej przesyłam link dotyczący
zmian pomiędzy wersją 4 a 5:
http://nazwa.pl/pomoc-niekompatybilnosci-m...HP5-i-PHP4.html

Pod podanym adresem nie ma nic na temat sesji. Na php.net tez nic nie znalazlem ...


Przed chwila zaobserwowalem jeszcze jedna rzecz - probowalem sie zalogowac.
Pierwsza proba - po zalogowaniu i przejsciu pomiedzy zakladkami na zalogowanej stronie wywalilo brak autoryzacji, tablica sesji jest pusta
Druga proba - wszystko poszlo ok - tzn dziala przechodzenie po zakladkach, sesja ma ustawione zalogowany=tak

Sprobowalem na drugim kompie. To samo, z tym ze udalo sie za 3 razem.

Po wylogowaniu i zalogowaniu za kazdym razem juz dziala....

Wydaje mi se to conajmniej dziwne....

Aha, nadmienie jeszcze ze wczoraj dodalem do pierwszego pliku zaraz po
session_start();

funkcje
session_register('zalogowany');


--------------------
Profesjonalne strony internetowe
Skrypty baz noclegowych
Pozycjonowanie

Strony24.com
Go to the top of the page
+Quote Post
TroYan
post 3.09.2008, 22:42:26
Post #7





Grupa: Zarejestrowani
Postów: 56
Pomógł: 1
Dołączył: 19.04.2004
Skąd: Bytom Odrz.

Ostrzeżenie: (0%)
-----


mam identyczny problem. i nie potrafię go rozwiązać. oprócz tego że sesja gubi się zaraz po przejściu na inną podstronę wywala mi taki błąd: Warning:

session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /index.php:1) in /index.php on line 1

pierwsze dwie linijki kodu pliku index.php

  1.  
  2. ?>


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post
Driver
post 4.09.2008, 07:35:36
Post #8





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 26.08.2008

Ostrzeżenie: (0%)
-----


Chyba sobie poradziłem (wygląda na to że działa ok). Wystarczy ręcznie do linków dodawać PHPSESSID (próbowałem automatycznie przez .htaccess ale też nie działało). SID też niestety nic nie wyświetla...
Postanowiłem więc "ręcznie" tworzyć w pliku z definicjami stałą SID do której przypisuję wartość "PHPSESSID=".session_id();
SIDa wrzucam do linków/zakładek. Na razie nie spotkałem się z problemem wylogowania....

session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /index.php:1) in /index.php on line 1

Co do tego, to problem polega na tym, że wysyłasz przed zainicjowaniem sesji do przeglądarki jakieś dane (nawet znacznik meta czy html). Session_start() musi być na samym początku kodu


--------------------
Profesjonalne strony internetowe
Skrypty baz noclegowych
Pozycjonowanie

Strony24.com
Go to the top of the page
+Quote Post
TroYan
post 4.09.2008, 14:31:15
Post #9





Grupa: Zarejestrowani
Postów: 56
Pomógł: 1
Dołączył: 19.04.2004
Skąd: Bytom Odrz.

Ostrzeżenie: (0%)
-----


Cytat(Driver @ 4.09.2008, 09:35:36 ) *
Chyba sobie poradziłem (wygląda na to że działa ok). Wystarczy ręcznie do linków dodawać PHPSESSID (próbowałem automatycznie przez .htaccess ale też nie działało). SID też niestety nic nie wyświetla...
Postanowiłem więc "ręcznie" tworzyć w pliku z definicjami stałą SID do której przypisuję wartość "PHPSESSID=".session_id();
SIDa wrzucam do linków/zakładek. Na razie nie spotkałem się z problemem wylogowania....

session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /index.php:1) in /index.php on line 1

Co do tego, to problem polega na tym, że wysyłasz przed zainicjowaniem sesji do przeglądarki jakieś dane (nawet znacznik meta czy html). Session_start() musi być na samym początku kodu


jest. sam samiusienkim początku ;o


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post
bim2
post 4.09.2008, 14:37:11
Post #10





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


musi wskakiwać jakaś spacja czy coś. Nie ma bata.


--------------------
Go to the top of the page
+Quote Post
Shili
post 4.09.2008, 21:53:32
Post #11





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

Ostrzeżenie: (0%)
-----


Niech zgadnę - kodowanie pliku to utf8?

Jeśli tak zapoznaj się z pojęciem BOM.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 05:15