Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Sesja i ciasteczka, setcookie nie działa
k0b3
post
Post #1





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 1.08.2006
Skąd: Kielce

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


Witam

mam taką klase, którą wziąłem manuala php.net
  1. <?php
  2. class SessionDB {
  3. private $data=null;
  4. private $session_id=null;
  5. private $minutes_to_expire=3600; // TIME TO MAINTAIN DATA ON DB
  6.  
  7. public function __construct(){
  8. global $SESSION;
  9.  
  10. if (isset($_COOKIE['session_id'])){
  11. $this->session_id = $_COOKIE['session_id'];
  12. } else {
  13.  
  14. $this->session_id = md5(microtime().rand(1,9999999999999999999999999)); // GENERATE A RANDOM ID
  15.  
  16. setcookie('session_id',$this->session_id);
  17. $sql = "INSERT INTO `session_db` (`session_id`, `updated_on`) VALUES ('{$this->session_id}', NOW())";
  18. mysql_query($sql);
  19. $sql = "UPDATE `site` SET result=result+1 WHERE query='visits'";
  20. mysql_query($sql);
  21.  
  22. }
  23.  
  24. $sql = "SELECT `value` FROM `session_db` WHERE `session_id`='{$this->session_id}'";
  25. $query = mysql_query($sql);
  26.  
  27. $this->data = unserialize(mysql_result($query, 0, 'value'));
  28. $SESSION = $this->data;
  29. }
  30.  
  31. private function expire(){
  32. $date_to_delete = date("Y-m-d H:i:s", time()-60*$this->minutes_to_expire);
  33. $sql = "DELETE FROM `session_db` WHERE `updated_on` <= '$date_to_delete'";
  34. mysql_query($sql);
  35. }
  36.  
  37. public function __destruct(){
  38. global $SESSION;
  39.  
  40. $this->data = serialize($SESSION);
  41.  
  42. $sql = "UPDATE `session_db` SET `value`='{$this->data}', `updated_on`=NOW() WHERE `session_id`='{$this->session_id}'";
  43. mysql_query($sql);
  44.  
  45. $this->expire();
  46. }
  47. }
  48. ?>


na localhoscie wszystko działa. Na serwerze jest problem, bo nie tworzy mi ciasteczek, przez co przy kazdym odświerzeniu strony dodaje mi do tablicy nową sesje.

Czy to moze byc spowodowane nie aktualna wersja php? Na localhoscie mam 5.3.0, a na serwerze 5.2.13?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
gothye
post
Post #2





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

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


yyy nie patrzę już na wersje php ale zastanawia mnie :
ale klasa jest nijak ,zmieniłbym global $SESSION na private $ValueSession i do niej przekazywał sesje z SQL , może COOKIE PATCH masz inny ?

sposóbuj utworzyć pusty plik index.php ,zapisz jakieś ciasteczko i spróbuj je odczytać ....


--------------------
Nie udzielam pomocy poprzez PW
Go to the top of the page
+Quote Post
k0b3
post
Post #3





Grupa: Zarejestrowani
Postów: 138
Pomógł: 0
Dołączył: 1.08.2006
Skąd: Kielce

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


no bardzo dziwna rzecz wyszła. W klasie setcookie tak jakby nie działa, a w normalnym pliku tworzy ciasteczko.
WTF? smile.gif

problem nadal istnieje... help

Ten post edytował k0b3 28.03.2010, 18:19:16
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 Aktualny czas: 21.08.2025 - 17:17