Autor | Zpráva | ||
---|---|---|---|
sebas Profil |
#1 · Zasláno: 29. 6. 2015, 10:26:49
Dobrý den,
potřeboval bych poradit s trochu složitějším formulářem. Musím předem říct, že jsem vcelku začátečník, stránky píšu především pomocí CSS a HTML, takže nejsem příliš zběhlý v php a když jsem se díval na internetu na řešení, tak jsem na tom vždy skončil. Mám jednoduchý formulář <form action="?????"> Jméno: <input name="jmeno"><br> E-mail: <input name="email"><br> <input type="submit" value="Odeslat"> </form> a chci aby po vyplnění se na vyplněný e-mail poslalo pdfko (nebo odkaz na něj), ale zároveň to někde zaznamenalo tento mail. Jako je to např. www.bforb.cz/publikace-zdarma.html předem díky |
||
Tomáš123 Profil |
#2 · Zasláno: 29. 6. 2015, 11:39:28
sebas:
Chýba ti metóda posielania a atribút action má obsahovať cestu k súboru, ktorý formulár spracuje.
Inak je to celkom jednoduché: 1. Spracuješ prijaté hodnoty, zistíš, či boli vyplnené a ošetríš ich pomocou funkcie htmlspecialchars() .
2. Pripravíš si obsah na odoslanie a pripojíš tam odkaz na súbor. 3. Odošleš celý e-mail. Celé by to mohlo vyzerať nejako takto: <?php $name = htmlspecialchars($_POST['name']); $email = htmlspecialchars($_POST['email']); if(!empty($name) and !empty($email) { $message = "Ahoj $name\n"; $message .= "Z mojej stránky si si nechal posielať e-mail s PDF súborom. Tu si ho môžeš <a href=\"nejaka/cesta/subor.pdf\" title=\"názov PDF súboru\">zobraziť</a>." if(mail($email, "Reklama", $message)) { echo "E-mail bol úspešne odoslaný"; } else { echo "E-mail sa nepodarilo odoslať."; } else { echo "Vyplň prosím všetky požadované hodnoty!"; } ?> Do skriptu nie je zakomponovaná funkcia na automatickú detekciu kódovania. Všetko je vo FAQ, ale nechcel som kvôli nesprávnej implementácii zaviesť do kódu chyby, či učiniť skript príliš zložitým. Šlo by ešte validovať e-mail pomocou regulárnych výrazov, či zabrániť opätovnému odoslaniu kým neprejde určitý čas od predošlého odoslania. |
||
Časová prodleva: 10 let
|
0