skanuj0225 (3)

skanuj0225 (3)



238 PHP i MySQL dla każdego

3. W przypadku gdy zmienna załogowany nie jest ustawiona, ale ustawiona jest co najmniej jedna ze zmiennych: user lub hasl o, oznacza to, że niezalogowany użytkownik wypełnił formularz logowania; należy zatem dokonać weryfikacji danych. Weryfikacja jest wykonywana za pomocą funkcji checkPass, której działanie jest analogiczne do funkcji o tej samej nazwie ze skryptu 7.25 z rozdziału 7.

Funkcja checkPass zwraca jedną z poniższych wartości:

♦    0 — dane uzyskane ze skryptu logowania są poprawne. W takiej sytuacji zmiennej załogowany jest przypisywana nazwa użytkownika oraz następuje przekierowanie do części głównej serwisu znajdującej się w pliku main.php. Przekierowanie dokonuje się poprzez wysłanie do przeglądarki nagłówka HTTP Location.

♦    1 — Wystąpił błąd serwera (np. nie można było odczytać pliku z hasłami).

W takiej sytuacji zmiennej sesji o nazwie komunikat jest przypisywany ciąg znaków informujący o takiej sytuacji oraz ponownie jest wczytywany formularz logowania.

♦    2 — Wprowadzona nazwa lub hasło użytkownika jest niepoprawne. W takim przypadku działanie jest podobne jak w poprzedniej sytuacji, tzn. zmiennej komuni kat jest przypisywany odpowiedni komunikat i jest wczytywany formularz logowania.

Na listingu 8.9 jest widoczna treść pliku form.php zawierającego formularz logowania, jego wygląd obrazuje natomiast rysunek 8.7. Składa się on z typowej konstrukcji języka HTML, ze znacznikami form i input, a dane z formularza są wysyłane do skryptu login.php. Oprócz formularza w pliku został również umieszczony krótki fragment kodu PHP. Jego zadaniem jest sprawdzenie, czy została ustawiona zmienna sesji o nazwie komunikat. Jeśli tak, do przeglądarki jest wysyłana treść komunikatu; jeśli zaś nie, do przeglądarki jest wysyłany standardowy napis z prośbą o podanie nazwy i hasła użytkownika. Teoretycznie można by pominąć procedurę sprawdzania, czy zmienna komuni kat została ustawiana, gdyż skrypt form.php zawsze jest wywoływany po jej ustawieniu. W praktyce nie możemy jednak wykluczyć sytuacji, kiedy użytkownik, nawet całkiem przypadkowo, wywoła skrypt form.php bezpośrednio z przeglądarki. Zatem i w takiej sytuacji zmienna komunikat powinna zawierać odpowiednią treść.

Listing 8.9. Treść pliku zawierającego formularz logowania

<html>

<body>

<div align='center’>

<h2>

<?php

1f(i sSet($_SESSI0N['komuni kat'])) echo $_SESSION['komunikat']: else

echo "Wprowadź nazwę i hasło użytkownika:":

</h2>

<form name ■ "formularzl"

action = "http://localhost/login.php" method = "POST"


Wyszukiwarka

Podobne podstrony:
skanuj0268 (3) 282 PHP i MySQL dla każdego W przypadku gdy klucz podstawowy miałby się składać z wię
skanuj0268 (3) 282 PHP i MySQL dla każdego W przypadku gdy klucz podstawowy miałby się składać z wię
skanuj0513 534 PHP i MySQL dla każdego W przypadku gdy skrypt otrzymał za pomocą metody GET parametr
skanuj0274 (3) 288 PHP i MySQL dla każdego W przypadku próby zapisania w wierszu kolumny większej li
skanuj0274 (3) 288 PHP i MySQL dla każdego W przypadku próby zapisania w wierszu kolumny większej li
skanuj0192 (5) 204 PHP i MySQL dla każdego widoczny na rysunku 7.7. Formularz tworzony jest za pomoc
skanuj0498 516 PHP i MySQL dla każdego Liczba wierszy generowanych w pętli while jest kontrolowana p
skanuj0284 (3) 298 PHP i MySQL dla każdego Wynik działania takiego zapytania został przedstawiony na
skanuj0351 (2) 366 PHP i MySQL dla każdegoZapytania typu SELECT W przypadku zapytań typu SELECT funk
78630 skanuj0294 (2) 308 PHP i MySQL dla każdego Takie zachowanie jest zrozumiałe, gdyż chroni nas p

więcej podobnych podstron