Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Logowanie na Sesjach
Forum PHP.pl > Forum > Przedszkole
Reptile ReX
Witam mam pewien problem:

Moim celem jest zrobienie systemu logowania dla użytkowników.
Skrypt bazuje na sesjach, i teraz.

Załóżmy że moi użytkownicy mają osobne profile na adresach:

www.adres.pl/user1/ - Użytkownik 1
oraz
www.adres.pl/user2/ - Użytkownik 2

I teraz plik index.php dla użytkownika 1 wygląda następująco:

  1. <?php
  2. if (isset($_POST['nick']) && $_POST['nick'] == 'user1') {
  3. if (isset($_POST['haslo']) && $_POST['haslo'] == 'user1') {
  4. $_SESSION['login'] = 1;
  5. }
  6. }
  7. if (!isset($_SESSION['login'])) {
  8. echo ("<center><form action='' method='post'>");
  9. echo ("Nazwa: <input type=\"text\" class=\"input\" name=\"nick\" size=\"25\" /><br />");
  10. echo ("Hasło:   <input type=\"password\" name=\"haslo\" class=\"input\" size=\"25\" /><br /><br />");
  11. echo ("<input type=\"submit\" value=\"Zaloguj Mnie !\" name=\"logme\" class=\"submit\" />");
  12. echo ("</form></center>");
  13. } else {
  14.  
  15. echo ("Tajne danie");
  16.  
  17. }
  18.  
  19. ?>


Plik index.php dla Użytkownika 2 wygląda podobnie, tylko że są zmienione dane logowania.

I teraz mój problem.

Jeżeli ktoś się zaloguje na user1 i wejdzie w adres usera2 ma dostęp do jego strony i analogicznie w drugą stronę.
Jak temu zapobiec? rozumiem, że jest to spowodowane PHPSESID który jest przypisywane tylko raz.
sazian
dala drugiego usera daj $_SESSION['login'] = 2;
teraz wystarczy tylko sprawdzić co w sesji siedzi i blokować odpowiednią treść
Reptile ReX
o, nie pomyślałem, dzięki...

Czemu człowiek zawsze szuka najtrudniejszych rozwiązań.
Ehh

Czy takie zabezpieczenie sesji wystarczy?, co mógłbym jeszcze zrobić:

  1. <?php
  2. if (isset($_POST['nick']) && $_POST['nick'] == 'bbb') {
  3. if (isset($_POST['X09261x']) && $_POST['X09261x'] == 'bbb') {
  4. $_SESSION['logged'] = 'yes';
  5. $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
  6.  
  7. }
  8. }
  9. if (!isset($_SESSION['logged']) && $_SESSION['ip'] != $_SERVER['REMOTE_ADDR']) {
  10. echo ("<center><form action='' method='post'>");
  11. echo ("Nazwa: <input type=\"text\" class=\"input\" name=\"nick\" size=\"25\" /><br />");
  12. echo ("Hasło: &nbsp;&nbsp;<input type=\"password\" name=\"X09261x\" class=\"input\" size=\"25\" /><br /><br />");
  13. echo ("<input type=\"submit\" value=\"Zaloguj Mnie !\" name=\"logme\" class=\"submit\" />");
  14. echo ("</form></center>");
  15. die();
  16. } else {
  17. echo ("Tajne danie");
  18. }
  19.  
  20.  
  21.  
  22. ?>
Kenpachi18
hmm. Jestem nowy i uczę się php w sposób następujący:
Szukam właśnie takich różnych funkcji, gotowych kodów, wklejam je do siebie i przerabiam i myślę co i jak i dlaczego bądź robię coś podobnego od nowa I właśnie z tym kodem mam pytanie ponieważ dołożyłem sobie opcję wyloguj po uprzednim zalogowaniu. Znaczy problem jest taki:
Undefined index: ip in D:\wamp\www
a chodzi o linię:
if (!isset($_SESSION['logged']) && $_SESSION['ip'] != $_SERVER['REMOTE_ADDR']) {

wyświetla ten błąd ale wszystko działa. I moje pytanie:
- O co chodzi w tym błędzie, czemu się wyświetla.
Możecie uznać mnie za głąba ale ja się naprawdę w ten sposób uczę.

~Edit: Ale kiedy wrzucam na serwer na freehost tego bledu nie ma
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.