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ářů(32)
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
JustSugs - 2017-10-16  16:36:05
 Where To Buy Clomid Online Bodybuilding [url=http://costofcial.com]cheap cialis[/url] Propecia Working Patte
Baldness Levitra Generic Lowest Prices
Ronweix - 2017-10-16  16:29:59
 Cheap Clomid In The Usa Levitra Acquistare Impotenza [url=http://cheapviasales.com]viagra[/url] Indomethacin For Sale In Mexico Cephalexin 250
Ronweix - 2017-10-13  14:56:06
 Buy Amitriptyline No Percription Cialis Echtheit Prufen Kamagra Jelly 100mg Tolone [url=http://tadalaf20mg.com]cialis online[/url] Diclofenac Online Pharmacy Us No Rx
Ronweix - 2017-10-13  14:56:06
 Buy Amitriptyline No Percription Cialis Echtheit Prufen Kamagra Jelly 100mg Tolone [url=http://tadalaf20mg.com]cialis online[/url] Diclofenac Online Pharmacy Us No Rx
Ronweix - 2017-10-13  14:56:05
 Buy Amitriptyline No Percription Cialis Echtheit Prufen Kamagra Jelly 100mg Tolone [url=http://tadalaf20mg.com]cialis online[/url] Diclofenac Online Pharmacy Us No Rx
Ronweix - 2017-10-13  14:56:04
 Buy Amitriptyline No Percription Cialis Echtheit Prufen Kamagra Jelly 100mg Tolone [url=http://tadalaf20mg.com]cialis online[/url] Diclofenac Online Pharmacy Us No Rx
Ronweix - 2017-10-08  12:07:40
 Generic Viagra Pills [url=http://buyvarden.com]levitra without prescription[/url] Caffergot For Sale Preis Viagra Frau Viagra Kamagra Erfahrung
Ronweix - 2017-10-06  19:44:38
 Cialis Pas Cher Paiement Securis [url=http://buygenericvia.com]viagra prescription[/url] Como Tomar Kamagra Vardenafil Generic Vs Brand Penicillin Or Amoxicillin On Line Doctors
Ronweix - 2017-10-06  19:44:37
 Cialis Pas Cher Paiement Securis [url=http://buygenericvia.com]viagra prescription[/url] Como Tomar Kamagra Vardenafil Generic Vs Brand Penicillin Or Amoxicillin On Line Doctors
Ronweix - 2017-10-06  19:44:36
 Cialis Pas Cher Paiement Securis [url=http://buygenericvia.com]viagra prescription[/url] Como Tomar Kamagra Vardenafil Generic Vs Brand Penicillin Or Amoxicillin On Line Doctors
Ronweix - 2017-10-06  19:44:35
 Cialis Pas Cher Paiement Securis [url=http://buygenericvia.com]viagra prescription[/url] Como Tomar Kamagra Vardenafil Generic Vs Brand Penicillin Or Amoxicillin On Line Doctors
Ronweix - 2017-10-03  23:53:05
 Propecia Finasteride Cheap [url=http://cialtobuy.com]generic cialis[/url] Do I Need Prescription For Cialis
[1] [2] 
*v komentářich nesmíte používat sprostá slova a odkazy!!!Děkuji za pochopeni.