Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> System logowania - kilka pytań
akurczyk
post
Post #1





Grupa: Zarejestrowani
Postów: 201
Pomógł: 5
Dołączył: 15.07.2008
Skąd: Kłodzko

Ostrzeżenie: (10%)
X----


Napisałem prosty system logowania oparty na 3 plikach index.php (dla gościa: formularz logowania, dla użytkownika: możliwość wylogowania), zalogowanie.php i wylogowanie.php.
I w związku z tym mam kilka pytań:
1. Jak zrobić takie logowanie jak na tym forum. Co na nie wejdę to jestem zalogowany.
2. Jak zrobić time outy?
3. Jak zrobić listę zalogowanych użytkowników (uwzględniając time outy itp.)?

Pliki:
index.php:
  1. <?php
  2.  if(isset($_SESSION['zalogowany']) && $_SESSION['zalogowany'] == "tak") {
  3.  echo "<form..."; //Formularz
  4.  } else {
  5.  echo "<a href..."; //Link do wylogowanie.php
  6.  }
  7.  ?>


zalogowanie.php:
  1. <?php
  2.  //W tym miejscu połączenie z db
  3.  if(isset($_POST['zaloguj_sie']) && isset($_POST['login']) && !empty($_POST['login']) && isset($_POST['haslo']) && !empty($_POST['haslo'])) {
  4.  $zapytanie = mysql_query("SELECT * FROM uzytkownicy WHERE login='".addslashes($_POST['login'])."' AND haslo='".addslashes($_POST['haslo'])."'");
  5.  if(mysql_num_rows($zapytanie) == 1) {
  6.  while($wiersz = mysql_fetch_array($zapytanie)) {
  7.  $_SESSION['zalogowany'] == "tak";
  8.  $_SESSION['id'] == $wynik['id'];
  9.  }
  10.  }
  11. header("Location: index.php");
  12.  ?>


wylogowanie.php:
  1. <?php
  2.  if(isset($_GET['zalogowany']) && $_SESSION['zalogowany'] == "tak") {
  3.  }
  4.  header("Location: index.php");
  5.  ?>


Proszę o odpowiedzi na wcześniej zadane pytania i sugestie dotyczące mojego systemu logowania.
PS: Może połączyć kody plików zalogowanie.php i wylogowanie.php? Tylko niewiem jak nazwać plik z połączonym kodem?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Berg
post
Post #2





Grupa: Zarejestrowani
Postów: 180
Pomógł: 37
Dołączył: 1.05.2008
Skąd: Białystok

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


Musisz ustawić czas życia sesji :

  1. <?php
  2.  
  3. if(!empty($_COOKIE[session_name()])) {
  4.  $time = 3600; // Ustawienie sesji na 1h
  5.  
  6.  setcookie(session_name(), session_id(), date('U') + $time, "/"); // ciasteczko sesji będzie ważne przez godzinę od chwili uruchomienia skryptu
  7. }
  8. else { // Ciasteczko nie istnieje więc użytkownik był nieakatywny przez jedną godzinę
  9.  echo 'Zaloguj się pod <a href="logowanie.php">tym</a> adresem.';
  10. }
  11. ?>


Wrzucasz coś takiego do każdego pliku, jeśli istnieje ciasteczko z kluczem sesji to ustawiasz czas życia ciasteczka za pomocą session_set_cookie_params, odpalasz sesje i modyfikujesz ciasteczko tak aby data jego istnienia wynosiła 1 godzinę od chwili uruchomienia skryptu (date('U') + $time). Jeśli użytkownik nie uruchomi żadnego skryptu przez jedną godzinę to ciasteczko przestanie istnieć, nie będzie więc można wystartować sesji i użytkownik będzie musiał się zalogować jeszcze raz. Co do listy aktywnych użytkowników to możesz przy każdym wywołaniu skryptu wpisywać do bazy danych datę ostatniej aktywności użytkownika, potem pobierasz z bazy danych nazwy tylko tych użytkowników których data ostatniej aktywności jest nie większa niż 1h.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 09:42