Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Obsługa sesji w MySQL
koreja
post 1.02.2009, 19:18:58
Post #1





Grupa: Zarejestrowani
Postów: 120
Pomógł: 22
Dołączył: 15.07.2008
Skąd: Raniżów/Rzeszów

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


Mam taki sobie skrypcik obsługi sesji:
  1. <?php
  2. require_once('config.inc.php');
  3.  
  4. $name = session_name($_SESSION['user'].'sess');
  5. $id = session_id();
  6.  
  7. //otwieranie sesji    
  8. function session_open()
  9.        {
  10.        return true;
  11.        }
  12.  
  13. //zamykanie sesji
  14. function session_close()
  15.        {
  16.        return true;
  17.        }
  18.  
  19. //odczytywanie sesji
  20. function session_read($id)
  21.        {
  22.        $query = "SELECT * FROM sesje WHERE id='".$id."'";
  23.        $results = mysql_query($query) or die(mysql_error());
  24.        if(mysql_num_rows($results) == 1)
  25.            {
  26.            $field = mysql_fetch_array($results);
  27.            return $field['data'];
  28.            }    
  29.        else
  30.            {
  31.            $query = "INSERT INTO sesje (id) values ('".$id."')";
  32.            $results = mysql_query($query) or die(mysql_error());    
  33.            return true;
  34.            }
  35.        }  
  36.  
  37. //zapis sesji
  38. function session_write($id, $data)
  39.        {
  40.        $query = "SELECT * FROM sesje WHERE id='".$id."'";
  41.        $results = mysql_query($query) or die(mysql_error());
  42.        while($line = mysql_fetch_array($results))        
  43.            {
  44.            $dane = $line['data'];
  45.            }
  46.        if($dane != $data)
  47.            {
  48.            $rdata = $dane . $data;
  49.            $query = "UPDATE sesje SET data='".$rdata."' WHERE id='".$id."'";
  50.            $results = mysql_query($query) or die(mysql_error());        
  51.            }
  52.        }
  53.  
  54. //usuwanie sesji
  55. function session_remove($id)
  56.        {
  57.        $query = "DELETE FROM sesje WHERE id='".$id."'";
  58.        $results = mysql_query($query) or die(mysql_error());        
  59.        return true;      
  60.        }
  61.  
  62. //automatyczne usuwanie starych sesji
  63. function session_gc($life)
  64.        {
  65.        $query = "DELETE FROM sesje WHERE time < '" . date("YmdHis", time() - $life) . "'";
  66.        $results = mysql_query($query) or die(mysql_error());          
  67.        return true;          
  68.        }
  69.  
  70. session_set_save_handler("session_open", "session_close", "session_read", "session_write", "session_remove", "session_gc");
  71.  
  72.        
  73. ?>


Jednak nie spełnia on swojej roli (nie zapisuje danych sesji do mysql. W czym może być problem?
Go to the top of the page
+Quote Post
prohol
post 2.02.2009, 12:03:07
Post #2





Grupa: Zarejestrowani
Postów: 56
Pomógł: 2
Dołączył: 20.07.2007

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


jak dla mnie to brakuje mysql_connect w tych funkcjach.
Go to the top of the page
+Quote Post
Smoker
post 2.02.2009, 18:12:30
Post #3





Grupa: Zarejestrowani
Postów: 101
Pomógł: 5
Dołączył: 15.10.2008
Skąd: Wrocław

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


no tak smile.gif na samym początku jeszcze przed wykonywaniem tego skryptu przydaloby sie polaczyc z baza danych:
  1. <?php
  2. // nawiązujemy połącznie
  3. $connection = mysql_connect('localhost', 'uzytkownik', 'haslo');
  4. // wybieramy bazę
  5. $db = mysql_select_db('nazwa_bazy', $connection);
  6. // i gdzies na końcu skryptu zamykamy połącznie z bazą
  7. mysql_close($connection);
  8. ?>



Ten post edytował Smoker 2.02.2009, 18:18:30


--------------------
http://streetonline.pl/?gback=1 - Kliknij i daj się podwieźć
Go to the top of the page
+Quote Post
koreja
post 7.02.2009, 15:34:52
Post #4





Grupa: Zarejestrowani
Postów: 120
Pomógł: 22
Dołączył: 15.07.2008
Skąd: Raniżów/Rzeszów

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


Sorki, że dopiero tak późno odpisuję, ale dopiero wróciłem do domu winksmiley.jpg

Połączenie z bazą danych oczywiście jest w pliku config.inc.php, require'owanym na początku skryptu.
Go to the top of the page
+Quote Post
bartm
post 8.02.2009, 16:52:58
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 8.02.2009
Skąd: Olkusz/Kraków

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


A nie lepiej wykorzystać gotowe adodb? smile.gif
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: 18.06.2025 - 14:56