Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Sprawdzanie czy istnieje ciasteczko
Forum PHP.pl > Forum > Przedszkole
Kaluza
Witam,

Mam skrypt, który sprawdza czy istnieje ciasteczko - jeżeli istnieje użytkownik zostaje na stronie, jeżeli nie to przekierowuję go na stronę logowania. Kilku użytkowników skarży się, że czasami skrypt ich wylogowuje - nie wiem dlaczego. "Życie" ciasteczka ustawione jest na 12 godzin. Użytkowników wylogowuje już po kilku minutach. Ciasteczko na 100% jest tworzone i ma jakąś wartość. Ktoś ma pomysł jak zmienić ten kod, żeby nie wylogowywało użytkowników tak szybko?

  1. <? if (isset($_COOKIE['pin'])) {
  2. }
  3. else {
  4. // Widok dla użytkownika niezalogowanego
  5. header("Location: ../logowanie.php");
  6. }
  7. ?>
nospor
A nie skaczesz przypadkiem po subdomenach w swoim serwisie?
Kaluza
Serwis jest postawiony na subdomenie, ale wszystkie podstrony są w tej samej subdomenie.
Crozin
1. Pamiętaj, że samo ustawienie nagłówka Location nie wymusza przekierowania, ani nie przerywa wykonywania skryptu. Powinieneś dodać zaraz po nim jakąś prostą stronę HTML z inf. o przekierowaniu (oraz linkiem) oraz przerwać wykonywanie (exit).
2. Pokaż dokładne nagłówki (możesz wyciągnąć je w dowolnej przeglądarce w jej narzędziach deweloperskich (F12)) jakie są wysyłane na stronie ustawiającej ciasteczko oraz jej URL.
Kaluza
Cytat(Crozin @ 27.01.2014, 11:10:40 ) *
1. Pamiętaj, że samo ustawienie nagłówka Location nie wymusza przekierowania, ani nie przerywa wykonywania skryptu. Powinieneś dodać zaraz po nim jakąś prostą stronę HTML z inf. o przekierowaniu (oraz linkiem) oraz przerwać wykonywanie (exit).


No ok ale tu nie ma problemu z przekierowaniem.
To że nie przerywa wykonania skryptu to bardzo dobrze, bo dane które wprowadzał, zostają zapisane w bazie (mimo tego że wywala użytkownika).

nospor
Cytat
To że nie przerywa wykonania skryptu to bardzo dobrze, bo dane które wprowadzał, zostają zapisane w bazie (mimo tego że wywala użytkownika).
A... skoro zadowala cie fakt, ze pierwszy lepszy "haker" bez zalogowania moze ci wpisywac do bazy co chce to wszystko wporzadku smile.gif
Kaluza
Nie wpisze bo strona nie jest dostępna w necie, tylko wewnątrz sieci - to mniej ważne - popracuje nad tym.
Bardziej martwią mnie te ciasteczka - niby są, a strona wylogowuje.
Crozin
Cytat
2. Pokaż dokładne nagłówki (możesz wyciągnąć je w dowolnej przeglądarce w jej narzędziach deweloperskich (F12)) jakie są wysyłane na stronie ustawiającej ciasteczko oraz jej URL.
Kaluza
login.php

  1. <head>
  2. <title>My site</title>
  3. <link type="text/css" rel="stylesheet" href="css/style.css" />
  4. <link type="text/css" rel="stylesheet" href="css/tlo1.css" />
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6. </head>



index.php po zalogowaniu

  1. <head>
  2. <title>My site</title>
  3. <link type="text/css" rel="stylesheet" href="css/tlo1.css" />
  4. <link type="text/css" rel="stylesheet" href="css/style.css" />
  5. <script src="js/Chart.js"></script>
  6. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  7. </head>


Crozin
Nagłówki HTTP, nie kod HTML, który ma z nimi niewiele wspólnego: http://www.youtube.com/watch?v=7pCw4Bwna7w
Kaluza
  1. Request URL:http://localhost/index.php
  2. Request Method:GET
  3. Status Code:200 OK
  4. Request Headersview source
  5. Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
  6. Accept-Encoding:gzip,deflate,sdch
  7. Accept-Language:pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4
  8. Cache-Control:max-age=0
  9. Connection:keep-alive
  10. Cookie:__utma=198012077.2037231337.1360145339.1389865264.1389964658.109; __utmz=198012077.1389865264.108.13.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided); PHPSESSID=0633b3e84a060979483b3e9244e6c8c5; login=zalogowany; login=zalogowany; pin=3698
  11. Host:system.localhost
  12. Referer:http://system.localhost/index.php
  13. User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36
  14. Response Headersview source
  15. Connection:Keep-Alive
  16. Content-Encoding:gzip
  17. Content-Length:1875
  18. Content-Type:text/html
  19. Date:Mon, 27 Jan 2014 12:30:33 GMT
  20. Keep-Alive:timeout=15, max=91
  21. Server:Apache
  22. Vary:Accept-Encoding
  23. Via:1.1 system.localhost
nikestylex7
Nie lepiej pracować na sesjach

  1. $_SESSION['nazwa 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.