Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z cookie
Forum PHP.pl > Forum > Przedszkole
ghash
Mam jeden problem...
Stworzyłem mechanizm logowania się do systemu WWW na podstawie ciasteczek...
I tak:
  1. <?php
  2. #tworzenie ciasteczka sesji; przechowywanie danych o nazwie usera, dacie logowan
    ia i poziomie dostepu do strony
  3. $cook = setcookie('ibase_log',"$session_nazwa#$session_data#$session_sec_level");
  4.  
  5. # po poprawnym logowaniu -> przenoszenie do strony glownej
  6. header ('Location: adreshttp/main.php');
  7. ?>



Po zalogowaniu oczywiście są tworzone funkcje sprawdzenia hasła i innych rzeczy, a potem jest właśnie tworzenie ciastka... Po ciastku jest automatyczne przenoszenie na stronę główną...
W domu ten system działa... Natomiast jak kod przeniosłem do pracy (kompy połączone są sieciowo) to po przenoszeniu na stronę main.php pokazuje mi komunikat że użytkownik nie zalogował się...

Jak kod zmienię na takie coś:
  1. $cook = setcookie('ibase_log',"$session_nazwa#$session_data#$session_sec_level");
  2.  
  3.  if (!$cook) {echo "brak cookie";} else {echo "jest cookie";}
  4. ?> <a href="adreshttp/main.php">strona</a> <?php


Czyli tworzy się ciastko, następnie muszę kliknąć aby przenieść się do strony to wszystko jest w porządku...
Czy istnieje może jakaś inna metoda na automatyczne przenoszenie na inną stronę??
A może coś z kodem jest nie tak?
kszychu
Przenoszę na przedszkole, ponieważ nie użyłeś poprawnie mechanizmu ciastek. Poczytaj sobie o ciastkach i spróbuj przerobić to na $_COOKIE
ghash
Poniżej podaję to od czego zaczyna się każda strona:

  1. <?php
  2. # sprawdzenie czy uzytkownik jest zalogowany do systemu
  3. if (isset($_COOKIE['ibase_log']) ) {
  4. # pobranie danych o uzytkowniku z zalogowanego cookie
  5. $cookie_info = $_COOKIE['ibase_log'];
  6. $session_info = explode ('#',$cookie_info);
  7.  
  8.  
  9. # cookie polu wartość ma zapisane dane: '$session_nazwa#$session_data#$session_sec_level' 
  10. # odpowiednio user, data zalogowania, poziom dostepu do strony
  11. $ibase_log_user = $session_info['0'];
  12. $ibase_log_data = $session_info['1'];
  13. $ibase_log_seclevel = $session_info['2'];
  14. }
  15. else {  # jezeli user nie zalogowany
  16. echo "Użytkownik nie jest zalogowany do aplikacji"; exit; }
  17. ?>


Także mam mechanizm sprawdzenia czy jest utworzone w ogóle cookie...
Więc co musiałbym przerobić na $_COOKIE?
Tak jak pisałem - w domu na jednym komputerze to działa...
I działa na Firefoxie i na IE - w pracy nie działa na obu przeglądarkach...



Odpowiedź na powyższe:)

Zamias header() użyłem takiego czegoś:

  1. <?php
  2. if (!$cook) {echo "brak cookie";} else {
  3. echo '<meta http-equiv="Refresh" content="0; URL=adreshttp/main.php">';
  4. exit; }
  5. ?>
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.