Jednoduchý formulář a jeho zpracování (2)

V minulé kapitole jsme si vysvětlili, jak se údaje z formuláře dostanou do skriptu, který bude vědět, co s nimi. Tento skript si nyní napíšeme - v našem příkladu budeme chtít údaje trošku ověřit, vypsat a poslat mailem.

Zpracování odeslaných dat

Skript pojmenujeme "zpracovat.php", což je název, který je uveden v našem příkladu ve formuláři. Jak jsme si řekli, budou vyplněné údaje k dispozici v poli $_POST (protože jsme v našem případě použili metodu POST). Pokud jsme skript skutečně zavolali tím, že jsme vyplnili náš formulář, předáváme také stiskem tlačítka proměnnou $_POST['odeslano'] s hodnotou, uvedenou jako value ve formuláři u tlačítka. Na začátku jen ověříme, jestli skutečně jsou v poli $_POST naše hodnoty; můžeme na to právě použít tuhle hodnotu tlačítka (nebo kteroukoli jinou):

Celý skript ošetříme touhle podmínkou:

<?php
if isset($_POST['odeslano']) {
// pokud existuje proměnná $_POST['odeslano']
// sem vložíme všechny následující příkazy
}

Ostatní hodnoty si teď uložíme do jednodušeji pojmenovaných proměnných:

$odesilatel = $_POST['odesilatel'];
$zprava = $_POST['zprava'];

Teď bychom se mohli podívat, jestli opravdu dotyčný nějakou zprávu napsal. Pokud ne, asi nic nikam posílat nebudeme. (Dvě lomítka za sebou označují začátek jednořádkového komentáře, napsala jsem vám tam "překlad" skriptu do češtiny.)

if ($zprava=="") { //pokud v proměnné $zprava není žádný znak
echo "Nebylo vyplněno pole ZPRÁVA."; // vypíše se chybová hláška
} else { // v opačném případě
// tady doplníme skript na posílání, viz dále
}

Pokud skutečně nějaká zpráva byla vyplněna, a na jméně odesílatele nám až tak nezáleží, můžeme zprávu odeslat, jo a taky jsme to zároveň chtěli vypsat.

Skript bude trochu zjednodušený, i když funkční; na webu najdete určitě daleko rozvinutější skripty, ve kterých se - aspoň doufám - teď už třeba líp vyznáte a budete si je moci dle potřeby přizpůsobit, a časem napsat vlastní.

echo "Zadali jste tuto zprávu:<br />".$zprava;
echo "<br />Odesílatel: ".$odesilatel;
$odeslani = mail("prijemcuv@email.cz","Vzkaz z webu od: ".$odesilatel,$zprava);
if ($odeslani) {
// pokud se mail úspěšně odeslal
echo "Mail byl odeslán.";
}
?>

Funkce mail() zajistí odeslání. První položka v závorce je adresa, na kterou se mail má odeslat; druhá bude použita jako předmět mailu (tady jsme spojili pevně zadaný text se zadaným odesílatelem), třetí pak tvoří samotný text e-mailu.

Celý výsledný kód skriptu "zpracovat.php":

<?php
if (isset($_POST['odeslano'])) {
   $odesilatel = $_POST['odesilatel'];
   $zprava = $_POST['zprava'];
   if ($zprava=="") { //pokud v proměnné $zprava není žádný znak
      echo "Nebylo vyplněno pole ZPRÁVA."; // vypíše se chybová hláška
   } else { // v opačném případě
      echo "Zadali jste tuto zprávu:<br />".$zprava;
      echo "<br />Odesílatel: ".$odesilatel;
      $odeslani = mail("prijemcuv@email.cz", "Vzkaz z webu od: ".$odesilatel, $zprava);
      if ($odeslani) { // pokud se mail úspěšně odeslal
         echo "<br />Mail byl odeslán.";
      }
   }
}
?>

A ještě ukázka - trochu teoretická, žádný mail se doopravdy nepošle ;-).


Firefox: Bezpečnější, rychlejší, lepší
píše -dis- bb(zavináč)choltice.eu