Ćwiczenie 7 - PHP (3)

Podobne dokumenty
Komunikacja między klientem, a skryptem PHP, oraz operacje na plikach

Lekcja 10. Uprawnienia. Dołączanie plików przy pomocy funkcji include() Sprawdzanie, czy plik istnieje przy pmocy funkcji file_exists()

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

KaŜda instrukcja musi być zakończona średnikiem ;!!!

Wprowadzenie do Internetu Zajęcia 5

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

Aplikacje internetowe - laboratorium

Laboratorium 1 Wprowadzenie do PHP

Szablon główny (plik guestbook.php) będzie miał postać:

Aplikacje WWW - laboratorium

Formularze HTML. dr Radosław Matusik. radmat

Systemy internetowe Wykład 3 PHP

Formularze w PHP dla początkujących

Obiektowe bazy danych

Dane - pobieranie, przekazywanie i przechowywanie. dr Beata Kuźmińska-Sołśnia

4. Pliki Informacje ogólne o dostępie do plików w PHP Sprawdzanie istnienia pliku file_exists()

Podstawy JavaScript ćwiczenia

Funkcje i instrukcje języka JavaScript

Wysyłanie pliku na serwer. Plik na serwerze.

SSK - Techniki Internetowe

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Programowanie internetowe

Instrukcje dołączania plików

Ćwiczenie: JavaScript Cookies (3x45 minut)

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

Wykład 03 JavaScript. Michał Drabik

Umieszczanie kodu. kod skryptu

Baza danych do przechowywania użytkowników

Specyfikacja instalacji usługi SMS Premium w Przelewy24.pl

Aplikacje internetowe

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

1 Przygotował: mgr inż. Maciej Lasota

Bazy Danych i Usługi Sieciowe

LABORATORIUM 2 WSTĘP DO SIECI TELEINFORMATYCZNYCH TABELE I FORMULARZE

12. OPERACJE NA PLIKACH

Programowanie w językach wysokiego poziomu

Zajęcia 13 wykorzystanie MySQL w PHP cz. 2

Zmienne powłoki. Wywołanie wartości następuje poprzez umieszczenie przed nazwą zmiennej znaku dolara ($ZMIENNA), np. ZMIENNA=wartosc.

- wszystkie elementy - wszystkie elementy

INFORMATYKA Studia Niestacjonarne Elektrotechnika

Ćwiczenie 7 - Formularze

Program wykonujący operację na plikach powinien zachować schemat działania zapewniający poprawną pracę:

Pliki. Operacje na plikach w Pascalu

Dokumentacja smsapi wersja 1.4

Zajęcia 4 - Wprowadzenie do Javascript

JAVAScript tablice, przekazanie danych do funkcji, obiekty Date i window

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Internetowe bazy danych

Rozpoczęcie pracy z programem.

KaŜda instrukcja musi być zakończona średnikiem ;!!!

Internetowe bazy danych

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Ćwiczenie 1. Wprowadzenie do programu Octave

Przedmiot: Programowanie usług internetowych - Delphi Przygotował: K. Strzałkowski Rok V. Semestr IX. Wydział ZiMK

Aplikacje WWW - laboratorium

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII

FORMULARZE Formularz ma formę ankiety, którą można wypełnić na stronie. Taki formularz może być np. przesłany pocztą elektroniczną .

Autor: Joanna Karwowska

Strumienie, pliki. Sortowanie. Wyjątki.

Zajęcia 10 obsługa formularzy w PHP

Zaawansowane aplikacje internetowe

PHP5. Praktyczny kurs

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

SYSTEMY OPERACYJNE ĆWICZENIE POLECENIA SYSTEMU MSDOS

Na początku utworzymy formularz w czystym języku HTML i przetestujemy go za pomocą przeglądarki WWW.

KURSY PROGRAMOWANIA DLA DZIECI

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Użytkowniku programu FINKA, przekazujemy E-book, który omawia najważniejsze kwestie dotyczące generowania i wysyłania JPK.

2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego

Pliki. Wywołanie fopen ma schematyczną postać: fopen('nazwa_pliku', 'tryb_otwarcia')

Dokonaj analizy poniŝszego kodu i na jego podstawie wyświetl w oknie przeglądarki swoje Imię oraz Nazwisko przy uŝyciu instrukcji echo i print

JAVAScript w dokumentach HTML (2)

Zdarzenia Zdarzenia onload i onunload

Podstawy technologii WWW

Podstawy programowania (PHP/Java)

Dokument hipertekstowy

FORMULARZE. G. Przęczek

Poniższy poradnik opisuje proces kompresji filmu DVD do formatu AVI z wykorzystaniem kodeka XviD w programie FairUse Wizard.

Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix

Podstawy technologii WWW

Kurs języka PHP dla początkujących. Ryszard Rogacz 2019

Wykład 9 Kolekcje, pliki tekstowe, Przykład: Notatnik

autor poradnika - KS Jak zamieszczać i edytować artykuły na szkolnej stronie internetowej

KURSY PROGRAMOWANIA DLA DZIECI

Formularze Pobierają dane od użytkownika strony i wysyłają je do przetworzenia na serwerze (gdzie potrzebne są skrypty,któredaneprzetworzą najczęściej

Zaawansowane bazy danych i hurtownie danych studia zaoczne II stopnia, sem. I

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Wybrane działy Informatyki Stosowanej

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej. Laboratorium cyfrowej techniki pomiarowej. Ćwiczenie 4

Wydział Elektrotechniki, Informatyki i Telekomunikacji Instytut Informatyki i Elektroniki

XML extensible Markup Language. część 5

Włączanie/wyłączanie paska menu

Trochę o plikach wsadowych (Windows)

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Dodawanie stron do zakładek

Zalogowanie generuje nowe menu: okno do wysyłania plików oraz dodatkowe menu Pomoc

Programowanie w języku Python. Grażyna Koba

Wstęp do systemu Linux

WebMobile7 and Sello Integrator wersja 1.1.2

SYSTEM ZARZĄDZANIA TREŚCIĄ (CMS) STRONY INTERNETOWEJ SZKOŁY PRZEWODNIK

Transkrypt:

Systemy teleinformatyczne Ćwiczenie 7 - PHP (3) Formularze komunikacja międzyplikowa, upload plików : Utworzyć poniższy formularz i wyświetlać przy pomocy pliku PHP wszystkie poniższe dane: Wykorzystać np. FrontPage z pakietu Office lub napisać ręcznie plik index.htm typu: <FORM action='plik.php' method='post'> <INPUT type='text' name='nazwisko'/> itd.. znaczniki innych typów pól poznać we własnym zakresie <INPUT type='submit' value="wyślij" name="wyslij"/> </FORM> Następnie napisać plik.php, a w nim: echo $_POST['nazwisko']; $_POST jest tablicą, w której PHP przechowuje na serwerze dane przekazywane metodą POST, indeksy tablicy są nazwami name pól formularza. Ćwiczenie 1. Wyświetlić datę przekazaną z formularza z osobnymi rozwijanymi listami typu SELECT (wewnętrzne znaczniki OPTION zbudować odpowiednimi pętlami, np. dni do wyboru z listy od 1 do 31, miesiące od 1 do 12, lata od 1950 do 2010). Postać pętli: for ($x=1; $x<=31; $x++) echo "<OPTION>". $x ; Wykorzystać formę zapisu: echo date('d-m-y',mktime(0,0,0, $_POST['miesiac'], $_POST['dzien'], $_POST['rok'])); 2. Wykonać skrypt, który po wpisaniu do formularza dwóch dat (w odpowiedniej formie np. 2 razy po 3 pola tekstowe) obliczy liczbę dni dzielących te dwie daty. Obsługa plików w PHP W języku PHP istnieje kilkanaście funkcji do obsługi operacji na plikach. Dla potrzeb tego ćwiczenia utworzymy plik o nazwie plik.txt. Jako jego zawartość wpisujemy:

2 wiersz l wiersz 2 wiersz 3 Podstawowe znaczenie dla obsługi plików ma funkcja fopen. Przy jej pomocy możemy otworzyć istniejący lub utworzyć nowy plik na dysku serwera. $plik=fopen('plik.txt', 'r'); jako pierwszy parametr - ścieżka wraz z nazwą pliku jako drugi parametr - jedna z poniższych opcji: r - otwiera plik tylko do odczytu i ustawia wskaźnik na początku pliku r+ - otwiera plik do odczytu i zapisu i ustawia wskaźnik na początku pliku w - otwiera plik tylko do zapisu i jeżeli plik nie jest pusty, opróżnia go; jeżeli taki plik nie istnieje, zostanie utworzony a - otwiera plik tylko do odczytu i ustawia wskaźnik na końcu pliku a+ - otwiera plik do odczytu i zapisu oraz ustawia wskaźnik na końcu pliku. Jeśli nie podamy tego parametru, plik będzie otwarty tylko do odczytu. Aby odczytać lub zapisać do pliku treść, musimy po uprzednim otwarciu pliku przy użyciu funkcji fopen skorzystać z jednej z poniższych funkcji: fgets - odczytuje z podanego pliku jeden wiersz nie dłuższy niż podana liczba znaków. $wiersz=fgets($plik, 4096); echo $wiersz; fputs - przy pomocy tej funkcji możemy zapisać do otwartego pliku ciąg znaków, pod warunkiem że plik nie jest otwarty tylko do odczytu. Wykonanie funkcji: fputs ($plik, "tekst"); spowoduje zapisanie tekstu tekst" do otwartego pliku i odpowiednie przesunięcie się wskaźnika zapisu. // otwieramy plik o nazwie plik.txt do odczytu i zapisu $plik=fopen ("plik.txt","r+"); fputs ($plik, "tekst"); // zapisujemy tekst do pliku file - podobna do fopen. W odróżnieniu od fopen, wraz z otwarciem pliku odczytuje ona także całą jego zawartość i zwraca ją w formie tablicy, której każdy element odpowiada jednemu wierszowi pliku. Indeksy tablicy rozpoczynają się od 0. Aby dopisywać kolejne wiersze należy wysyłać znak końca wiersza \r\n fputs ($plik, "tekst"."\r\n"); Aby pobrać i wyświetlić na przykład drugi wiersz naszego pliku, możemy użyć następującego skryptu PHP: // otwieramy plik o nazwie plik.txt i wstawiamy go do zmiennej $plik $plik = file("plik.txt"); $wiersz=$plik[1];//wstawiamy wiersz z pliku do zmiennej $wiersz echo $wiersz; // wyświetlamy zawartość wiersza 2 readfile - wyświetla całą zawartość danego pliku na ekranie: readfile("plik.txt"); // wyświetlamy na ekranie całą zawartość pliku plik.txt

Oprócz funkcji dotyczących operacji na treści plików, PHP zawiera jeszcze inne, które pomagają operować na całych plikach (kopiowanie, kasowanie, pobieranie informacji o plikach). Najczęściej stosowane. feof funkcja logiczna, detekcja końca pliku, $plik=fopen ( dane.txt, r ); while (!feof($plik) ) $wiersz= fgets($plik, 255); echo $wiersz; fclose($plik); copy - funkcja służąca do kopiowania plików; podajemy nazwę źródłowego i docelowego pliku // kopiujemy plik o nazwie plik.txt" do pliku o nazwie kopia_pliku.txt" copy("plik.txt", "kopia_pliku.txt"); rename - funkcja umożliwia zmianę nazwy pliku rename("plik.txt","ten_sam_plik.txt"); file_exists - funkcja o wartości logicznej - sprawdza, czy podany plik istnieje na dysku // sprawdzamy, czy plik o nazwie plik.txt" istnieje if (file_exists("plik.txt")) // jeśli tak, to wyświetlamy odp. napis echo ("plik o nazwie plik.txt istnieje"); else // w przeciwnym przypadku echo ("plik o nazwie plik.txt nie istnieje"); filesize - funkcja sprawdza wielkość pliku // pobieramy rozmiar do zmiennej $rozmiar_pliku $rozmiar_pliku=filesize("plik.txt"); // wyświetlamy rozmiar pliku na ekranie echo ("$rozmiar_pliku"); Zadania 1. W pliku przechowywany jest login i hasło. Napisać plik php sprawdzający zgodność danych podawanych przy pomocy formularza i wyświetlający odpowiedni komunikat. 2. W pliku przechowywanych jest kilka par - login i hasło w postaci: login1

4 haslo1 login2 haslo2 Napisać plik php sprawdzający zgodność danych podawanych przy pomocy formularza i wyświetlający odpowiedni komunikat. Formularz wysyłki Tworzymy plik formularza z polem input typu file: <html> <head> <title>upload plikow</title> </head> <body> <h1>wysylka pliku na serwer...</h1> <form enctype="multipart/form-data" action="upload.php" method=post> Wybierz plik z obrazkiem: <input name="obrazek1" type="file"> <input type="submit" value="wyslij"> </form> </body> </html> Rezultatem akceptacji formularza będzie dwuwymiarowa tablica $_FILES zawierająca podstawowe dane o pliku (ew. plikach). Skrypt wysyłki Następnie należy utworzyć plik upload.php uruchamiany z formularza, którego zadaniem będzie wysyłka plików: <h1>przesyłanie pliku na serwer...</h1> echo "Rozmiar: ".$_FILES['obrazek1']['size']."<BR>"; echo "Nazwa: ".$_FILES[' obrazek1']['name']."<br>"; echo "Typ pliku: ".$_FILES[' obrazek1']['type']."<br>"; echo "Tymczasowa nazwa:".$_files[' obrazek1']['tmp_name']; $plik1=$_files[' obrazek1']['tmp_name']; $plik2="./zdjecia/".$_files[' obrazek1']['name']; // funkcja przenosząca plik tymczasowy do folderu zdjecia if(move_uploaded_file($plik1,$plik2)) echo "<br>sukces<br><br>"; echo "<hr>"; Sprawdzić działanie obu skryptów wcześniej utworzyć podrzędny folder zdjecia. Znaleźć lokalizację pliku tymczasowego. Sprawdzić, czy po zapisie do foldera docelowego plik tymczasowy istnieje czy jest usuwany. Pierwsze wykonanie skryptu nie da zadawalających rezultatów - na serwerach unixowych folder docelowy powinien posiadać odpowiednie prawa zapisu (w TotalCommander wskazać folder zdjęcia i z menu FILES Change attributes ustawić prawo zapisu write) Ograniczenia rozmiaru i typu pliku Możemy także wprowadzić dodatkowo ograniczenia dla typu przesyłanego pliku i jego rozmiaru: <h1>przesyłanie pliku na serwer...</h1>

$nazwa= $_FILES['plik']['name']; $typ = substr($nazwa, -3, 3); //funkcja znajduje 3 ostatnie znaki nazwy $typy_dop = array("jpg", "JPG"); //tablica typów $rozmiar=$_files['plik']['size']; echo "Rozmiar pliku: ".$rozmiar."<br>"; echo "Nazwa pliku: ".$nazwa."<br>"; echo "Typ pliku: ".$_FILES['plik']['type']."<BR>"; echo "Rozszerzenie nazwy pliku: ".$typ."<br>"; echo "Tymczasowa nazwa:".$_files['plik']['tmp_name']; //sprawdzenie obecności typu w tablicy i czy // nazwa nie jest pusta if((!in_array($typ,$typy_dop))&&($nazwa!="")) echo '<SCRIPT language="javascript">'; echo "alert('typ obrazka musi być JPG ')"; echo "</SCRIPT>"; exit; elseif ($_FILES['plik']['size']>51200) echo '<SCRIPT language="javascript">'; echo "alert('rozmiar obrazka max 50 kb')"; echo "</SCRIPT>"; exit; $plik1=$_files['plik']['tmp_name']; $plik2="./zdjecia/".$nazwa; // głowna funkcja przesyłająca plik if (move_uploaded_file($plik1,$plik2)) echo "<br>sukces<br><br>"; echo "<hr>"; Sprawdzić skrypt i działanie funkcji JavaScript alert w przypadku błędnych danych (za duży plik, nieprawidłowy typ pliku). Dodatkowo: wprowadzić wykorzystanie funkcji file_exists ( string nazwa_pliku) do wyświetlenia odpowiedniego komunikatu o skuteczności wysyłki pliku. Wyświetlenie zawartości katalogu w postaci listy Wykorzystać poniższy skrypt do wyświetlenia listy wysłanych plików. $nazwa_kat = './obrazki'; $kat = opendir($nazwa_kat); //otwarcie do czytania $lista_plikow = "<ul>"; //pocz listy while ($naz_pliku = readdir($kat)) //war. zakończenia if (($naz_pliku!=".")&&($naz_pliku!="..")) //filtr $lista_plikow.= "<li>$naz_pliku"; //dopisanie

6 $lista_plikow.= "</ul>"; //koniec listy closedir($kat); //zamkniecie <P>Elementy w katalogu: echo "$nazwa_kat"; </P> echo $lista_plikow; Ćwiczenie 1. Wykonać formularz zawierający dwa lub trzy pola input, służący do wysyłki kilku plików (nadać polom różne nazwy), przy czym zróżnicować dopuszczalne typy i rozmiary wysyłanych plików. Wyświetlić na stronie nazwy i rozmiary plików. 2. Znaleźć w manualu PHP (ze strony dydaktycznej) funkcję unlink, przeczytać o jej działaniu i zastosować sensownie w skrypcie. 3. Przetestować i zrozumieć działanie skryptów.