× Aktuálně z oboru

Programátoři po celém světě dnes slaví Den programátorů [ clanek/2018091300-programatori-po-celem-svete-dnes-slavi-den-programatoru/ ]
Celá zprávička [ clanek/2018091300-programatori-po-celem-svete-dnes-slavi-den-programatoru/ ]

Jednoduchý odesílací formulář

[ http://programujte.com/profil/161-ondrej-satera/ ]Google [ ?rel=author ]       [ http://programujte.com/profil/118-zdenek-lehocky/ ]Google [ ?rel=author ]       19. 6. 2006       63 209×

Dnes se dozvíte jak vytvořit jednoduchý formulář, který budete moct odeslat na mail.

Pokud potřebujete získat nějaké informace od návštěvníků vašich stránek, bude se vám hodit tenhle návod na jednoduchý formulář s možností odeslání. Nejdřív si musíte ujasnit, co vlastně chcete zjistit. V tomhle návodu budeme zjišťovat jméno, příjmení a mail návštěvníka. Na formátování formulářů jsou asi nejlepší tabulky, pokud neovládáte dostatečně CSS. Začneme tím, že si vytvoříme formulář:

<form action="send.php" method="post">
  <table width="200" border="0">
    <tr>
      <td width="60">Jméno:</td>
      <td><input name="jmeno" type="text"></td>
    </tr>
    <tr>
      <td width="60">Příjmení:</td>
      <td><input name="prijmeni" type="text"></td>
    </tr>
    <tr>
      <td width="60">Tvůj mail:</td>
      <td><input name="email" type="text"></td>
    </tr>
    <tr>
      <td colspan="2" align="center"><input type="submit" class="button" value="Odeslat"><input type="reset" value="Vymazat"></td>
    </tr>
  </table>
</form>

Takto to bude ve výsledku vypadat:

Jméno:
Příjmení:
Tvůj mail:

Tak, formulář máme. Můžete si ho předělat podle svého vkusu (barevné pozadí, jiné rozložení prvků…). Teď přejdeme k odeslání formuláře.

Každá položka formuláře (<input…>) má parametr name. Ten je velmi důležitý v dalším zpracování formuláře. Žádné jméno se nesmí ve formuláři opakovat! Další důležitý prvek formuláře je tag <form>. Ten vymezuje oblast, ze které se bude odesílat.

<form action="adresa k odesilacímu skriptu" method="způsob odeslání">
.
.
.
</form>

Způsoby odeslání jsou dva:

  • GET – data z formuláře budou vidět v–adresním řádku
  • POST – data se přesunou „skrytě“

Stránku s formulářem si uložte s koncovkou *.php. Teď si vytvoříme onen odesílací skript. Bude se jmenovat send.php a musí být uložený ve stejném adresáři jako soubor s formulářem. Tag form teď bude vypadat takhle:

<form action="send.php" method="POST">

Kód skriptu bude vypadat takhle:

<?php

$to = "mail@mail.cz";
$extra = "From: $email\r\nReply-To: $email\r\n";
$subject = "Vzkaz od ".$jmeno."";
$mess = "Jméno: ".$jmeno."\nPrijmeni:".$prijmeni."\nEmail: ".$email." \n";

mail ($to, $subject, $mess, $extra);

?>

Teď si ho rozebereme hezky po pořádku:

  • $to = "mail@mail.cz"; – adresa, na kterou chcete mail odeslat
  • $extra = "From: $email\r\nReply-To: $email\r\n"; – extra parametry u mailu
  • $subject = "Vzkaz od ".$jmeno.""; – obsah „Předmětu“ u mailu (neměňte, pokud neznáte PHP)
  • $mess = "Jméno: ".$jmeno."\nPrijmeni:".$prijmeni."\nEmail: ".$email." \n"; – obsah zprávy
  • mail ($to, $subject, $mess, $extra); – odeslání mailu

Obsah zprávy je poměrně důležitá část, a proto jí budu věnovat větší prostor:

$mess = "Jméno: ".$jmeno."\nPrijmeni:".$prijmeni."\nEmail: ".$email." \n";

$mess je název proměnné a nedoporučuju ji měnit. Pak následuje vypis toho, co odesíláme. Zapisuje se to takhle:
"Jméno:" – tím bude mail začínat, je to uvozující slovo
.$jmeno. – tady je uloženo jméno; je v téhle proměnné, protože políčko se jménem se jmenovalo jmeno (kdyby se jmenovalo třeba poleno, tak se uloží do $poleno)
\n – odřádkování (něco jako tag <br>)

Teď už víte, jak přidat další políčka do formuláře, stačí jen nastavit atribut name a ten pak použít jako jméno proměnné. Důležitá věc v PHP je středník na konci každého řádku a taky ty tečky kolem proměnných. Uvozovky vymezují oblast, která se vypíše.

Dám vám ještě jednu radu, pokud chcete po odeslání formuláře uživatele někam odkázat stačí přidat za ukončujcí tag skriptu (?>) tenhle kód:

<html><head>
<META HTTP-EQUIV="Refresh" CONTENT="0; URL=stranka.php">
</head></html>

Místo stranka.php zadejte adresu, kam chcete přesměrovat.

Toť vše. Doufám, že jste to pochopili, a pokud ne, klidně se zeptejte v komentářích.


Článek stažen z webu Programujte.com [ http://programujte.com/clanek/2006061702-jednoduchy-odesilaci-formular/ ].