Autor | Zpráva | ||
---|---|---|---|
bazz Profil |
Dobrý den, vím že to tady bylo už tisíckrát ale už jsem zkoušel x řešení a nic mi nefunguje, už jsem v tom zamotaný... mám toto a znaky š a ž se prostě nevypíší v mailu:
<form method="post" action="zpracovat10.php"> Váš email:<input name="email" size="25" value="@"><br> Vaše jméno:<input name="jmeno" size="25" value=""><br> <input type="submit" value="rezervuj"> </form> <?php $jmeno = $_POST['jmeno']; $email = $_POST['email']; if ($jmeno!="" and $email!="") { Mail("rezervacedna@seznam.cz", $jmeno, "E-mail: " . $email, $jmeno); echo "<p><strong>Sedadlo rezervováno</strong>.</p>"; kódování všech stránek jsem zkoušel jak utf-8 tak windows-1250 |
||
T-fon Profil |
#2 · Zasláno: 26. 8. 2018, 18:38:13
Já jsem dřív používal tento kód a čeština bez problémů:
$from = '...'; $to = '...'; $subject = '...'; $headers = 'From: ' . $from . "\r\n"; $headers .= 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/plain; charset="utf-8"' . "\r\n"; $headers .= 'Content-Transfer-Encoding: 8bit' . "\r\n"; $body = "...."; mail ($to, $subject, $body, $headers); |
||
Keeehi Profil |
#3 · Zasláno: 26. 8. 2018, 22:17:01
bazz:
A Nejčastější potíže s PHP (FAQ) » Kódování e-mailu, aneb abychom neposílali otazníky. jsi zkoušel? |
||
bazz Profil |
#4 · Zasláno: 28. 8. 2018, 13:09:51
Keeehi:
pokud zkouším ty tvoje hlavičky tak mi to píše že nemám definovanou proměnnou headers takže tam asi ještě necho chybí ne? |
||
Keeehi Profil |
bazz:
No, zřejmě jsi to nezkopíroval dobře. Ovšem bez toho abychom viděli co jsi vytvořil ti nejsme schopni více poradit. |
||
T-fon Profil |
#6 · Zasláno: 28. 8. 2018, 13:55:08
Nejspíš jsi zkombinoval obě řešení. Ta proměnná by měla být $head a ne $headers.
|
||
bazz Profil |
<html> <head> <meta charset="windows-1250"> </head> <body> <?php $jmeno = $_POST['jmeno']; $email = $_POST['email']; $sedadlo = $_POST['sedadlo']; $predmet = "rezervace sedadla DNA"; $head .= 'MIME-Version: 1.0' . "\r\n"; $head .= 'Content-type: text/plain; charset="utf-8"' . "\r\n"; $head .= 'Content-Transfer-Encoding: 8bit' . "\r\n"; if ($jmeno!="" and $email!="") { Mail("rezervacedna@seznam.cz", $email, "Jméno: " . $jmeno, "$sedadlo", $head); Mail($email, $predmet, "Děkujeme za rezervaci", "$sedadlo", $head); divné je že do toho mailu na seznamu.cz mi to příjde dobře s češtinou ale ten druhý mail když otevřu jinde třeba na mém firemním mailu ...@riomdia.cz tak tam diakritika není |
||
T-fon Profil |
#8 · Zasláno: 28. 8. 2018, 20:36:01
Použij spíš kód, na který tě odkazoval Keeehi, ten bude aktuálnější.
|
||
bazz Profil |
<?php function autoUTF($s) { if (preg_match('#[\x80-\x{1FF}\x{2000}-\x{3FFF}]#u', $s)) // detect UTF-8 { return $s; } elseif (preg_match('#[\x7F-\x9F\xBC]#', $s)) // detect WINDOWS-1250 { return iconv('WINDOWS-1250', 'UTF-8', $s); } else // assume ISO-8859-2 { return iconv('ISO-8859-2', 'UTF-8', $s); } } function cs_mail($email, $predmet, $sedadlo, $head = "") { $predmet = "=?utf-8?B?".base64_encode(autoUTF($predmet))."?="; $head .= "MIME-Version: 1.0".PHP_EOL; $head .= "Content-Type: text/plain; charset=\"utf-8\"".PHP_EOL; $head .= "Content-Transfer-Encoding: base64".PHP_EOL; $sedadlo = wordwrap(base64_encode(autoUTF($sedadlo)), 78, PHP_EOL, true); return mail($email, $predmet, $sedadlo, $head); } $jmeno = "{$_POST['jmeno']}".PHP_EOL; $email = $_POST['email']; $sedadlo = "{$_POST['sedadlo']}".PHP_EOL; $predmet = "rezervace sedadla DNA"; if ($jmeno!="" and $email!="") { (cs_mail("rezervacedna@seznam.cz", $email, "Jméno: " . $jmeno, "$sedadlo")); (cs_mail($email, $predmet, "Děkujeme za rezervaci", "$sedadlo")); zkouším ale plavu v tom... pořád to chodí blbě |
||
T-fon Profil |
Tak to vyřeš nějakou knihovnou, třeba u Nette emailu máš jistotu správný češtiny a použití je jednoduchý.
Jo a jenom jak na to zběžně koukám, tak tu funkci cs_mail voláš s přeházenýma parametrama. |
||
bazz Profil |
#11 · Zasláno: 28. 8. 2018, 21:12:44
chtěl bych na to přijít i bez té knohovny... už jen proto že je mi divné proč to na ten seznam chodí v pořádku
|
||
Časová prodleva: 5 let
|
0