| 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: 15 let
|
|||
0