Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

PHP Vytváření formuláře.

Podobné prezentace


Prezentace na téma: "PHP Vytváření formuláře."— Transkript prezentace:

1 PHP Vytváření formuláře

2 Formulářové prvky Pokud budeme chtít vytvořit opravdu interaktivní aplikace, neobejdeme se bez formulářů - formulářových prvků. Správa formulářů v jazyce PHP je dvoustupňový proces: 1. Nejdříve vytvoříme samostatný formulář HTML.  2. Potom vytvoříme vhodný skript v jazyce PHP, který příjme uživatelem zadaná data. Příkladem může být aplikace, která zaregistruje uživatele nebo jen odešle proměnné skriptu.

3 Formulář HTML je tvořen dvěma značkami prvku:
<FORM> a více prvky <INPUT>. V prvku <FORM> musíme nastavit atribut: ACTION="nazev_skriptu.php" - určuje jméno skriptu, kterému budou data z formuláře předány a METHOD="POST / GET" - určuje, jak budou data z formuláře odeslána. Obě metody jsou funkčně stejné, liší se jen přenosem dat. Metoda GET se používá pro přenášení menších hodnot. Metoda POST se používá pro přenášení větších dat v těle HTTP požadavku (skrytě). <FORM action="nazev_skriptu.php" method="post"> Data formuláře </FORM>

4 Vstupní pole <INPUT TYPE=“TEXT“ NAME=“…“>
Nejčastěji používaným formulářovým elementem je INPUT, používá se tehdy, kdy chceme od uživatele zjistit údaje a odeslat je zpět skriptu. Musíme ještě nastavit atribut TYPE="text" a další atributy : NAME určuje, jak se bude jmenovat proměnná, kterou odešleme. VALUE určuje počáteční hodnotu, která bude v tomto vstupním poli. MAXLENGTH určuje, kolik znaků můžeme do tohoto pole napsat. SIZE určuje velikost tohoto vstupního pole. <form action="jmeno_skriptu.php" method="post"> <input type="text" name="jmeno_uzivatele" value="Sem zadejte své jméno" size="25"> </form> V praxi to bude vypadat následovně:

5 Pokud budeme mít více vstupních polí, můžeme je uspořádat :
<form action="registrace.php" method="post"> <table align="center"> <tr> <td>Jméno:</td> <td><input type="text" name="jmeno"></td> </tr> <td>Příjmení:</td> <td><input type="text" name="prijmeni"></td> <td> </td> <td><input type="text" name=" "></td> </table> </form> V praxi tento příklad bude vypadat následovně: Jméno: Příjmení:

6 Odesílání formuláře <INPUT TYPE="SUBMIT" VALUE=" ">
Atribut TYPE="SUBMIT" nám stanovuje, že se jedná o odesílací tlačítko. VALUE=" " nám určuje text, který bude na tlačítku umístěn. <FORM ACTION="jmeno_skriptu.php" METHOD="POST"> <INPUT TYPE="SUBMIT" VALUE="Odeslat údaje"> </FORM> V praxi bude toto tlačítko vypadat následovně:

7 Příklad - odešle zvolené data z formuláře skriptu:
<form action="data.php" method="post"> <table align="center"> <tr> <td>Jméno:</td> <td><input type="text" name="jmeno"></td></tr> <tr> <td>Příjmení:</td> <td><input type="text" name="prijmeni"></td></tr> <tr> <td> </td> <td><input type="text" name=" "></td></tr> <tr> <td align="center" colspan="2"> <input type="submit" value="Odeslat údaje"></td> </tr> </table> </form> Nyní máme vytvořený formulář, který po odeslání předá hodnoty vstupních polí skriptu data.php. Ve skriptu budeme mít proměnné $jmeno, $prijmeni a $ .

8 Vytvoření skriptu data.php, který nám zpracuje data:
<? echo "Jmenuješ se $jmeno $prijmeni. Tvůj je: $ !"; ?>

9 Pro použití mechanizmu, kdy se uživatel rozhodne, jestli ano nebo ne, je možné použít také tyto "odesílací tlačítka". Praktický příklad: <FORM ACTION="registrace.php" METHOD="POST"> Souhlasíte s pravidly registrace? <INPUT TYPE="SUBMIT" VALUE="ANO" NAME="souhlas"> <INPUT TYPE="SUBMIT" VALUE="NE" NAME="souhlas"> </FORM> A skript registrace.php bude vypadat následovně: <? if ($souhlas == "ANO"){ echo "Uživatel souhlasí s registrací !!!"; } else{ echo "Bohužel s pravidly musíte souhlasit !!!";} ?>

10 Vstupní heslo <INPUT TYPE="PASSWORD" VALUE=" ">
Toto pole, stejně jako vstupní pole (type="text"), je určeno k zadávání hodnot od uživatele, které nemají být zjištěny "při pohledu přes rameno". Místo hodnoty (písmen) budou zobrazeny tečky. <FORM ACTION="jmeno_skriptu.php" METHOD="POST"> <INPUT TYPE="PASSWORD" NAME="heslo" SIZE="25" VALUE="Vaše heslo"> </FORM> V praxi to bude vypadat následovně:

11 Přepínací tlačítka <INPUT TYPE="RADIO" VALUE="...">
Tento formulářový prvek použijeme tehdy, pokud chceme dát uživateli na výběr z několika možností. Například výběr pohlaví, mobilního telefonu atd. U tohoto elementu můžeme nastavit atribut CHECKED, který znamená, že tento prvek (pole) již bude vybrán. <INPUT TYPE="RADIO" NAME="pohlavi" VALUE="Muž" CHECKED>Muž<br> <INPUT TYPE="RADIO" NAME="pohlavi" VALUE="Žena">Žena Výsledek výběru máme následně v proměnné $pohlavi: Muž Žena

12 Zaškrtávací pole <INPUT TYPE="CHECKBOX" NAME=" ">
Tento formulářový prvek se používá tehdy, pokud chcete například dát uživateli na výběr několik možností. Atribut NAME určuje, jak se bude jmenovat proměnná, kterou odešleme skriptu. Atributem CHECKED určíme, že toto pole již bude zaškrtnuté (fajfka ;). <INPUT TYPE="CHECKBOX" NAME="kresleni" value="ano" checked>Kreslení <INPUT TYPE="CHECKBOX" NAME="sport" value="ano">Sport V praxi to bude vypadat následovně: Kreslení Sport Příklad skriptu, který nám zpracuje data: <? if ($kresleni == "ano") echo "Máš rád kreslení"; if ($sport == "ano") echo "Máš rád sport"; ?>

13 Pole reset <INPUT TYPE="RESET" VALUE="...">
Tento "oblíbený" formulářový prvek najde uplatnění tam, kde chcete vymazat hodnotu formuláře, resp. formulářových elementů. Atributem VALUE nastavíte text, který bude vepsán v tomto tlačítku. <INPUT TYPE="RESET" value="Vymazat formulář"> Výsledek:

14 Skryté pole <INPUT TYPE="HIDDEN" NAME="..." VALUE="...">
Příkladem použití tohoto elementu je například předání proměnných z jednoho skriptu do druhého. Příklad: <FORM ACTION="data.php" METHOD="post"> <INPUT TYPE="HIDDEN" NAME="hodnota_a" VALUE="22"> <INPUT TYPE="HIDDEN" NAME="hodnota_b" VALUE="15"> <INPUT TYPE="SUBMIT" VALUE="Odeslat"> </FORM> Příklad skriptu, který nám zpracuje data: <? echo "Hodnota proměnné \$hodnota_a je $hodnota_a"; echo "<br>Hodnota proměnné \$hodnota_b je $hodnota_b"; ?>

15 Seznam <SELECT NAME=".."> </SELECT>
Tento formulářový prvek najde uplatnění tam, kde chceme dát uživateli na výběr z několika možností. Pokud použijeme atribut MULTIPLE, uživatel si může vybrat více hodnot (možnosti). SIZE určuje počet naráz zobrazených "řádek" tohoto seznamu. Položky do tohoto seznamu přidáváme pomocí: <OPTION VALUE="..."> VALUE. Hodnota uvedená za znakem ">" znamená hodnotu, která bude zobrazena v seznamu . <SELECT NAME="vek"> <OPTION VALUE="15">15 <OPTION VALUE="20">20 <OPTION VALUE="25">25 <OPTION VALUE="30">30 </SELECT> Výsledek: V proměnné $vek má skript uloženou zvolenou hodnotu.

16 Příklad seznamu (MULTIPLE):
<SELECT NAME="hobby" SIZE="2" MULTIPLE> <OPTION VALUE="pocitace">Počítače <OPTION VALUE="modelareni">Modelaření <OPTION VALUE="sport">Sport <OPTION VALUE="hospoda">Hospoda </SELECT> Výsledek: V proměnné $hobby má skript uloženu zvolenou hodnotu. Vybrat více možností můžeme pomocí klávesnice SHIFT nebo CTRL.

17 Textové pole (víceřádkové) <TEXTAREA> </TEXTAREA>
Tento element umožňuje zapsání několika řádkového textu či dopisu. Pomocí atributu COLS nastavujeme počet sloupců (šířku tohoto elementu) a atribut ROWS určuje počet řádků. Příklad textového pole: <TEXTAREA NAME="vzkaz" ROWS="10" COLS="20"> Sem můžete zadat počáteční hodnotu tohoto elementu. </TEXTAREA> Výsledek: Obsah tohoto elementu bude uložen v proměnné $vzkaz. Text můžeme ještě zpracovat - zachovat mezery, ošetřit nebezpečné znaky apd.

18 Vkládání nových záznamů Ověření platnosti dat
Dva důvody: 1. Zajistíte, že skrip dostane informace, které potřebuje k činnosti. 2. Informace budou správného typu. Pro ověření platnosti dat se velice často používá funkce isset( ): // Ověření obsahu proměnné $pohlavi if (isset($pohlavi)) { if ($pohlavi == 'M') { $zprava = '<b><p>Dobrý den, pane!</p></b>'; } elseif ($pohlavi == 'F') { $zprava = '<b><p>Dobrý den, madam!</p></b>'; } } else { // Nebylo-li zadáno pohlaví... $pohlavi = NULL; echo '<p><b>Nezadali jste své pohlaví!</b></p>';

19 U prázdného textového řetězce vrátí funkce isset( ) hodnotu TRUE.
Pro testování textových hodnot používáme raději funkci strlen( ): // Ověření obsahu proměnné $ if (!(strlen($ ) > 0)) { $ = NULL; echo '<p><b>Nezadali jste adresu elektronické pošty!</b></p>'; }

20 Použití superglobálních proměnných
Soperglobální proměnné mají velkou výhodu v tom, že jsou vůči registrovaným globálním proměnným bezpečnější a přesnější. Velice často se používají například: Proměnná $_GET – obsahuje všechny proměnné a hodnoty získané prostřednictvím metody GET. Proměnná $_POST – obsahuje všechny proměnné a hodnoty získané prostřednictvím metody POST. K určení skriptu pro zpracování formuláře se často používá proměnná $PHP_SELF - prostřednictvím superglobálního pole $_SERVER[‘PHP_SELF’] : <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

21 Vložení údajů o novém studentovi :
<?php # vloz_student.php // Nastavení titulu stránky a zahrnutí záhlaví HTML. $titul_stranky = 'Vloz_data'; include ('sablony/zahlavi.inc'); if (isset($_POST['odeslat'])) { // Zpracovat formulář. $zpráva = NULL; // Vytvořte novou prázdnou proměnnou. // Ověřit identifikační číslo if (empty($_POST['id_st'])) { $id = FALSE; $zpráva .= '<p>Zapomněli jste zadat identifikační číslo!</p>'; } else { $id = $_POST['id_st']; }

22 // Ověřit jméno if (empty($_POST['jmeno'])) { $jm = FALSE; $zpráva .= '<p>Zapomněli jste zadat jméno!</p>'; } else { $jm = $_POST['jmeno']; } // Ověřit přijmení if (empty($_POST['prijmeni'])) { $pr = FALSE; $zpráva .= '<p>Zapomněli jste zadat příjmení!</p>'; $pr = $_POST['prijmeni']; } // Ověřit rodné číslo. if (empty($_POST['rod_cislo'])) { $rc = FALSE; $zpráva .= '<p>Zapomněli jste zadat rodné číslo!</p>'; $rc = $_POST['rod_cislo']; }

23 $ob = $_POST['obor']; $ro = $_POST['rocnik']; $sp = $_POST['st_prumer']; $e = $_POST[' ']; $dz = $_POST['datum_zapisu']; } if ($id &&$jm && $pr && $rc&& $ob && $ro && $sp && $dz && $e) {//Pokud je vše OK. // Vložte data do databáze. require_once ('mysql_spojit.php'); // Připojit se k databázi // Vytvořte dotaz $dotaz = "INSERT INTO student ( id_st,jmeno, prijmeni, obor,rocnik,rod_cislo,st_prumer, ,datum_zapisu ) VALUES ( '$id','$jm', '$pr', '$ob', '$ro', '$rc', '$sp', '$e', '$dz')"; $vysledek ($dotaz); // Spustit dotaz if ($vysledek) { // Je-li vše OK. echo '<p><b>Zápis dat proběhl úspěšně!</b></p>'; include ('sablony/pata.inc'); // Zahrnout patu. exit(); // Ukončení skriptu } else { // Něco se nepovedlo. $zpráva .= '<p>Systémová chyba. </p><p>'. mysql_error(). '</p>'; } mysql_close(); // Ukončit připojení k databázi. } // Konec zpracování formuláře.

24 // Zobrazit zprávu (pokud něco obsahuje).
if (isset($zpráva)) { echo '<font color="red">', $zpráva, '</font>';} ?> <!-- Vytvoření formuláře --> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <table width="90%" align="center"> <tr bgcolor="#999966"><td width="100%"> <font color="#FFCC66"> <b>Zadejte nové údaje:</b></font></td></tr> </table> <table width="90%" align="center"></br> <p><b>Ident. číslo:</b> <input type="text" name="id_st" size="8" maxlength="8" value="<?php if (isset($_POST['id_st'])) echo $_POST['id_st']; ?>"/></p> <p><b>Jméno:</b> <input type="text" name="jmeno" size="20" maxlength="40" value="<?php if (isset($_POST['jmeno'])) echo $_POST['jmeno']; ?>"/></p> <p><b>Příjmení:</b> <input type="text" name="prijmeni" size="30" maxlength="40" value="<?php if (isset($_POST['prijmeni'])) echo $_POST['prijmeni']; ?>"/></p>

25 <p><b>Rod
<p><b>Rod. číslo:</b> <input type="text" name="rod_cislo" size="30" maxlength="40" value="<?php if (isset($_POST['rod_cislo'])) echo $_POST['rod_cislo']; ?>"/></p> <p><b>Obor:</b> <select name="obor"><option value="Inženýrská Informatika" >II<option value="Automatizace a řídicí technika" >AŘT</select ></p> <p><b>Rocnik:</b> <input type="text" name="rocnik" size="30" maxlength="40" value="<?php if (isset($_POST['rocnik'])) echo $_POST['rocnik']; ?>"/></p> <p><b>St. průměr:</b> <input type="text" name="st_prumer" size="40" maxlength="60" value="<?php if (isset($_POST['st_prumer'])) echo $_POST['st_prumer']; ?>" /> </p> <p><b>El. adresa:</b> <input type="text" name=" " size="40" maxlength="60" value="<?php if (isset($_POST[' '])) echo $_POST[' ']; ?>" /> </p> <p><b>Datum zápisu:</b> <input type="text" name="datum_zapisu" size="40" maxlength="60" value="<?php if (isset($_POST['datum_zapisu'])) echo $_POST['datum_zapisu']; ?>" /> </p> <div align="right"><input type="submit" name="odeslat" value="Odeslat data" /></div></table></form><!-- Konec formuláře --> <?php include ('sablony/pata.inc'); // Zahrnout patu ?>


Stáhnout ppt "PHP Vytváření formuláře."

Podobné prezentace


Reklamy Google