Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> SESJA, WŁASNY MECHANIZM SESJI SESJA MYSQL, jak zdefiniować identyfikator SESJI
grzesio
post 6.05.2020, 21:47:48
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 24.12.2003
Skąd: Wisła

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


Po zalogowaniu klienta do serwisu otrzymuję :

- login
- hasło
- id w bazie

teraz muszę stworzyć własne ciasteczko

w jaki sposób stworzyć identyfikator sesji ?

oczywiście za każdym razem będzie porównywany identyfikator w ciastku z identyfikatorem w bazie...

Pozdr.
G.




--------------------
"nie ma głupich pytań są tylko głupie odpowiedzi" -babcia Wladzia
a jednak slonce swieci dla wszystkich
Go to the top of the page
+Quote Post
vokiel
post 6.05.2020, 22:02:25
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


https://www.php.net/manual/en/function.sess...ave-handler.php

Większy opis https://mansfeld.pl/programowanie/sesje-php...e-danych-mysql/


--------------------
Go to the top of the page
+Quote Post
grzesio
post 7.05.2020, 20:06:36
Post #3





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 24.12.2003
Skąd: Wisła

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


co zapisać w ciastku ?

id klienta z bazy
login klienta ?
email klienta
hasło klienta ?


--------------------
"nie ma głupich pytań są tylko głupie odpowiedzi" -babcia Wladzia
a jednak slonce swieci dla wszystkich
Go to the top of the page
+Quote Post
vokiel
post 7.05.2020, 21:21:31
Post #4





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


ID sesji.


--------------------
Go to the top of the page
+Quote Post
grzesio
post 17.05.2020, 08:50:21
Post #5





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 24.12.2003
Skąd: Wisła

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


jakie dane mogę pobrać od usera ?

  1. $sql_session="CREATE TABLE IF NOT EXISTS `".$prefix_table."_session` (
  2. `id` int(10) NOT NULL AUTO_INCREMENT,
  3. `id_session` varchar(250) NOT NULL DEFAULT '',
  4. `time` DATETIME NOT NULL DEFAULT '',
  5. `ip` varchar(48) NOT NULL DEFAULT '',
  6. `guest` int(1) NOT NULL DEFAULT '0',
  7. `status` int(1) NOT NULL DEFAULT '0',
  8. PRIMARY KEY (`id`)
  9. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;";
  10.  
  11.  
  12.  
  13. $conn = mysqli_connect($db_host, $db_uname, $db_pass,$db_name);
  14.  
  15. $ip = $_SERVER['REMOTE_ADDR'];
  16.  
  17. $web_explorer=$_SERVER['HTTP_USER_AGENT'];
  18.  
  19. $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
  20.  
  21. $date_time_visit=date("Y-m-d H:i:s");
  22.  
  23. $ktory_plik= $_SERVER['PHP_SELF'];
  24.  
  25. $identyfikator_ciasteczka="$ip:$lang:$web_explorer";
  26.  
  27. $base64_new_cookies = base64_encode($identyfikator_ciasteczka);
  28.  
  29. $sql = "INSERT INTO ".$prefix_table."_session (`id`,`id_session`, `time`, `ip`, `guest`, `status`,`ktory_plik`,`lang`) VALUES ('','$base64_new_cookies', '$date_time_visit', '$ip', '0', '1','$ktory_plik','$lang');";
  30.  
  31. if (!mysqli_query($conn,$sql))
  32.  
  33. { echo ("Error code".mysqli_errno($con));
  34.  
  35. if (mysqli_errno($conn)==1044) { echo " NIE MASZ PRAW DOSTEPU ACCES DENIED wpisz GRANT ";}
  36.  
  37.  
  38. } else {
  39.  
  40. }
  41.  
  42.  
  43. mysqli_close ($conn);


--------------------
"nie ma głupich pytań są tylko głupie odpowiedzi" -babcia Wladzia
a jednak slonce swieci dla wszystkich
Go to the top of the page
+Quote Post
gino
post 17.05.2020, 10:59:39
Post #6





Grupa: Zarejestrowani
Postów: 319
Pomógł: 52
Dołączył: 18.02.2008

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


Danych jak najmniej. Nawet po dobrym zabezpieczeniu sesji (Session Fixation i Session Hijacking) logika nakazuje by nie trzyma tam danych, bo przecież można je w każdej chwili pobrać mając jakiś identyfikator który na to pozwoli (i bynajmniej nie jest to id users). Żadnych imion, nazwisk, loginów itp. mimo, że to wiele ułatwia.

gino
Go to the top of the page
+Quote Post
nospor
post 18.05.2020, 08:50:51
Post #7





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




Troche nie na temat ale jak patrze na te INTY i brak wiedzy to nie moge przejsc obojetnie

`id` int(10) NOT NULL AUTO_INCREMENT,
`guest` int(1) NOT NULL DEFAULT '0',
`status` int(1) NOT NULL DEFAULT '0',

Nie zadne iNT(10) a poprostu INT
nie zadne INT(1) a TINYINT - liczba w nawiasie nie ogranicza zakresu/rozmiaru pola... ona sluzy tylko i wylacznie dla pol ZEROFILL ktorych na dobra sprawe pewnie w zyciu nie uzyjesz a juz na pewno nie uzywasz teraz
nie zadne default '0' tylko default 0 - odrozniaj teksty od liczb nawet jak baza poprawi automatycznie to za ciebie.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 19.04.2024 - 10:40