====== 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';''|