4. Článek – 1. část: zpracování formulářů prostřednictvím php.

 2011-08-08 00:00:00
 Dmitry Burobin

Rozhodl jsem se, že seznámení s php začneme popisem a zpracováním formulářů, protože jsou nedílnou součásti každého webu.

Co rozebereme:

1) Atributy tegu form.
2) Metody POST a GET.
3) Zpracování formulářů.

Atributy tegu form

Začal bych strukturou tagu form, neboli zákaldami jazyku html. První věc je, že tag form je párový, tzn. že na konci musi být uzavřen:

<form></form>
pak musíme zadat metodu odesílaní dat a případně vyplnít atribut action, tento atribut přesměruje Vás na stránku, kde odeslaná data se budou zpracovávat.
<form action=”nejaky_skript.php” mathod=”POST nebo GET” name=”neco”>
</
form>
ted` Vám vysvětlím co vlastně dělaji metody POST a GET.
  1. Metoda HTTP GET kóduje data do adresy URL. Takto kódovaná data jsou viditelná v okně prohlížeče a umožńují přidat výsledek formuláře například do oblíbených položek.
  2. Metoda HTTP POST zakóduje data přímo do hlavičky požadavku HTTP a protože prostřednictvím formuláře získáváme důvěrné informace (např. Heslo), raději budeme používat tuto metodu.
Popis možných tagů a jejich atributy najdete zde, abych nepsal to samé ještě jednou.

Základní zpracování formulářu

Takže vytvoříme soubor s rozlíšením .html, nazveme ho index.html a uložíme do složky www. V něm si vytvoříme jednoduchy formulář:

<html>
  <
head>
  <
meta http-equiv="content-type" content="text/html; charset=utf-8">
  <
meta name="generator" content="PSPad editor, www.pspad.com">
  <
title></title>
  </
head>
  <
body>
   <
form action="zpracovani.php" method="POST">
   <
table style="250px; border:3px solid black;">
    <
tr><td style="width:100px;">Jméno:</td>
        <
td style="width:150px;"> <input type="text" 
name="jmeno" value=""></td></tr>
      <
tr><td style="width:100px;">Príjmení:</td>
        <
td style="width:150px;"> <input type="text" 
name="prijmeni" value=""></td></tr>
      <
tr><td style="width:100px;">heslo:</td>
        <
td style="width:150px;"> <input type="password" 
name="pass"></td></tr>
      <
tr><td style="width:100px;">Chcete dostavat nove clanky?</td>
          <
td style="width:150px;"Ano: <input type="radio" 
name="clanek" value="Ano" checked="checked">
                                    
Ne: <input type="radio" 
name="clanek" value="Ne"></td></tr>
      <
tr><td style="width:100px;">Zprava:</td>
        <
td style="width:150px;"><textarea rows="5" cols="25" wrap="soft" 
name="text"></textarea></td></tr>
      <
tr><td colspan="2" style="width:250px; text-align:right;"><input type="submit" name="go" value="Odeslat"></td></tr>
      </
table>
    </
form>
  </
body>
</
html>
vídime tady pár tagů input s textovým vstupem a heslem, pak přepinač a jedno vstupní textové pole. Aby to vypadalo trochu líb, tak jsem ten formulář dal do tabulky a použil atribut style a zadal rozměry. Pro odesílaní dat jsem použil metodu HTTP POST a do atributu action jsem zadal zpracovani.php, takže když zmačkneme tlačítko odeslat, tak to nas přesměruje na stránku zpracovani.php, kterou ted´ vytvoříme. Výsledkem by mělo být tohle.

Ted´ vytvoříme soubor zpracovani.php a uložime ho do stejné složky www. Ten zatím bude obsahovat jen jednu podmínku, která otestuje zda jste zmáčkli tlačítko odeslat:
<?php
if(!isset($_POST['go']) || ($_POST['go'] != 'Odeslat'))
  {
  
header("location:index.html");
  }
  else
  {
  echo 
'Jméno: '.$_POST['jmeno'].' '.$_POST['prijmeni'].'<br>';
  echo 
'Heslo: '.$_POST['pass'].'<br>';
  echo 
'Chcete dostavat nove clanky nebo ne?: '.$_POST['clanek'].'<br>';
  echo 
'Zprava: '.$_POST['text'].'<br>';
  echo 
'<a href="index.html">zpět</a>';
  }
?>
zaprve testujeme zda je tlačítko odeslat zmáčknute, pomocí funkci isset, tato funkce jenom ověři, zda je parametr $_POST['go'] zadaný. A jak jste určitě pochopili pomocí této konstrukci $_POST['parametr'] volám data z našeho formuláře, ten parametr je vlastně atribut name, který jsme zvolili pro každý teg input, textarea, submit a tak dále, u všech tegů. Dal jsem ještě před funkci isset vykřičník ten znamená zápor, totiž hovořim jestli není zmáčknuto tlačítko Odeslat. Potom tímto $_POST['go'] != 'Odeslat' otestujeme jestli hodnota tlačítka Odeslat je opravdu Odeslat. No a to všechno je parametrem konstrukci if...else..., tato konstrukce se používa, řekl bych, u všech programovacích jazýků a znamená: jestli jsou splněný podmínky, v našem případě to co jsem popsal výše, tak ten skript bude zpracovávát kód který je mezi složenými závorkami po funkci if, jestli ne tak přejde do bloku else.

Další řádek nas jenom přesměruje zpět na náš formulář, jestli nebude splněna podmínka.

A poslední blok kódu jenom vyvedé data na obrazovku, která jsme zadali prostřednictvím formuláře. Nezapomínejte, když používate operátor echo a chcete vyvést nějakou proměnnou tak mezi textem a proměnnou musí být apostrof a tečka.

Jak to funguje si můžete prohlednout zde

Závěr

Takže už umíme zpracovávát data, která jsou nám posílana přes formulář, ale určitě takle ošetřený formulář je k ničemu, takže v druhé části tohoto článku Vám ukážu jak ošetřit a otestovat všechny pole, abyste pak mohli použít podobný formulář i na vlastním webu. Přeju Vám hezký den a doufám, že se Vám moji články líbi

P.S. Dál už budeme pracovat s databázemi, a dokončím sérií těchto článku o formulářich skriptem registraci uživatelů. podepisujte se na RSS:-)
Systém Orphus
Napište komentář.
Celkem komenrářů(44)
DavidTix - 2018-07-16  21:08:26
 kamagra store info erfahrungen
kamagra oral jelly
kamagra 100mg
[url=https://www.kamagrajellyk.com/]kamagra oral jelly[/url]
kamagra 100mg tablets usa 247 pills
Robertevodo - 2018-07-16  16:29:06
 kamagra oral jelly 100mg online
[url=https://www.kamagrapos.com/]kamagra oral jelly[/url]
kamagra oral jelly uses
kamagra oral jelly
kamagra oral jelly kaufen deutschland
Charlesmah - 2018-07-14  17:08:00
 viagra side effects
[url=http://viagrapipls.com/]generic viagra[/url]
compare viagra and cialis prices
viagra generic
viagra effects on healthy men
http://viagrapipls.com/
como se debe tomar el viagra para que haga efecto
Haroldwok - 2018-07-13  22:09:11
 kamagra chewable 100 mg reviews
buy kamagra 100mg
kamagra oral jelly for sale
[url=https://www.kamagradax.com/]kamagra 100mg[/url]
kamagra oral jelly how to use
Buy kamagra online - 2018-03-30  08:10:49
 kamagra 100mg soft tabs chewable tablets
kamagra dosage chart
kamagra 100mg reviews
[url=http://kamagradxt.com/]kamagra uk[/url]
kamagra store
http://kamagradxt.com/
kamagra store
Kamagra oral jelly for sale in usage - 2018-03-28  23:02:09
 kamagra 100mg soft tabs chewable tablets
[url=http://kamagradxt.com/]kamagra store gutschein[/url]
kamagra 100mg reviews
buy kamagra 100 mg oral jelly
super kamagra kaufen
http://kamagradxt.com/
kamagra oral jelly india price
JerBINA - 2018-02-17  22:40:33
 Buy Cialis Online Usa Oklahoma [url=http://tadalaffbuy.com]cialis[/url] Levitra Bericht Strep Throat 200ml Of Amoxicillin
Ronweix - 2017-11-30  06:24:31
 Kamagra Oral Jelly Packungsbeilage [url=http://howtogetvia.com]viagra online prescription[/url] Amoxil For Cats
Ronweix - 2017-11-30  06:24:30
 Kamagra Oral Jelly Packungsbeilage [url=http://howtogetvia.com]viagra online prescription[/url] Amoxil For Cats
Ronweix - 2017-11-30  06:24:28
 Kamagra Oral Jelly Packungsbeilage [url=http://howtogetvia.com]viagra online prescription[/url] Amoxil For Cats
Ronweix - 2017-11-30  06:24:27
 Kamagra Oral Jelly Packungsbeilage [url=http://howtogetvia.com]viagra online prescription[/url] Amoxil For Cats
Ronweix - 2017-11-27  14:34:03
 Posologia Propecia Alimentos Viagra Nuevo Precio [url=http://sildenafbuy.com]viagra prescription[/url] Amoxicillin Sun Exposure Prorium
Jeffpoonia - 2017-11-17  10:53:45
 Donde Comprar Viagra En Cordoba Levitra 10 Mg Prezzo Farmacia [url=http://cheapestcial.com ]cialis[/url] Cialis Mit Rezept
Jeffpoonia - 2017-11-17  10:53:43
 Donde Comprar Viagra En Cordoba Levitra 10 Mg Prezzo Farmacia [url=http://cheapestcial.com ]cialis[/url] Cialis Mit Rezept
Jeffpoonia - 2017-11-17  10:53:42
 Donde Comprar Viagra En Cordoba Levitra 10 Mg Prezzo Farmacia [url=http://cheapestcial.com ]cialis[/url] Cialis Mit Rezept
Jeffpoonia - 2017-11-17  10:53:41
 Donde Comprar Viagra En Cordoba Levitra 10 Mg Prezzo Farmacia [url=http://cheapestcial.com ]cialis[/url] Cialis Mit Rezept
Ronweix - 2017-11-04  22:19:36
 Cytotec 20mg Canada [url=http://cheapvia50mg.com]viagra[/url] Buy Azithromycin Tablets Usp Levrita
Ronweix - 2017-10-30  23:16:27
 Tamoxifen Online Canada Resultados Propecia [url=http://cheapviasales.com]viagra online[/url] Can I Purchase Elocon 5g Extra Generic Super Cialis Dimagrire Propecia
Ronweix - 2017-10-30  23:16:27
 Tamoxifen Online Canada Resultados Propecia [url=http://cheapviasales.com]viagra online[/url] Can I Purchase Elocon 5g Extra Generic Super Cialis Dimagrire Propecia
Ronweix - 2017-10-22  14:15:16
 Cephalexin Indications For Dogs Viagra Yeux Rouges [url=http://cialgeneri.com]cialis online[/url] Cialis Soft 20mg
[1] [2] [3] 
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.