====== Laboratorium, PHP # 2 ======
===== Ćwiczenie 1: Pliki =====
- Umiesc wybranym, dostępnym dla serwera WWW, katalogu kilka (4-5) obrazków JPG w niewielkiej rozdzielczości.
- Napisz skrypt ''galeria.php'', który będzie generował dokument (X)HTML z w/w obrazkami, tak aby tworzyły galerię. Obrazki mogą być umieszczane w dokumencie np. jeden za drugim, albo jeden pod drugim. Przydatne funkcje: ''glob()'' albo ''scandir()''.
- Dopisz do skrytpu ''galeria.php'' możliwość usuwanie obrazów z galerii:
- przy każdym obrazku dodaj hiperpołączenie do skryptu z parametrem identyfikującym obrazek do usunięcia np. przy obrazku będącyw w pliku ''mojobraz.jpg'' dodaj hiperpołączenie: ''galeria.php?usun=mojobraz.jpg''
- zmodyfikuj skrypt tak aby po otrzymaniu metodą GET atrybutu ''usun'' usuwał plik o nazwie będącej jego wartością.
- Dopisz do skrytpu ''galeria.php'' możliwość dodawania obrazów z galerii (dodaj do skrytpu formularz HTML, za pomocą którego można przesłać plik).
**Uwaga:** Plik można usunąć korzystając z funkcji ''unlink()''
==== Informacje dodatkowe: Przesyłanie plików ====
Poniżej znajduje się przykładowy formularz umożliwiający przesłanie pliku:
Przykładowa obsługa plików
oraz aplikacja PHP (uwaga: należy zachować plik pod nazwą ''file.php'', gdzyż taka nazwa jest skonfigurowana w formularzu powyżej):
===== Ćwiczenie 2: (nadobowiązkowe) Współpraca z Bazami Danych =====
- Dopisz mechanizm uwierzytelniania, tak aby galeria była dostępna tylko dla tych, którzy przy próbie dostępu do ''galeria.php'' podadzą właściwą nazwę użytkownika i hasło.
- Nazwy i hasła przechowuj w bazie danych. Konieczne będzie utworzenie przynajmniej jednej tabeli np. ''uzytkownik'' z kolumnami odpowiednio: ''nazwa'', ''haslo''.
Celem zwiększenia bezpieczeństwa hasło nie powinno być przechowywane jawnie, ale jako wartość funkcji skrótu np. korzystając z [[http://www.php.net/manual/en/function.md5.php|md5()]] albo [[http://pl1.php.net/manual/en/function.sha1.php|sha()]].
==== Informacje dodatkowe: Baza danych MySQL ====
Bazę danych MySQL można założyć korzystając z https://panel.agh.edu.pl
MySQL można użyć w poniższy sposób. Uwaga: kod przeznaczony dla PHP7 (w PHP5 obowiązywały inne nazwy funkcji, zamiast ''mysqli'' powinno być ''mysql'', uległa również zmianie kolejność argumentów - zobacz w dokumentacji PHP: http://php.net/manual/en/ref.mysql.php oraz http://php.net/manual/en/ref.mysqli.php)
$con_id=mysqli_connect('adres_serwera','nazwa_uzytkownika','haslo_do_bazy');
mysqli_select_db($con_id,'nazwa_bazy');
$query ='SELECT * FROM test;'; // zapytanie
$result = mysqli_query($con_id,$query); // przesłanie zapytania
while ($myrow = mysqli_fetch_row($result)){ // iteracja po rezultacie
echo $myrow[1];
}
mysqli_free_result($result); // zwolnienie zasobów związanych z zapytaniem
mysqli_close($con_id); // zamknięcie połączenia
Analogiczny kod dla PHP5:
^ TOP TIP ^
| Zauważ, że wyszukiwanie użytkowników po nazwie może być skutecznie zrealizowane przez bazę danych: ''SELECT haslo FROM uzytkownik WHERE nazwa='login';''|