Autor | Zpráva | ||
---|---|---|---|
tukan Profil * |
#1 · Zasláno: 1. 2. 2011, 22:23:58
Ahoj, mám problém s odesíláním mailu pres formulář.. Jde o to že už mi emaily chodí dokonce i kódování funguje ale problém je že se email odešle vždy při načtení stránky a ne při kliknutí na tlačítko odeslat... Mám tam kontrolu jestli se mail odeslal a právě při příchodu na stránku tam už svítí Odesláno... Nevíte co stím? Díky
Můj kód: <form method="post" class="obsah" action="?"> <div class="bg-pole-middle"> <input type="text" value="Jméno..." onfocus="if(this.value==this.defaultValue){this.value=''}" onblur="if(this.value==''){this.value=this.defaultValue}" name="jmeno" class="pole-middle"></div> <div class="bg-pole-middle"> <input type="text" value="E-mail..." onfocus="if(this.value==this.defaultValue){this.value=''}" onblur="if(this.value==''){this.value=this.defaultValue}" name="email" class="pole-middle"></div> <div class="bg-pole-middle"> <input type="text" value="Předmět..." onfocus="if(this.value==this.defaultValue){this.value=''}" onblur="if(this.value==''){this.value=this.defaultValue}" name="predmet" class="pole-middle"></div> <div class="bg-pole-zprava"> <textarea onfocus="if(this.value==this.defaultValue){this.value=''}" onblur="if(this.value==''){this.value=this.defaultValue}" name="zprava" class="pole-zprava">Vaše zpráva... </textarea></div> <input type="submit" class="postsubmit" value=" "> </form> <?php /* *************** diskuse.jakpsatweb.cz *** PHP FAQ ********************** */ function autoUTF($s) { // detect UTF-8 if (preg_match('#[\x80-\x{1FF}\x{2000}-\x{3FFF}]#u', $s)) return $s; // detect WINDOWS-1250 if (preg_match('#[\x7F-\x9F\xBC]#', $s)) return iconv('WINDOWS-1250', 'UTF-8', $s); // assume ISO-8859-2 return iconv('ISO-8859-2', 'UTF-8', $s); } function cs_mail ($to, $predmet, $zprava, $head = "") { $predmet = "=?utf-8?B?".base64_encode(autoUTF ($predmet))."?="; $head .= "MIME-Version: 1.0\n"; $head .= "Content-Type: text/plain; charset=\"utf-8\"\n"; $head .= "Content-Transfer-Encoding: base64\n"; $zprava = base64_encode (autoUTF ($zprava)); $stav = mail ($to, $predmet, $zprava, $head); return $stav ? TRUE : FALSE; } /* ********************************************************************** ** */ $jmeno = $_POST['jmeno']; $mail = $_POST['email']; $predmet = $_POST['predmet']; $zprava = $_POST['zprava']; if (cs_mail("marek@email.cz", $predmet ." Od: " . $jmeno, $zprava, "From: " . $mail . "\n")) echo "Dobre"; else echo "Spatne"; ?> |
||
panther Profil |
#2 · Zasláno: 1. 2. 2011, 22:28:35
tukan:
nikde tam nemáš podmínku, zda byl formulář odeslán. Tedy if (isset($_POST['zprava'])) například.
|
||
johnl Profil |
#3 · Zasláno: 1. 2. 2011, 22:28:44
Odesílacímu inputu přidej name..
<input type="submit" class="postsubmit" value=" " name="odeslat"> <?php if(isset($_POST["odeslat"])){ function autoUTF($s) { // detect UTF-8 if (preg_match('#[\x80-\x{1FF}\x{2000}-\x{3FFF}]#u', $s)) return $s; // detect WINDOWS-1250 if (preg_match('#[\x7F-\x9F\xBC]#', $s)) return iconv('WINDOWS-1250', 'UTF-8', $s); // assume ISO-8859-2 return iconv('ISO-8859-2', 'UTF-8', $s); } function cs_mail ($to, $predmet, $zprava, $head = "") { $predmet = "=?utf-8?B?".base64_encode(autoUTF ($predmet))."?="; $head .= "MIME-Version: 1.0\n"; $head .= "Content-Type: text/plain; charset=\"utf-8\"\n"; $head .= "Content-Transfer-Encoding: base64\n"; $zprava = base64_encode (autoUTF ($zprava)); $stav = mail ($to, $predmet, $zprava, $head); return $stav ? TRUE : FALSE; } /* ********************************************************************** ** */ $jmeno = $_POST['jmeno']; $mail = $_POST['email']; $predmet = $_POST['predmet']; $zprava = $_POST['zprava']; if (cs_mail("marek@email.cz", $predmet ." Od: " . $jmeno, $zprava, "From: " . $mail . "\n")) echo "Dobre"; else echo "Spatne"; } ?> Zkrátka to stačí obalit podmínkou if(isset($_POST["odeslat"])) tedy pokud bylo kliknuto na tlačítko odeslat.. ;-) |
||
Radek Cvek Profil |
#4 · Zasláno: 1. 2. 2011, 22:29:45
Nikde tam nevidím kontrolu odeslání - mělo by tam být něco jako:
if (isset($_POST["email"])) { if (cs_mail("marek@email.cz", $predmet ." Od: " . $jmeno, $zprava, "From: " . $mail . "\n")) echo "Dobre"; else echo "Spatne"; } |
||
tukan Profil * |
#5 · Zasláno: 1. 2. 2011, 23:14:53
Díky moc všem už mi to funguje jak má.
|
||
freshynek Profil * |
#6 · Zasláno: 3. 2. 2011, 21:03:10
ahoj Tucane,
nemohl bys sem šupnou i tvůj html kód? Taky s tím bojuju a zatím mi to nefunguje. Díky moc H. |
||
Časová prodleva: 14 let
|
0