Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP]Logowanie - proste!
Forum PHP.pl > Forum > Przedszkole
newmala
Mam nadzieję, że grupa przedszkolaków mi pomoże smile.gif.

Chciałabym na stronce dać możliwość do przejścia dalej tylko wybranej osobie.
Czy dobrze myślę, że można do tego wykorzystać formularz?
  1. <form action="plik.php" method="post">
  2. Logowanie administratora : <br>
  3. LOGIN : <INPUT name="login" type = text size=20 maxlenght="20"><br>
  4. HASŁO : <INPUT name="haslo" type = passward size=20 maxlenght="20">
  5. <INPUT name="loguj" type = submit value = "Zaloguj"> <BR>
  6. </form>


Teraz nie wiem jak zadziałać w plik.php, tak aby na zły login i hasło, zakładam, że to będzie jakiś umówiony ciąg znaków, nie można zobaczyć zawartości tej stronki.
Nie wiem jak się za to zabrać.
Czy jest jakaś funkcja, która przerwie wykonywanie tego plik.php, jeśli umówiony login będzie zły?
Czytałam trochę o sesjach i stworzeniu tabeli dla userów, ale to jeszcze chyba za trudne dla mnie.

Czy moje podejście jest z góry złe?


Sephirus
Podejście masz prawie dobre - akceptowalne dla pojedyńczo chronionej strony smile.gif

Wykorzystaj formularz, odbierz login i hasło wysłane POSTem ($_POST['...'])...

Sprawdź czy jest tak jak chciałeś i jeśli dane będą niezgodne to użyj funkcji DIE lub EXIT.

  1. if($login != $zalozonyLogin || $haslo != $zalozoneHaslo) die('BRAK DOSTĘPU!');
  2.  
  3. // dalsza część strony...
  4.  
newmala
Ok, dzięki wszystko gra.

Tylko teraz próbuję w tym samym pliku zrobić jeszcze formularz i po naciśnięciu ok, dostaję komunikat brak dostępu.

  1. <form action="plik.php" method="post">
  2. <div>
  3. Podaj datę <br>
  4. <?php
  5. pokaz_date ($date1['mday'], $date1['mon'], $date1['year']);
  6.  
  7. ?>
  8. Potwierdź : <INPUT name="data_pot" type = submit value = "Ok"> <BR>


2.W jaki sposób można zczytać datę, którą wybrał uzytkownik?
Sephirus
Rozumiem, że cały czas pracujesz na jednym pliku - w związku z tym za każdym razem musiałabyś się logować by z niego korzystać.

Trzeba dać znać skryptowi, że użytkownik jest już zalogowany by nie musiał logować się za każdym razem.

Jak tego dokonać? - To proste...

Wysyłasz formularz z logowaniem, skrypt sprawdza dane i jeśli uzytkownik podał prawidłowe to ustawia odpowiednią wartość w sesji:

  1.  
  2. if( [...tutaj sprawdzasz dane użytkownika czy są poprawne...])
  3. {
  4. $_SESSION['zalogowany'] = 'tak';
  5.  
  6. } else die('BRAK DOSTĘPU');


Teraz wystarczy że na początku pliku przed formularzem logowania oraz tą częścią sprawdzającą dasz IF'a, który będzie sprawdzał czy ta zmienna istnieje:

  1. if(!isset($_SESSION['zalogowany'])) // jeśli nie ma zmiennej - to znaczy user niezalogowany
  2. {
  3. if(isset($_POST['login'])) // jeśli user wysłał formularz...
  4. {
  5. // sprawdzamy dane podane przez usera i ustawiamy $_SESSION['zalogowany'] jeśli podał poprawne
  6. }
  7. else // jeśli nie loguje się w danej chwili wyświetlamy formularz
  8. {
  9. // kod formularza
  10. die; // kończymy srkypt bo user nie ma prawa zobaczyc co jest dalej
  11. }
  12. }
  13.  
  14. // tutaj kod dla zalogowanego uzytkownika


Sesja przechowa nam dane czy użytkownik jest zalogowany (działa dla pojedynczego użytkownika) wink.gif

HTH wink.gif
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.