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