Formularze w PHP – testy, dyktanda i inne pomoce
Transkrypt
Formularze w PHP – testy, dyktanda i inne pomoce
Formularze w PHP – testy, dyktanda i inne pomoce dydaktyczne materiały pomocnicze na warsztaty w ramach X Ogólnopolskiego Zjazdu Opiekunów Szkolnych Pracowni Internetowych w Mrozach Autor opracowania Agnieszka Borowiecka Warszawa, 27 maja 2011 Warsztaty Formularze w PHP – testy, dyktanda i inne pomoce dydaktyczne Zawartość FORMULARZE NA STRONACH WWW................................................................................................................ 5 ĆWICZENIA DO WYKONANIA............................................................................................................................ 8 Opracowanie Agnieszka Borowiecka Strona 3 Warsztaty Formularze w PHP – testy, dyktanda i inne pomoce dydaktyczne Formularze na stronach WWW Formularze naleŜą do standardu HTML i są obsługiwane przez niemal wszystkie przeglądarki. Tworzymy je za pomocą znaczników <form> </form>. W nagłówku tworzonego formularza naleŜy podać metodę przesyłania danych do skryptu, który je przetworzy (atrybut method), adres URL, pod który naleŜy przesłać zawartość pół formularza (atrybut action) oraz nazwę formularza (atrybut name). Atrybut enctype nie jest obowiązkowy, jego wartość opisuje sposób kodowania zawartości formularza. Wewnątrz formularza moŜemy umieścić róŜne elementy, np. pola edycyjne, przyciski, listy wyboru itp. Wprowadzoną zawartość moŜemy między innymi przesłać pocztą, wysłać do skryptu CGI lub PHP albo obsłuŜyć od razu za pomocą skryptu JavaScript. <form name="test" method="post" enctype="text/plain" action="mailto:[email protected]?subject=Formularz"> ..... </form> Atrybut method moŜe przyjmować jedną z dwóch wartości: post lub get. Wartość get jest wartością domyślną, oznacza on, Ŝe dane określone w formularzu zostaną spakowane i dołączone do adresu URL wskazanego jako atrybut action. Wartość post oznacza, Ŝe dane zostaną przesłane niezaleŜnie od odwołania do skryptu (jako oddzielny strumień). Skrypt otrzyma dane na standardowym wejściu. Metoda post pozwala nam przesyłać dowolne ilości danych. Do najbardziej popularnych zadań języka PHP naleŜy obsługa formularzy. Umieszczając na formularzu przycisk typu submit pozwalamy uŜytkownikowi na zatwierdzenie danych wprowadzonych do pól formularza i przesłanie ich na adres wskazany w atrybucie action znacznika form. Dane z formularza są przetwarzane automatycznie – PHP tworzy zmienne o nazwach identycznych z nazwami pól w formularzu (określonymi przez atrybut name) i przypisuje im odpowiednie wartości. W pliku konfiguracyjnym PHP, począwszy od wersji 4.2.0, z powodu bezpieczeństwa został domyślnie wyłączony dostęp do zmiennych globalnych. Niedostępne jest wtedy automatyczne przekształcanie zmiennych formularza na zmienne w skrypcie. Aby uzyskać dostęp do zmiennych formularza naleŜy skorzystać z jednej z tablic superglobalnych $_POST, $_GET lub $_REQUEST. W zaleŜności od atrybutu method formularza wybieramy odpowiednią tablicę do uzyskania wartości zmiennych: $x=$_POST['x']; W tablicy $_REQUEST są dostępne wszystkie dane wprowadzone przez uŜytkownika, zatwierdzone metodami post i get. W prawidłowo napisanym skrypcie powinniśmy takŜe sprawdzić, czy istnieją wszystkie potrzebne nam zmienne – uŜytkownik mógł uruchomić skrypt obsługujący formularz bezpośrednio, wprowadzając jego nazwę w polu adresu przeglądarki. Przykłady elementów formularza: • pole tekstowe <input type="text" name="nazwisko" value="Kowalski" maxlength="20"> • pole opcji <input type="radio" name="plec" value="k" checked="checked">kobieta <input type="radio" name="plec" value="m">męŜczyzna • pole wyboru <input type="checkbox" name="c[]" value="1" checked="checked">typ 1 <input type="checkbox" name="c[]" value="2">typ 2 Opracowanie Agnieszka Borowiecka Strona 5 Warsztaty Formularze w PHP – testy, dyktanda i inne pomoce dydaktyczne • obszar tekstowy <textarea cols="50" rows="10" name="wypowiedz"> tu wpisz swój komentarz.... </textarea> • rozwijalna lista wyboru <select name="wlosy_kolor"> <option>blond</option> <option>rudy</option> <option>szatyn</option> </select> • przewijana lista wyboru <select name="wlosy_rodzaj" size="3"> <option>siwe</option> <option selected="selected">farbowane</option> <option>naturalne</option> </select> • przycisk z obrazkiem <button name="submit" value="submit" type="submit"> Prześlij <img src="punkcik.gif" alt="wow"></button> • przycisk czyszczący formularz i przywracający domyślne wartości pól <input type="reset" value="Wyczyść formularz"> • przycisk informujący przeglądarkę o konieczności wysłania danych formularza do serwera <input type="submit" value="Wyślij"> Przykładowe skrypty Przygotuj formularz do wprowadzenia trzech liczb i obsługujący go skrypt, za pomocą którego moŜna będzie ustalić, która z podanych liczb jest największa. Formularz i skrypt obsługujący powinny znajdować się w jednym pliku. <?php if ((isset($_POST["a"])) && ($_POST["a"]!="") && (isset($_POST["b"])) && ($_POST["b"]!="") && (isset($_POST["c"])) && ($_POST["c"]!="")) { $a=$_POST["a"]; $b=$_POST["b"]; $c=$_POST["c"]; echo "<p>Podałeś liczby $a, $b i $c.<br />Największa z nich to "; if ($a>$b) { if ($a>$c) { echo $a; } else { echo $c; } } else { if ($b>$c) { echo $b; } else { echo $c; } } echo '</p>'; } else { echo('<form method="post" action="php06.php"> <p> Podaj trzy liczby całkowite:<br /> a= <input type="text" name="a" /> <br /> b= <input type="text" name="b" /> <br /> c= <input type="text" name="c" /> <br /> <input type="submit" value="Sprawdź" name="spr" /></p> </form>'); } ?> Opracowanie Agnieszka Borowiecka Strona 6 Warsztaty Formularze w PHP – testy, dyktanda i inne pomoce dydaktyczne Przygotuj formularz pozwalający uŜytkownikowi wskazać, które spośród czterech wymienionych języków są mu znane, oraz skrypt obsługujący ten formularz – wypisujący wybrane języki. <form method="post" action="jezyki_ob.php"> <p>Czy znasz język:<br /> <input type="checkbox" name="jezyk[]" value="polski" checked="checked" /> polski<br /> <input type="checkbox" name="jezyk[]" value="czeski" /> czeski<br /> <input type="checkbox" name="jezyk[]" value="niemiecki" /> niemiecki<br /> <input type="checkbox" name="jezyk[]" value="angielski" /> angielski</p> <p><input type="submit" value="Wyślij dane" /></p> </form> <?php if (isset($_POST[jezyk])) { $jezyk=$_POST[jezyk]; echo ("<p>Znasz języki:</p>"); echo('<ul>'); for ($i=0;$i<count($jezyk);$i++){ echo("<li>".$jezyk[$i]."</li>"); } echo('</ul>'); } else { echo('<p>Nie znasz języków</p>'); } ?> Opracowanie Agnieszka Borowiecka Strona 7 Warsztaty Formularze w PHP – testy, dyktanda i inne pomoce dydaktyczne Ćwiczenia do wykonania Ankieta „Zdrowe odŜywianie” Przygotuj quiz zgodnie z poniŜszym przykładem: Sprawdź swoją wiedzę na temat zdrowego odŜywiania! Tylko jedna odpowiedź z trzech jest prawdziwa. Wynik moŜna sprawdzić wyniki, klikając na "Sprawdź". Powodzenia! 1 Ile razy dziennie powinniśmy spoŜywać warzywa, owoce i soki? 3 4 5 2 Dlaczego spoŜywanie 5 porcji warzyw, owoców lub soku jest tak waŜne? poniewaŜ nasz organizm nie jest w stanie samodzielnie wytwarzać większości witamin, mikroelementów i substancji odŜywczych oraz nie potrafi magazynować wielu z tych elementów poniewaŜ warzywa, owoce i soki zawierają niezbędne składniki będące budulcem kości wcale nie jest waŜne, nasz organizm sam wytwarza większość witamin, mikroelementów i substancji odŜywczych 3 Który owoc w 1893 r. podczas porządkowania kwestii zróŜnicowania ceł na warzywa i owoce do celów podatkowych został uznany przez Sąd NajwyŜszy Stanów Zjednoczonych za warzywo? (na podstawie jego zastosowań kulinarnych) jabłko pomidor ananas 4 Według alergologów tego warzywa nie zaliczamy do uczulających: pomidora kalafiora selera 5 OdświeŜającą moc arbuz zawdzięcza temu, Ŝe składa się z wody: w ponad 60% w ponad 75% w ponad 90% 6 Banan to w języku arabskim: ręka patyk palec 7 Warzywo to jest często wykorzystywane w kosmetyce. Znane ze swoich właściwości łagodzących podraŜnienia i zmiękczających skórę. Ponadto nawilŜa ją, tonizuje i odświeŜa: sałata marchewka ogórek 8 Po jakie owoce najchętniej sięgają Polacy? (na podstawie danych FAO) winogrona, owoce pestkowe (np. wiśnie i morele) oraz cytrusy jabłka, owoce sezonowe (tj. czereśnie, truskawki, maliny itp.) oraz cytrusy jabłka, gruszki oraz banany 9 Ile polskich dzieci zabiera codziennie do szkoły warzywa? (na podstawie badań przeprowadzonych dla kampanii „5 porcji warzyw, owoców lub soku” w kwietniu 2010 roku) co trzecie co czwarte co siódme 10 Według specjalistów, aby dziecko polubiło nowe warzywo, musi go spróbować nawet: 3–5 razy 5–10 razy Opracowanie Agnieszka Borowiecka 10–15 razy Strona 8 Warsztaty Formularze w PHP – testy, dyktanda i inne pomoce dydaktyczne Dyktando „JeŜ Jerzy i zdrowa Ŝywność” Przygotuj stronę zawierającą treść poniŜszego dyktanda: JeŜ Jerzy zdrową Ŝywność namierzył i wieść o tym w całym lesie szerzył. Tymczasem przekorny Ŝółw błotny Bartłomiej Rzepka słowom jeŜa nie wierzył. Odwiedził przydroŜny bar „KoŜuch” i talerz wrzącej zupy grzybowej spoŜył. A do tego smaŜone Ŝeberka. Zupa była nieświeŜa, Ŝółw wstał z krzesła, przewrócił się i na wznak leŜy. PrzeraŜony jeŜ Jerzy na pomoc przyjacielowi bieŜy. Przyniósł mu lekarstwo. śółw lekarstwo niechętnie zaŜył, przełknął je i przeŜył. Później Ŝółw Bartłomiej Rzepka całą sprawę przemyślał i Jerzemu przyrzekł: „Będę mądrze się odŜywał i jadł tylko to, co naleŜy”. Dodaj do strony kolor tła, sformatuj odpowiednio tekst wykorzystując arkusze stylów np.: <style type='text/css'> body {background-color: #e0ffff;} p {font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 20pt;} option, select {width: 40pt; font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 20pt; } </style> Przygotuj funkcję litera wyświetlającą zamiast Ŝ i rz odpowiednią listę wyboru: function litera($i) { $lit=array('--','Ŝ','rz'); echo '<select name="p[]">'; for ($x=0;$x<3;$x++) { echo '<option'; if ($x==$i) { echo ' selected="selected"'; } echo '>'.$lit[$x].'</option>'; } echo '</select>'; } Zastąp wszystkie wystąpienia Ŝ i rz w tekście wywołaniem funkcji litera. Przygotuj tablicę prawidłowych odpowiedzi – jaką literę naleŜy wybrać w kolejnych wyrazach: $odp=array('Ŝ','rz','Ŝ','rz' ......); Napisz polecenie zliczające poprawne i błędne odpowiedzi. Wypisz wyniki na ekranie. Opracowanie Agnieszka Borowiecka Strona 9 Warsztaty Formularze w PHP – testy, dyktanda i inne pomoce dydaktyczne Zgadywanka – odgadujemy ukryty wyraz Przygotuj stronę z grą polegającą na odgadywaniu wyrazu, zgodnie z poniŜszym wzorem: Wprowadź pomocniczą zmienną $wyraz do przechowywania odgadywanego wyrazu. $wyraz="kogut"; Zmodyfikuj stronę w taki sposób, by automatycznie wypisywała się liczba literek w wyrazie oraz rysowana była odpowiedniej wielkości tabelka, w której komórkach będą wyświetlane odgadnięte litery. Sformatuj odpowiednio treść strony korzystając z arkuszy stylów. Opracowanie Agnieszka Borowiecka Strona 10 Ośrodek Edukacji Informatycznej i Zastosowań Komputerów 02-026 Warszawa, ul. Raszyńska 8/10 tel. 0 22/ 579-41-00; fax 0 22/ 579-41-70 e-mail: [email protected] http://www.oeiizk.waw.pl