phpFormGenerator: naklikejte si webové formuláře v PHP

Tvoříte webové stránky a nechce se vám zdržovat s tak nudnou záležitostí, jako je vytvoření webového formuláře? Není divu, koho by bavilo donekonečna vypisovat nebo kopírovat skoro stejné části kódu. Je tu však možnost celý formulář naklikat, a to včetně vzhledu.

Reklama

Pokud tvoříte stránku s webovým formulářem, vřele doporučuji použít nějaký vizuální editor, například Microsoft Expression Web nebo Adobe Dreamweaver. Webové formuláře si však můžete nechat vytvořit i pomocí speciálních online aplikací. Přiznám se, že jich moc neznám. Před rokem jsem psal o pForm, jejíž nevýhodou byla nutnost zaplatit poplatek v případě, že jste k formuláři chtěli doplnit i funkcionalitu, jako je třeba odeslání dat na e-mailovou adresu.

Dnes vám představím phpFormGenerator. I tento online nástroj dovede vytvářet webové formuláře. Co je však příjemné, umí vygenerovat i potřebný programový kód, takže vám stačí jen formulář vzít a umístit jej někde na webu. Podle toho, jak si naklikáte jeho vlastnosti, mohou být data z formuláře ukládána někam do databáze nebo odesílána na vaši e-mailovou adresu.

Tvorba webového formuláře pomocí phpFormGenerator

Tvorba webového formuláře pomocí phpFormGenerator

Jak vytvořit webový formulář?

Na úvodní stránce nástroje phpFormGenerator klepněte na odkaz Create a form. Vyberte si z celé řady existujících předloh, nebo zadejte nový název formuláře do políčka Form name a klepněte na tlačítko Start.

Nyní se pusťte do úprav formuláře. Tlačítkem se zápisníkem si zobrazte editaci popisku formuláře, vyplňte text, klepněte na tlačítko Update a po informaci o tom, že byl formulář aktualizován, pokračujte tlačítkem Continue.

Předtím, než přidáte políčka do formuláře, klepněte na tlačítko Add a page a přidejte stránku. Teprve po klepnutí na ni se zobrazí samotný vzhled formuláře. V nabídce nalevo si vyberte jednotlivá formulářová políčka, klepnutím je vložte do formuláře a nastavte jejich vlastnosti. Úpravu potvrďte tlačítkem Click here when done.

Po dokončení úprav políček se vraťte na začátek odkazem Form home. V sekci Delivery settings vyberte způsob ukládání dat z formuláře. Stačí-li vám jejich odeslání na e-mail, pak jej vyberte z nabídky a vpravo zadejte adresu, kam bude obsah formuláře doručen.

Tvorba webového formuláře pomocí phpFormGenerator

Tvorba webového formuláře pomocí phpFormGenerator

Dále se rozhodněte, zda má formulář obsahovat captchu - ochranu proti spamu. Nastavte případné hlášení zobrazené po odeslání formuláře, a adresu, kam může být uživatel přesměrován. Poslední částí je úprava vzhledu formuláře - opět stačí naklikat pomocí barevné palety, pod kterou je náhled na ukázkový formulář.

Jakmile máte formulář dokončen, posuňte se úplně na konec stránky a stáhněte jej do počítače odkazem Zip file. Nyní už jen stačí, abyste si jej přizpůsobili pro svou aplikaci nebo jej tak, jak je, zkopírovali někam na web.

Povedená pomůcka pro tvorbu formulářů

Musím říct, že phpFormGenerator je v současné verzi (3.0 beta) velmi povedená pomůcka pro tvorbu webových formulářů obsluhovaných pomocí PHP. Ve staženém balíčku najdete kromě PHP a HTML souborů i kaskádové styly, obrázky s doplňující grafikou, JavaScriptové soubory pro případné kalendáříky ve formuláři a dokonce i TTF soubor s použitým písmem.

Plusem je samozřejmě i to, že phpFormGenerator je úplně zdarma. Využijete jej?

Reklama

Komentáře

Zdravím, docela by mne zajímalo, jestli se formulář generovaný tímto programem dá použít v Drupalu. Nejsem zkušená a zatím jsem ještě v Drupalu formulář nevytvářela a popravdě to ani neumím. Proto mne zaujala tato forma. Zkusmo jsem si vyrobila formulář a teď nevím jak ho mám dát do Drupalu. Má to na mne až moc všelijakých složek a stránek a hlavně samej javascript. Nemohl byste prosím Vás napsat návod pro ty lamy jako jsem já? Děkuji. :) l.lenek

Blbost, proč bych to dělala tak složitě. Zkusila jsem webform a mám formulář hotový. Omlouvám se za tak hloupý dotaz. :)
l.lenek

Jasně, modul Webform to řeší :) Asi k němu připravím příští video.

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

To je dobrý nápad, určitě byste potěšil mnoho lidí. A mne taky protože je tam pár podivností které nechápu. Ale jak jsem Vás měla možnost poznat budete určitě používat i modul Wiews a to je mi teď momentálně k ničemu. Pokud můžu poprosit, kdybyste mohl udělat video i jen na samotný modul webform. :) Děkuji. l.lenek

U návodu na Webform bych Views nezmiňoval To jste mě špatně odhadla ;-)

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Promiňte, už mlčím... :) l.lenek

jak je to s češtinou v příchozím emailu ???
pomůcka je o dobrá, avšak nevím si rady s češtinou

Zkoušel jsem to, e-mail s češtinou dorazí nepoškozený. Ale můžete jej zkusit přinutit, aby byl odeslán v UTF-8.

Najděte si soubor processor.php, kde by měla být funkce pro zpracování formuláře pro odeslání do e-mailu. Čili funkce mail(), její konec je:

 powered by phpFormGenerator.
”);

Před začátek funkce doplňte:

$headers = “Content-type: text/plain; charset=utf-8\n”;
$headers .= ‘From:nejakyodesilatel@email.cz’; //toto není nutné

A na konec funkce mail(), tj. mezi závorku a uvozovky, doplňte toto:

$headers

Čili výsledek v souboru processor.php bude například takovýto:

<?php

$where_form_is=”http://”.$_SERVER[‘SERVER_NAME’].strrev(strstr(strrev($_SERVER[‘PHP_SELF’]),”/”));

$headers = “Content-type: text/plain; charset=utf-8\n”;

mail(“jan.polzer@maxiorel.cz”,”phpFormGenerator - Form submission”,”Form data:

         username: ” . $_POST[‘field_1’] . ”

 powered by phpFormGenerator.
”, $headers);

include(“confirm.html”);

?>

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Super - tak to je přesně to co jsem potřeboval.
Už to fungje jak má ;)
Mnohokráte děkuji za rychlou a dobrou pomoc.
Vítek

Rádo se stalo :)

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Dobrý den, mam podobný problém: V první fázi bylo v příchozím mailu místo diakritiky jen spousta otazníků. Po doplnění $headers = "Content-type: text/plain; charset=utf-8\n"; do proccesor.php již zmizeli otazníky ale stále se špatně zobrazují vybrané položky z formuláře.

Příklad v první fázi:
Barevnost dokumentu a zp?sob tisku : plnobarevn?? oboustrann?? tisk (4/4)

Příklad aktuálně: Barevnost dokumentu a způsob tisku : Ä�ernobĂ­lĂ˝ jednostrannĂ˝ tisk (1/0)

Nevím jak ještě doplnit proccesor.php aby se vše zobrazovalo opravdu dobře.

Děkuji za rady jak na to.

Já bych zkusil ověřit, že všechny soubory (tedy formuláře i to php) jsou také v kódování UTF-8. Případně bych je přes PSPad přeuložil v tomto kódování.

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

dobrý večer,
řeším podobný problém s češtinou

hází mi to následující patvary:
JmĂŠno:: s
Příjmení:: s
Ulice::
Město/PSČ::
Telefon (nutnĂŠ):: s
Doba, kdy jste na telefonu k zastiĹženĂ­::
Email::
Field question 1: 20
Věk::
Výťka::

zkusila jsem dle vašich rad přidat do php příslušné úpravy, ale problem jsem neodstranila

mohu poslat soubor php k nahlednuti, kde delam chybu?
dekuji
M.Jiruskova

lze k tomuto formuláři dodělat funkci zpětného emailu
myslím, aby se formulář odeslal i tomu kdo ho vyplnil (na základě vložení jeho adresy do formu)

Jasně. Stačí vzít tu funkci mail, zkopírovat ji tam, aby byla dvakrát. Jednu necháte v původní podobě, ve druhé upravíte adresáta. Takže pro příklad, který jsem uvedl výše, by zduplikovaná funkce vypadala nějak takto:

mail($_POST[‘field_2’],”Potvrzení formuláře”,”Form data:

         username: ” . $_POST[‘field_1’] . ”

 powered by phpFormGenerator.
”, $headers);

Předpokládá to, že e-mail člověka je vyplněn ve druhém políčku formuláře.

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Děkuji

Dobrý den, zkusil jsem funkci: mail($_POST['field_2'], vložit do processor.php a funguje.Samostatná pevně nastavená email adresa funguje také (např.mujemail@seznam.cz). Bohužel, ale funkce: mail($_POST['field_2'], nefunguje v kombinaci s pevně nastavenou email adresou k zasílání viz.níže např:

<?php
$where_form_is="http://".$_SERVER['SERVER_NAME'].strrev(strstr(strrev($_SERVER['PHP_SELF']),"/"));
$headers = "Content-type: text/plain; charset=utf-8\n";
mail("vinyl2006@seznam.cz",mail($_POST['field_2'],"Potvrzení formuláře","poptavkovy formular - vinyly.ic.cz","Form data:
username: " . $_POST['field_1'] . " Email: " . $_POST['field_2'] . " Telefon: " . $_POST['field_3'] . " Země: " . $_POST['field_4'] . " Zpráva: " . $_POST['field_5'] . " Jaký je rok?

(Pište číslo): " . $_POST['field_6'] . "mail($_POST['field_2'],"Potvrzení formuláře","Form data: username: " . $_POST['field_1'] . "
powered by phpFormGenerator.
", $headers);
include("confirm.html");
?>

Zkoušel jsem kombinace se středníkem, uvozovkami,měnit pořadí apod., ale bohužel nepomohlo. Díky za reakci předem.

Dobrý den. To je překlep nebo úmysl? Máte funkci mail() zanořenou v jiné mail(). To nemůže fungovat.

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Dobrý den pane Polzer,

díky za odpověd.Zkoušel jsem viz.níže a nefunguje:
Navíc ještě spoustu dalších kombinací, ale nic.

mail("mujemail@seznam.cz","poptavkovy formular - neco.ic.cz");
mail($_POST['field_2'],"poptavkovy formular - neco.ic.cz");"Form data:

Můžu požádat o celý funkční processor.php kód generující zasílání na pevnou i proměnnou adresu současně?Díky předem.

-----------
Níže uvedený je 100 % funkční!!
Zasílá jen bud na pevnou adresu nebo proměnnou-pokud zadám. Nezasílá na obě současně.Uvádím protože v předchozích příspěvcích byly v kodu chyby.

<?php
$where_form_is="http://".$_SERVER['SERVER_NAME'].strrev(strstr(strrev($_SERVER['PHP_SELF']),"/"));
$headers = "Content-type: text/plain; charset=utf-8\n";
mail("mujemail@seznam.cz","poptavkovy formular - zaslano z neco.ic.cz","Form data:
username: " . $_POST['field_1'] . " Email: " . $_POST['field_2'] . " Telefon: " . $_POST['field_3'] . " Země: " . $_POST['field_4'] . " Zpráva: " . $_POST['field_5'] . " Jaký je rok? (Pište číslo): " . $_POST['field_6'] . "
powered by phpFormGenerator.
", $headers);
include("confirm.html");
?>

Dejte mi se prosím celý vygenerovaný formulář i s těmtio úpravami. Nechce se mi to celé naklikávat. Stáhnu si to, testuju, vyzkouším, odpovím.

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Odesláno na Váš email.Díky.

Dobrý den, nevím co dělám špatně, ale vytvořený formulář mi na email nedorazí. Zkoušel jsem seznam a gmail. Ani na jeden nic nepřišlo. Vše vyplním správně, po kliknutí na "Submit" se mi zobrazí potvrzující stránka, ale v emailu nic. Tak nevím. S php začínám, tak se omlouvám jestli to bude nějaká banalita.
Předem děkuji za odpověď.

Je mi líto, ale z takového popisu nikdo nepozná, co děláte špatně :-(

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Děkuji mnohokrát za Vaši bleskovou odpověď. Již jsem to vyřešil, bylo to v poskytovateli hostingu. Používal jsem PHP5.cz a odtud se mi to nedařilo. Teď už je vše OK.

Prosím o radu
Chtěl bych udělat formulář který bude mít cca 3 rozbalovací nabídky, které spolu budou propojené.
Jako výchozí je možno vybírat z první nabídky a další dvě jsou zašedlé.
Až vyberu první, načtou se mi v závislosti na výběru v první nabídce data do druhé nabídky a po výběru druhé se mi načte poslední rozbalovací nabídka.
Data se budou v následující nabídce vždy měnit v závislosti na té předchozí.
Je na to nějaký lehký fígl, či je potřeba do skriptu hodně zasahovat.
Popř. Nebyl by někde příklad ke stažení.
Děkuji

Asi bych to řešil JavaScriptem, ale zda to jde naklikat, netuším a bohužel ani nemám čas to více zkoumat.

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Dobrý den, díky za supertip na tvorbu formulářů. Chci se zeptat, zda je možné názvy polí vkládat i s diakritikou. Když jsem to udělal, tak mi FormGenerator české znaky zmršil ..... Díky za odpověd.

Tak tento problém vyřešen. Měl jsem na stránce špatné kódování. Je tu ještě jeno ale ......Vyplněná pole formuláře mi do mailu příjdou se správnou diakritikou, ale názvy polí se mi v emailu zobrazují s paznaky ....
Příklad:
Form data:

Jm??no a p????jmen??: Pepa Nováček
Datum narozen??: 15.08.2008

nevíte kde bych mohl mít chybu?
Díky

Otevřete všechny soubory v PSPadu a uložte je s kódováním UTF-8. Pak do souboru pro odesílání dat z formuláře doplňte hlavičku mailu pro zpracování znaků do kódování UTF-8. Viz můj komentář z června o něco výše.

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

lidi prosim vas kdyz mam hotovej dormular a stahnu si ho a mam tam asi 11 souvoru vc. slozek tak jak to dam pres ftp na wz.cz??? nevim co mam naopsat do index.html :D:D aby mi to oteviralo ty slozky soubory....

Ale to jsou úplné základy. Doporučuji tomu chvíli věnovat na www.jakpsatweb.cz.

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Dobrý den, můžete mi poradit jak upravit php kód, aby příjemci se zobrazoval v kolonce "od" email odesílatele - aby bylo možné hned odpověďět, děkuji.

Dobrý den. Ve formuláři vytvořte políčko, do kterého dotyčný uvede svůj e-mail. Dejme tomu, že se políčko bude jmenovat “odesilatel”. Pak si kód upravte tak, aby tam bylo

$headers .= ‘From:’.$_POST[‘odesilatel’];

Viz výše.

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Ano, to je ono, děkuji za Váš čas.

Dobrý den, mám dotaz formulář už mám vytvořený i vložený do svých stránek. Po nahrání na web mi formulář dojde na email vpohodě, ale problém nastává v odeslaní se mi objeví okno že formulář byl odeslán a pro návrat klikni na odkaz.Bohužel se mi nedaří odkázat se zpět na stránky.Můžete mi prosím poradit co s tím.Díky

No a co je v tom vygenerovaném kódu? Už se mi to nechce znova vyklikávat.

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Myslíte toto?

  • Zakázkový formulář byl odeslán.

    Klikni

    pro návrat

Nejsem si jistý zda máte na mysli toto.Dál bych měl ještě jeden dotaz. Při vytváření formuláře sem si zadal že chci aby před odesláním formuláře musel dotyčný zadat bezpečnostní kod proti spamu.Při nahrání na web se mi nezobrazí obrázek s kodem. Měl jsem je na webu webzdarma a tam to funguje, ale když jsem je nahrál na ic.cz kod se nezobrazí.Díky za rady

  • Zakázkový formulář byl odeslán.

    Klikni

    pro návrat

Snad už se to zobrazí správně

  • Zakázkový formulář byl odeslán.

Klikni pro návrat

Omlovám swe ale nedaří se mi to sem vložit.

Tak problém už je vyřešen zadával jsem tam jen špatně adresu do htm formuláře..Měl bych ještě jeden dotaz. Při vytváření formuláře sem si zadal že chci aby před odesláním formuláře musel dotyčný zadat bezpečnostní kod proti spamu.Při nahrání na web se mi nezobrazí obrázek s kodem. Měl jsem je na webu webzdarma a tam to funguje, ale když jsem je nahrál na ic.cz kod se nezobrazí.Nevím čím to.Díky za radu

Možná problém s nějakým oprávněním zápisu do složek.

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Dobrý den prosím o radu, po odkliknutí tl. Submit se mi zobrazí info, že stránku nelze zobrazit. Je potřeba nastavovat nějaké servry smptp hesla apod?

Sorry, mám naprd. hosting který nepodporuje php :-( Mě nenapadlo že u placeného hostingu nebude podpora php

Hmmmm. Co je to za hosting?

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Zdravím, chtěl jsem se zeptat. Vytvořil jsem si pomocí toho generátoru formulář, který má více stránek a potřeboval bych do něj umístit zpětné tlačítko. Je to možné? Díky za odpověď.

Proč ne. Tam kde chcete tlačítko mít, muséíte ale ručně vložit do kódu toto: http://javascript.internet.com/navigation/back-button.html

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Dobré odpoledne, pane Polzere, prosim vás, bude fungovat generovaný formulář na serveru s windows?

Dostala jsem od serveru tuto odpověď:

 

The page cannot be displayed

The page you are looking for cannot be displayed because an invalid method (HTTP verb) was used to attempt access.

Please try the following:

  • Contact the Web site administrator if you believe that this request should be allowed.
  • Make sure that the Web site address displayed in the address bar of your browser is spelled and formatted correctly.

HTTP Error 405 - The HTTP verb used to access this page is not allowed.
Internet Information Services (IIS)

Technical Information (for support personnel)

  • Go to Microsoft Product Support Services and perform a title search for the words HTTP and 405.
  • Open IIS Help, which is accessible in IIS Manager (inetmgr), and search for topics titled Setting Application Mappings, Securing Your Site with Web Site Permissions, and About Custom Error Messages.

 

 

Děkuji za případnou pomoc.

Měl by bez problémů. Popsaná chyba vypadá na nějaký problém s nastavením IIS.

Tvořím weby. Nabízím poradenství pro Drupal. Jsem na Twitteru.

Stránky

Přidat komentář