PHP (27) - Příklady na formuláře
Pojďme se podívat na několik praktických příkladů, jak využít formuláře a PHP.
21.7.2004 15:00 |
Petr Zajíc
| Články autora
| přečteno 89308×
Dnes si ukážeme několik praktických příkladů, jak využít formuláře v PHP. Podíváme se na to, jak si můžeme pomoci cizí prací a jak si ulehčit život při vyhledávání nápovědy k jazyku PHP.
Příživníci
Následující věc se až tak netýká samotného PHP jako formulářů obecně
- pokud víte jak formuláře fungují, můžete si sestavit formulář, který
bude zpracovávat někdo jiný. Tak například, pokud se dobře zadíváte na
titulní stránku Linuxsoftu, zjistíte, že obsahuje několik formulářů -
formulář pro přihlášení uživatele, formulář pro vyhledávání ve
článcích, vyhledávání software a podobně. Když si necháte zobrazit
zdrojový kód titulní stránky Linuxsoftu v prohlížeči, najdete tam
například následující formulář:
<div
class="sub_title_orange">
<img alt=">" height="15" width="15"
src="img/sipka2.png">
Vyhledávání článků
</div>
<div align="center" class="menu" style="padding-top: 7px;
padding-bottom: 7px;">
<form action="http://www.linuxsoft.cz/article_list.php"
method="get">
<input name="search_article" value=""
size="20" type="text">
<input name="odesli" value="Hledat"
type="submit">
<br>
</form>
</div>
který v praxi vypadá následovně:
 Vyhledávání článků
Klidně si to vyzkoušejte, protože to bude fungovat! Když budete
dávat příživnické formuláře na svoje vlastní stránky, měli byste si
nicméně uvědomit několik věcí:
- Atribut action v tagu FORM je lepší zadat absolutně, tedy včetně
http://www.nejakyserver.domena.
- Pakliže je formulář odeslán skriptu php, musí být s php schopen
pracovat cílový server (ne tedy nutně ten, z něhož je formulář odesílán)
- Když se spoléháte na cizí služby, počítejte s tím, že to nemusí
fungovat na 100%. Kdoví, zda stránka
http://www.linuxsoft.cz/article_list.php
bude existovat ještě zítra - majitel webu se například může rozhodnout
ji přejmenovat.
- Někdy mohou s využíváním cizích formulářů souviset licenční nebo
právní otázky, takže je dobré na to myslet.
Příkladů na příživnické formuláře by se dala vymyslet celá řada -
můžete mít na stránce formuláře, které bude zpracovávat vyhledávač,
formuláře pro nalezení telefonního čísla, na ověření IČO, formuláře na
přihlášení k nějaké službě a podobně.
Náš příklad
Snažil jsem se přijít na nějaký neotřepaný příklad s formuláři -
tady jeden je. Chtějme mít formulář, který bude obsahovat rozevírací
seznam s příkazy v PHP, které jsme se již naučili. S tím, že po jeho
odeslání se nám zobrazí příslušná stránka nápovědy v PHP. Na stránkách
PHP je podobný formulář, ale tam se musejí příkazy napsat. My je budeme
mít přichystané.
Seznam příkazů si pro jednoduchost ukázky zadáme do nějakého pole.
To může být celkem rozsáhlé, nám bude pro pochopení stačit následující:
<?
$prikazy=Array("echo", "print", "date", "print_r", "sort");
?>
V PHP manuálu jsou jednotlivé funkce a příklady uvedeny na
stránkách, které mají logické názvy. Takže například funkce sort má
českou stránku nápovědy na http://cz.php.net/manual/cs/function.sort.php
a tak dále. Skript pro vyhledávání by tedy mohl vypadat třeba nějak
takto:
<?
function Prikazy()
{
//zkráceno
}
if (empty ($_POST["odeslat"]))
{
?>
<form method="POST" action="<?echo $_SERVER["PHP_SELF"]?>">
Vyber příkaz: <? Prikazy(); ?>
<input name="odeslat" value="Odeslat"
type="submit">
</form>
<?
}
else
{
Header("Location:
http://cz.php.net/manual/cs/function.".$_POST["prikaz"].".php");
}
Ukázat
celý skript | Spustit
skript
A můžeme si v něm všimnout následujících věcí: Formulář se skládá z
rozevíracího seznamu a odesílacího tlačítka. Seznam plníme pomocí
funkce Prikazy, která (je to vidět při zobrazení celého skriptu) pole
příkazů nejprve definuje a pak řadí. Protože při zobrazování
manuálových stránek php jsou případná podtržítka nahrazena pomlčkami,
je tam použito nahrazování pomocí funkce str_replace.
Jelikož při odesílání tohoto formuláře prakticky uživatel nemůže
udělat chybu, úplně jsme vynechali kontroly odeslaných dat. Je jisté,
že něco zkrátka odejít musí, a pokud neuděláme chybu v názvu funkce,
mělo by to fungovat.
Jakmile se stránka odešle, máme k dispozici proměnnou $_POST
["prikaz"], která obsahuje vybraný příkaz. A byl-li formulář odeslán,
pokusíme se ji zobrazit. Pro nás dosuh neznámá funkce Header() funguje
tak, že se pokusí propašovat do záhlaví požadavku nějaké svoje věci a
ještě ji budeme rozebírat. Momentálně stačí, když si řekneme, že volání
funkce header v tomto tvaru způsobí, že se nenatáhne stránka, na níž
tento příkaz je (tedy např.
http://www.linuxsoft.cz/php/examples/28_funkce.php), ale natáhne se
stránka uvedená v řetězci Location.
Skript lze pochopitelně rozšiřovat, například seznam funkcí které má
rozevírací seznam zobrazit nemusí být uložen v poli, ale někde jinde.
Zrovna mě napadá, že by klidně mohl být v textovém souboru. Což nás
přivádí k dalšímu dílu PHP seriálu, který se bude právě souborům
věnovat.
Verze pro tisk
|
Nejsou žádné diskuzní příspěvky u dané položky.
Příspívat do diskuze mohou pouze registrovaní uživatelé.
|
|

Vyhledávání software

Vyhledávání článků
28.11.2018 23:56 /František Kučera Prosincový sraz spolku OpenAlt se koná ve středu 5.12.2018 od 16:00 na adrese Zikova 1903/4, Praha 6. Tentokrát navštívíme organizaci CESNET. Na programu jsou dvě přednášky: Distribuované úložiště Ceph (Michal Strnad) a Plně šifrovaný disk na moderním systému (Ondřej Caletka). Následně se přesuneme do některé z nedalekých restaurací, kde budeme pokračovat v diskusi.
Komentářů: 1
12.11.2018 21:28 /Redakce Linuxsoft.cz 22. listopadu 2018 se koná v Praze na Karlově náměstí již pátý ročník konference s tématem Datová centra pro business, která nabídne odpovědi na aktuální a často řešené otázky: Jaké jsou aktuální trendy v oblasti datových center a jak je optimálně využít pro vlastní prospěch? Jak si zajistit odpovídající služby datových center? Podle jakých kritérií vybírat dodavatele služeb? Jak volit vhodné součásti infrastruktury při budování či rozšiřování vlastního datového centra? Jak efektivně datové centrum spravovat? Jak co nejlépe eliminovat možná rizika? apod. Příznivci LinuxSoftu mohou při registraci uplatnit kód LIN350, který jim přinese zvýhodněné vstupné s 50% slevou.
Přidat komentář
6.11.2018 2:04 /František Kučera Říjnový pražský sraz spolku OpenAlt se koná v listopadu – již tento čtvrtek – 8. 11. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma umění a technologie, IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
4.10.2018 21:30 /Ondřej Čečák LinuxDays 2018 již tento víkend, registrace je otevřená.
Přidat komentář
18.9.2018 23:30 /František Kučera Zářijový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 20. 9. 2018 od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Tentokrát bez oficiální přednášky, ale zato s dobrým jídlem a pivem – volná diskuse na téma IoT, CNC, svobodný software, hardware a další hračky.
Přidat komentář
9.9.2018 14:15 /Redakce Linuxsoft.cz 20.9.2018 proběhne v pražském Kongresovém centru Vavruška konference Mobilní řešení pro business.
Návštěvníci si vyslechnou mimo jiné přednášky na témata: Nejdůležitější aktuální trendy v oblasti mobilních technologií, správa a zabezpečení mobilních zařízení ve firmách, jak mobilně přistupovat k informačnímu systému firmy, kdy se vyplatí používat odolná mobilní zařízení nebo jak zabezpečit mobilní komunikaci.
Přidat komentář
12.8.2018 16:58 /František Kučera Srpnový pražský sraz spolku OpenAlt se koná ve čtvrtek – 16. 8. 2018 od 19:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát jsou tématem srazu databáze prezentaci svého projektu si pro nás připravil Standa Dzik. Dále bude prostor, abychom probrali nápady na využití IoT a sítě The Things Network, případně další témata.
Přidat komentář
16.7.2018 1:05 /František Kučera Červencový pražský sraz spolku OpenAlt se koná již tento čtvrtek – 19. 7. 2018 od 18:00 v Kavárně Ideál (Sázavská 30, Praha), kde máme rezervovaný salonek. Tentokrát bude přednáška na téma: automatizační nástroj Ansible, kterou si připravil Martin Vicián.
Přidat komentář
Více ...
Přidat zprávičku
 Poslední diskuze
31.7.2023 14:13 /
Linda Graham iPhone Services
30.11.2022 9:32 /
Kyle McDermott Hosting download unavailable
13.12.2018 10:57 /
Jan Mareš Re: zavináč
2.12.2018 23:56 /
František Kučera Sraz
5.10.2018 17:12 /
Jakub Kuljovsky Re: Jaký kurz a software by jste doporučili pro začínajcího kodéra?
Více ...
|