Dynamický web
| Název školy | Vyšší odborná škola obalové techniky a Střední škola, Štětí, příspěvková organizace | ||
| Adresa školky | Kostelní 134, 411 08 Štětí | ||
| IČ | 46773509 | ||
| Název operačního programu | OP Vzdělávání pro konkurenceschopnost | ||
| Registrační číslo | CZ.1.07/1.5.00/34.1006 | ||
| Označení vzdělávacího materiálu | |||
| Název tématické oblasti (sady) | Programování | ||
| Název materiálu | PHP - cvičení V | ||
| Anotace | |||
| Autor | Jazyk | ||
| Očekávaný výstup | |||
| Klíčová slova | |||
| Druh výukového zdroje | Věková skupina žáků | ||
| Typ interakce | Ročník | ||
| Speciální vzdělávací potřeby | žádné | ||
| Zhotoveno, (datum/období) | Celková velikost | ||
Obsah
Odeslání formuláře
Oživte formulář z předchozího cvičení tak, že bude odesílat data skriptu: responder.php.
<form action="responder.php" method="post"> <h2>Contactel formium</h2> <table> <tr> <td><label>Jméno</label></td> <td><input type="text" name="" value=""></td> </tr> ...
Skript pak přijme data metodou POST a uloží je do databáze - připravte proto odpovídající tabulku v databázi.
Tabulka
řešení
CREATE TABLE `responder` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, `name` VARCHAR(64) NOT NULL, `email` VARCHAR(128) NOT NULL, `immodium` VARCHAR(32) NOT NULL, `duis` tinyint NOT NULL DEFAULT '0', `zprava` text NOT NULL );
Příjem a uložení
Vše se odehrává v souboru responder.php
<?php $my = new mysqli("host", "user", "password", "schema"); $my->set_charset("utf8"); // chybí jakákoli validace!!! $name = $_POST["name"]; $email = $_POST["email"]; $immodium = $_POST["immodium"]; $duis = $_POST["duis"]; $zprava = $_POST["zprava"]; $res = $my->query("INSERT INTO `responder` (`name`, `email`, `immodium`, `duis`, `zprava`) VALUES('$name', '$email', '$immodium', '$duis', '$zprava')"); if ($res) { // přesměrování } else { echo $my->error; }
Přesměrování
Po uložení formuláře dojde k přesměrování zpět na stránku s formulářem, kde se zobrazí informace o úspěchu uložení dat.
Nejprve řešení pro responder.php:
<?php if ($res) { header("location: adipisicing.php?status=0"); }
Stránku s formulářem bude ovšem teď předělat do PHP (stačí přejmenovat soubor).
Teprve pak bude možné přijmout parametr status přes metodu GET.
<?php if (isset($_GET["status"])) { if ($_GET["status"] == 0) { echo "<p>Formulář byl úspěšně uložen.</p>"; } }

