

Takhle může vypadat formulář HTML s odesláním scriptu v PHP.

Takhle může vypadat formulář HTML s odesláním scriptu v PHP.
Skript, uváděný pro zpracování dat z formuláře HTML nepočítá tedy, že budeme data ukládat do adresáře cgi-bin na vzdáleném serveru. Vše zpracujeme ve dvou samostatných souborech. Kromě vstupního formulářového souboru formulare.html to bude soubor vysledky.php, který se postará o odeslání dat.
1/ Vstupní formulář HTML
Jen bleskově přejdeme informace o vstupním html formuláři, který nám vytvoří šablonu pro odeslání. Zde stojí za pozornost atribut action. Ten určuje, kam budou data odeslána. Jeho obsahem je URL adresa stránky, která má data zpracovat. Atribut action používá dvě metody. Při použití method GET se - data připojí k adrese URL ( http://www.pc-politika.cz/formular.php?jmenotext=napiste+neco&poslat=OK ) . Jak vidíte vše se objevuje v URL řádku. Takže bezpečnost je diskuzní. Tato metoda je rychlejší, avšakmá jen omezenou délku. Podle mě je výhodnější method POST. Ta odesílá data v samostatném přenosu, navic zabaleném v MIME type, takže jsou šifrována. Je tedy bezpečnější!
formulare3.html (základní zdrojový soubor)
Podívejte se na funkční zdrojový kód tohoto formuláře. Používá metodu POST. Dále v datovém typu jsem použil raději multipart/form-data , který je předepsán pro formuláře odesílající soubory. Může totiž klidně nahradit typ text/plain, určený pro odesílání dat e-mailem. Ve formuláři totiž používám, jak je vidět, odesílání dat pomocí přepínacího pole radio.
Ještě bych se zastavil u výběrových přepínacích tlačítek/kroužků, které umožňují uživateli vybrat ve formuláři HTML z více voleb/možností. Tato přepínací tlačítka do formuláře dáváme, jako ostatně text, prostřednictvím elementu INPUT. Provedeme to pomocí atributu type=radio. Tato přepínací tlačítka navazují na jednotlivé varianty/možnosti ve výběru, ale POZOR musíme zde nastavit atribut name na stejné hodnoty!! A to není všechno, ještě musíme dodržet, aby další atribut value měl u každé možnosti jedinečnou hodnotu. Jinak nebudou přepínací výběrová tlačítka správně fungovat.
formulare3.html
K nahlédnutí funkční soubor: formulare3.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" enctype="multipart/form-data"; charset=UTF-8">
<title>Kviz 1, Panters.cz</title>
</head>
<body>
<h3>Kviz č. 1 o ceny Panters</h3>
<p>U každé ze tří otázek klikněte do kroužku <strong> na jednu z možností (a,b,c). Tím označíte svoji vybranou odpověď. Poté vyplňte své jméno/nick, které jste uvedli při registraci na tento web Panters.cz, dále svůj (platný) e-mail. Pro kontrolu na SPAM napište součet a klikněte na <strong> Odeslat</strong>.</p>
<fieldset>
<form action="vysledky.php" method="POST">
<ul>
<li>
<label>1. Kolik hráčů hraje při zápasech v jedné sestavě?</label><br>
<input type="radio" name="ot1" value="5 hráčů" />
a/ 5 hráčů<br />
<input type="radio" name="ot1" value="20 hráčů" />
b/ 20 hráčů<br />
<input type="radio" name="ot1" value="1 hráč" />
c/ 1 hráč</li>
<li>
<label>Jméno/nick</label>
<input name="jmeno" />
</li>
<li>
<label>Tvůj e-mail</label>
<input name="email" />
</li>
<li>
<label>1+10 = <span class="small">Vyplň součet (kontrola SPAM)</span></label>
<input name="spam" />
</li>
>li>
<label> Dotaz ke kvizu </label>
<textarea name="zprava" cols="40" rows="10"></textarea>
</li>
<li>
<label for="submit"> </label>
<button class="button" type="submit" value="Odeslat"Odeslat</button>
</li></ul></form>
</fieldset>
</body>
</html>
2/ Odesílací skript PHP
Následuje soubor pro odeslání formuláře, zde nazvaný vysledky.php. Jde o soubor PHP, který nádherným způsobem skriptu pehapéčka (vazbou "dolarů"), určí co se má zobrazit v konečném e-mailu u adresáta. Pouze doplníte svoji e-mailovou adresu, či adresu, na který e-mail se mají data posílat. Krátce, jednoduše řečeno - umožňuje to zasílání dotazu přes html rozhraní, takže po odeslání se spustí mail klient (poštovní klient Outlook a další) a začne odesílat zprávu na určený mail. Toto bohužel, hodně lidem nefunguje, jak jsem zjišťoval na různých fórech. Viz. bezvýchodná diskuze např. zde: FórumZive.cz. Zde ovšem máte stoprocentní skript, který vám odeslání zajistí.
vysledky.php (skript na odeslání formuláře HTML)
vysledky.php
K nahlédnutí funkční soubor: vysledky.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" enctype="multipart/form-data"; charset=UTF-8">
<title>Odesílání formuláře e-mailem</title>
</head>
<body>
<h3>Odesílání formuláře</h3>
<?
$ot1 = $_POST['ot1'];
$odpoved2 = $_POST['odpoved2'];
$odpoved3 = $_POST['odpoved3'];
$jmeno = $_POST['jmeno'];
$email = $_POST['email'];
$zprava = $_POST['zprava'];
$spam = $_POST['spam'];
if ($jmeno!="" and $email!="") {
Mail("váš@email.cz", "Kviz1, Panters",
"<strong>Jméno člena klubu: </strong>". $jmeno .
"<br><strong>Odpověď č.1: </strong>". $ot1 .
"<br><strong>Odpověď č.2: </strong>". $odpoved2 .
"<br><strong>Odpověď č.3: </strong>". $odpoved3 ."<br>".
"<br><em>Dotaz ke kvízu</em>" .$zprava,
"From:".$email."\nContent-type: text/html;charset=UTF-8\n");
echo "Váš formulář byl úspěšně odeslán. Děkujeme. <br> Zpět na: <a href='http://www.vaš_web.cz'>Váš_web.cz</a>";
}
else {
echo "Váš formulář se nepodařilo odeslat; pravděpodobně jste nevyplnili všechny údaje.";
}
?>
</body>
</html>
| Název produktu | Formulář HTML - Kviz1 |
| Výrobce/dodavatel | PC-politika.cz/formulare3.html |
| Download | Formular - Kviz1 |
| Licence | Freeware |
| Operační systém | Windows 7, Vista-32, Vista-64, Win Me, XP, 2000 |
| Poslední aktualizace | 05/2011 |
| Hodnocení: | 8/10 |
· HTML: Nový programovací jazyk Dart
· HTML: formuláře; odesílání dat skriptem PHP
· HTML: Delphi pro rok 2011
· HTML 5: Apple nové tagy; fungují jen v Safari [4]
· XHTML: Propojování CSS stylů
· HTML, XHTML: Přesměrování bez skriptu, jednoduše
· HTML 5: Nová specifikace HTML5, a co XHTML? [3]
· HTML: Validátor W3C je(není) směrodatný!
· XML: Nezapomínat na obal!
· XHTML: RSS a problém, samozřejmě s IE a Operou! (3)
· XHTML: RSS a problém, samozřejmě s IE a Operou! (2)
| URL: | |
| BB-Code: | |
| HTML: | |
| Sdílet: |

Postupuju podle Vás.OK!

