Autor | Zpráva | ||
---|---|---|---|
northon Profil * |
#1 · Zasláno: 5. 3. 2010, 13:16:23
Ahoj,
Mám formulář, efektivní kombinace nějakého jednoduchého scriptu z netu a vašich rad z Nejčastější potíže s PHP (FAQ). Čeština běhá skvěle, předmět i text zprávy UTF-8. Script se skládá ze dvou částí. V tom formuláři je také políčko Váš email (ten je ve zprávě uveden jako Odesílatel). Vyplním fomulář, odešlu. Přejdu do emailu a otevřu tu zprávu, čeština je v pořádku, ale údajně mi ji zaslal : "northon@centrum.czMIME-Version: 1.0@mysak.core.mujhost.net" přitom v poli jsem vyplnil pouze "northon@centrum.cz". Kód posli.php <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-2"> <title>Odesílání emailu</title> <?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 = "") { $head .= "MIME-Version: 1.0\n"; $head .= "Content-Type: text/html; charset=\"utf-8\"\n"; $head .= "Content-Transfer-Encoding: base64\n"; $zprava = base64_encode (autoUTF ($zprava)); return mail ($to, $predmet, $zprava, $head); } /* ********************************************************************** ** */ ?> </head><body> <? $predmet = $_POST['predmet']; $email = $_POST['email']; $spam = $_POST['spam']; $zprava = "Zpráva: {$_POST['zprava']}\r\n"; $zprava .= "______________________________________________________________________\r\n\r\nKontaktní informace:\r\n\r\nJméno: {$_POST['jmeno']}\r\n"; $zprava .= "Telefon: {$_POST['telefon']}\r\n"; if ($predmet!="" and $email!="" and $zprava!="" and $spam=="2") { $kon = cs_mail ("northon@centrum.cz", $predmet, $zprava, "From: " . $email); echo "<p><strong>Vá e-mail byl úspěně odeslán</strong>.</p>"; } else { echo "<p>Vá e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili vechny údaje, nebo nevíte kolik je 1 + 1.</p>"; } ?> </body></html> Kód email.php: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <title>Odesílání emailu</title> </head><body> <form action="posli.php" method="post"> Vaše jméno<input name="jmeno" size="25" value=""><br> Váš email<input name="email" size="25" value="@"><br> Telefon<input name="telefon" size="25" value=""><br> Předmět<input name="predmet" size="25" value="Zpráva z www stránek"><br> Kolik je 1+1?<input name="spam" size="25"><br> Zpráva<textarea name="zprava" rows="6" cols="55">Rád bych se zeptal...</textarea><br> <input type="submit" value="Odeslat"> </form> </body> </html> Adresa formuláře: http://www.jmjoil.cz/kontakt2/email.php Předem díky moc, s PHP nemam tolik zkušeností, možná sem někde jenom něco neuzavřel. |
||
Alphard Profil |
#2 · Zasláno: 5. 3. 2010, 14:04:04
$kon = cs_mail ("northon@centrum.cz", $predmet, $zprava, "From: $email\n"); Ve FAQ to není zdůrazněné,ale v příkladě to je. |
||
northon Profil * |
#3 · Zasláno: 5. 3. 2010, 14:31:04
Alphard:
děkuju, už to funguje .) |
||
Časová prodleva: 14 let
|
0