Próbuję stworzyć własny system (a właściwie mini-system) przechowywania sesji w bazie danych MySQL.
O to moje 3 magiczne pliki:
Plik funkcje.php
/*---------------- CHECK_IF_COOKIES -------------------- funkcja sprawdza czy uzytkownik ma wlaczone ciesteczka -------------------------------------------------------*/ function check_if_cookies() { // zagniezdzenie testowego ciasteczka // sprawdzenie czy ciasteczko utworzylo sie { // jezeli tak zwroc true return true; } else { // jezeli nie zwroc false return false; } } /*------------------- zapisz_sesje --------------------- funkcja zapisuje dane o uzytkowniku do bazy danych -------------------------------------------------------*/ function zapisz_sesje($id_sesji,$hash,$userid,$login,$ip,$agent,$data) { // zapisuje boolean w zmiennej $sprawdz = check_if_cookies(); // jezeli dzialaja cookies if($sprawdz == true) { // wyzeruj hash, gdyz ciasteczko z id sesji zostalo utworzone $hash = 0; $q = "INSERT INTO sesje(id_sesji,hash,userid,login,ip,agent,data) VALUES ('$id_sesji','$hash','$userid','$login','$ip','$agent','$data')"; $r = mysqli_query($dbc,$q); } // jezeli nie else { // w razie czego wyzeruj id_sesji, bedzie nie potrzebne, uzywamy zmiennej $hash do identyfikacji usera $id_sesji = 0; $q = "INSERT INTO sesje(id_sesji,hash,userid,login,ip,agent,data) VALUES ('$id_sesji','$hash','$userid','$login','$ip','$agent','$data')"; $r = mysqli_query($dbc,$q); } }
Plik logowanie.php
// gdzies w pliku .... $hash = random_hash(); // funkcja generujaca hash dla uzytkownikow bez obslugi cookies $agent = check_agent(); // sprawdzenie przegladarki // zmienna $db['id'] wynika z wyczytania danych uzytkownika na podstawie loginu i hasla poodanych w formularzu zapisz_sesje($PHPSESSID,$hash,$db['id'],$login,$REMOTE_ADDR,$agent,$data); // ....
Dodam, że calosc jest include w index.php, czyli w skrocie wyglada to podobnie jak to:
index.php
require_once(PLIK_KONFIGURACYJNY); include('funkcje.php'); include('logowanie.php');
Problem w tym, ze zapytanie w pliku logowanie.php, a wlasciwie podanie parametrow do funkcji zapisz_sesje() ktora wykonuje zapytanie, nie dziala. Kiedy przekleje na surowo zapytanie do logowanie.php sesja sie zapisuje, ale w 'oryginalnej' formie jak pokazalem wyzej wszystko lezy.
Jest ktos wstanie wskazac blad w moich wypocinach?
Dziękuje uprzejmie.
Tomek.