Witam serdecznie.
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
if(isset($_COOKIE['test']) AND
$_COOKIE['test'] == 1) {
// 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
$data = time(); // aktualny czas UNIX
// 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.