Chcete mít podobný design? Prodávám Thesis pro WordPress

Jak vytvořit E-mailový formulář

Pátek, 31. Říjen 2008 · 15 comentářů

Věc, která se určitě hodí. E-mailový formulář. Slouží ke komunikaci uživatele a majitele webu aniž by majitel webu musel zveřejňovat svůj e-mail. A jak jej vytvořit? To si ukážeme v dnešním článku.

Co potřebujeme?

Bez zbytečných keců se pustíme rovnou do práce. Na této stránce se můžete podívat na ukázku jak takový e-mailový formulář vypadá. A co k jeho funkčnosti potřebujeme? Jediné co potřebujete je podpora PHP u Vašeho hostingu. Pak jen stačí nahrát soubory na web a máte hotovo. Pro začátečníky bych rád upozornil, že všechny tyto soubory musí mít koncovku .php jinak Vám e-mailový formulář nebude fungovat.

E-mailový formulář – HTML kód

E-mailový formulář je rozdělen na 2 soubory. První (index.php), který určuje vzhled a druhý (poslat.php), který zpracovává odeslané informace a doručí Váš e-mail.

index.php (vložte kamkoli mezi tagy <body> a </body>)
<table style="height:100%;" width="100%" cellSpacing="0" cellPadding="0" border="0">
<tr><td align="center" valign="top">
<form action="poslat.php" method="post">
<table width="200" border="0" class="text">
<tr><td width="50"><strong>J</strong>méno:</td><td><input name="jmeno" accesskey="j" type="text"/></td></tr>
<tr><td width="50"><strong>E</strong>mail:</td><td><input name="email" accesskey="e" type="text"/></td></tr>
<tr><td width="50"><strong>W</strong>eb:</td><td><input name="web" accesskey="w"  type="text" value="http://"/></td></tr>
<tr><td width="50" valign="top"><strong>T</strong>ext:</td><td><textarea name="text" accesskey="t"  rows="5" cols="25"></textarea></td></tr>
<tr><td colspan="2" align="center"><input type="submit" class="button" value="Odeslat"/> <input type="reset" value="Vymazat"/></td></tr>
</table>
</form>
</td></tr>
</table>
poslat.php (kompletní zdrojový kód)
<?php
$to = "vas@email.cz";
$extra = "From: $email\r\nReply-To: $email\r\n";
$subject = "Vzkaz od ".$jmeno."";
$mess = "Jméno: ".$jmeno."\nEmail: ".$email."\n Web: ".$web."\nText:\n".$text."";
mail ($to, $subject, $mess, $extra);
?>
<html><head>
<meta http-equiv="refresh" content="0; url=index.php">
<title>Přesměrování ...</title>
</head><body></body></html>

Existuje mnoho variant vytvoření e-mailového formuláře. Vybral jsem ten nejjednodušší. Můžete použít tento způsob nebo si jej kompletně přetvořit podle svého. To už je na Vás…

↓ Stáhnout kompletní e-mailový formulář

Kompletní výsledek ke stažení (1,05 kB).

{ 15 komentáře… přečtěte si je níže nebo přidejte vlastní }

1 Ivan Šouta Listopad 15, 2008 v 19:28

Ahoj,
už se dlouho trápím s posíláním formulářů a ajta najednou takový pěkný příklad. Díky.
Ivan.

Odpovědět

2 Tomáš Erlich Listopad 15, 2008 v 20:23

Ahoj,
děkuji Vám. Jsem rád, když můžu pomáhat lidem. Pokud budete mít zájem plánuji napsat článek pro posílání e-mailů s anti-spamovou ochranou a s možností napsaní volitelného E-mailu doručitele. Takže z tohoto formuláře budete moci psát komu budete chtít.

Pokud budete mít zájem můžete mi napsat na můj E-mail, nebo počkat zhruba do března kdy bude na tomto blogu.

Odpovědět

3 bob Leden 3, 2009 v 13:31

Hi nice site. Thanx. Peace.

Odpovědět

4 Tomáš Erlich Leden 6, 2009 v 18:18

Hello.
I am glad for your comment. You made me happy. You are from Saudi Arabia? This is far from the Czech Republic. We are far apart over 1 thousand miles.
Interesting … :)

Thank you for your comment.
Have a good day.

Odpovědět

5 veronika Březen 23, 2009 v 8:41

Ahoj,
děkuji za rady, jsem zoufalý začátečník a tohle je pěkný a jasný způsob, ale pořád mi nějak nechce odesílat proměnné … může to být nastavením serveru? na mail mi přijdou vždy jen nadpisy..:-(
děkuji.

Odpovědět

6 Tomáš Erlich Březen 23, 2009 v 19:33

Já děkuji za komentář a tvůj čas. Chápu, že ne každý má čas hledat hodiny vhodný formulář. A tak se snažím psát všechno jasně a stručně. Žádné zbytečně řeči kolem. Co se týče tvého problému. Zkus více mailů. Vyzkoušej poslat mail na Gmail, Seznam, Centrum, Yahoo. Pokud bude stejný problém všude. Bude chyba na straně serveru. Jestli si nebudete vědět rady vyzkoušejte novější způsob. Je popsán v mém novém článku, který se jmenuje „E-mailový formulář s antispamovou ochranou“. Ať se daří :o)

Odpovědět

7 pfff Květen 30, 2009 v 15:43

Ahoj. Použil jsem tvůj email. form., ale nejde mi. Odešlu to a na email nic nepřijde. Takže asi použiju svůj vlastni :D … ale zajímalo by mě proč to nejde.

Odpovědět

8 Tomáš Erlich Květen 31, 2009 v 15:43

Formulář je funkční. Zkoušel jsem jej. Odesílá maily spolehlivě. Testoval jsem Gmail, Centrum a Seznam. Chyba bude s největší pravděpodobnosti na tvé straně. Může být i na straně serveru, ale o tom pochybuji.

Odpovědět

9 Zuzana Červenec 1, 2009 v 18:16

Ahoj,
dakujem tiez za dobre rady, ako zena sa v tom teda moc nevyznam :-) ale urobila som vsetko ako si povedal, e-mail prisiel, ale tiez len nadpisy bez textu, ktory som napisala. Ten dokument poslat.php je docela kratky, ked som si ho tak citala v notepade, myslis, ze by si nam laikom mohol vysvetlit, co vlastne ktory prikaz znamena? Dakujem a prajem vsetko dobre.
Zuzana

Odpovědět

10 Tomáš Erlich Červenec 3, 2009 v 12:47

Ahoj,
znova jsem vyzkoušel odeslat mail z testovací stránky carl114.gigafun.cz/download/soubory…, ale všechno šlo. Asi půjde o špatné nastavení u tebe na serveru. Pokud rozbalíš balík na web – měl by hned jít. Těžko říct, proč ti to nejde.

Jak koukám, druhý formulář ti již jde, takže hodně štěstí.

Odpovědět

11 Martin Srpen 29, 2009 v 11:00

Jakou jsem mohl udělat chybu? V řádku $to = „vas@email.cz“; jsem jen změnil email na svůj a soubor uložil. Cely skript pak „funguje“ tak, že mi na můj mail chodí čtyři pod sebou napsaná slova… Jméno: Email: Web: Text:

Odpovědět

12 Tomáš Erlich Srpen 29, 2009 v 18:48

Takovou funkci to také má. V mailů to vypíše jméno, mail a další. Pokud to chceš jinak, budeš si to muset předělat v souboru sám. Čerpat můžeš například v článku E-mailový formulář s antispamovou ochranou zde na webu.

Odpovědět

13 Jan Kudla Únor 8, 2010 v 14:20

Ahoj, pěkný návod. Mi všechni funguje až na české znaky. Prostě diakritika nejede. Mail přijde a místo znaků s diakritikou jsou patvary. Nevíš čím to je?

Odpovědět

14 Tomáš Erlich Únor 10, 2010 v 13:23

Špatným kódováním. Tuším, že na Seznam se to odesílá bez háčků a čárek.

Odpovědět

15 Drak654 Květen 11, 2010 v 10:34

Super návod, ale ešte by som dodal do formulára:

<input type="text" name="ip" value="">

Takto sa dá zistiť, ak by ste náhodou potrebovali IP odosielateľa.

Odpovědět

Vložit komentář

Předchozí příspěvek:

Následující příspěvek: