Autor Zpráva
Pepsina
Profil *
[pre][/pre]Dobrý den,
vím, že už se to tady řešilo mnohokrát, ale kamarád mě požádal, jestli bych mu posli.php neupravil, že mu jde špatně kodovaní. řikal jsem si, že to bude v poho, ale to co on má udělané, tak tohle jsem neviděl a nevím jak do toho zakomponovat kodovani. Jsem velký amatér na PHP, tak snad mi tady poradíte co tam třeba přidat.
Díval jsem se na tenhle odkaz, ale z toho moc moudrý nejsem.

Zde je výňatek z posli.php


<?php
$POST=$_POST;
if ($POST["soucet"]=="2" or $POST["soucet"]=="dve" or $POST["soucet"]=="dva" or $POST["soucet"]=="dvě") {
$mail="Kontaktní formulář: <br><br><b>Jméno:</b> ".$POST["jmeno"]."<br><b>Příjmení:</b> ".$POST["prijmeni"]."<br><b>Firma:</b> ".$POST["firma"]."<br><b>Email:</b> ".$POST["email"]."<br><b>Vzkaz:</b> ".$POST["vzkaz"];

$headers = 'From: formular' . "\r\n" .'Content-type: text/html; charset=windows-1250';
mail("aaa@seznam.cz","KONTAKTNÍ FORMULÁŘ /  ",$mail,$headers);
?>


<HTML>
<HEAD>
<meta http-equiv="Content-Language" content="en-us">
<TITLE> Potvrzení </TITLE>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="shortcut icon" href="images/favicon.ico">
</HEAD>
<BODY BGCOLOR="#FFFFFF" topmargin="0" leftmargin="0">
<center>
<br><br>
<align="center">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#000000" face="Tahoma" size="2"><b><u>DĚKUJEME</u></b></font><br><br>
    <align="center">
    <font color="#000000" face="Tahoma" size="1">Děkujeme za Váš zájem o naše služby.<br>
Na základě Vámi zaslané objednávky našich služeb, Vás budeme 
v co nejkratší době telefonicky, nebo e-mailem kontaktovat.
<br><br>
V případě, že tak neučiníme do pěti pracovních dnů, nás prosíme kontaktujte telefonicky.<br>
Děkujeme za pochopení a spolupráci :-D</font><br><br>
<a href=''onClick='window.close()'><center><font color="#000000" face="Tahoma" size="2"><b><u>ZAVŘÍT OKNO</u></b></center></a>
<br><br>
<a href="http://www.aaa.cz/kontakt.html"><center><FONT COLOR="#000000" face="Tahoma" size="2"><b><u>ZPĚT na stránku KONTAKT</u></b></center></a><br><br>
</BODY>
</HTML>
<? } else {
?>
<HTML>
<HEAD>
<meta http-equiv="Content-Language" content="en-us">
<TITLE>Upozornění !!!</TITLE>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="shortcut icon" href="images/favicon.ico">
</HEAD>
<BODY BGCOLOR="#FFFFFF" topmargin="0" leftmargin="0">
<center>
<br><br>
<align="center">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#000000" face="Tahoma" size="2"><b><u>FORMULÁŘ NEBYL ODESLÁN !</u></b></font><br><br>
    <align="center">
    <font color="#000000" face="Tahoma" size="1">Bohužel jste špatně spočítali ověřovací příklad ve formuláři - můžete to zkusit znovu návratem zpět na formulář.</font><br><br>
<a href='javascript:self.history.back();'><center><font color="#000000" face="Tahoma" size="2"><b><u>ZPĚT</u></b></font></center></a>
<br><br><br>
</BODY>
</HTML>
<?
}
?>


A zde je formulář:


                              <form action="form_send3.php" method="post" class="formular_ff">
                        <fieldset style="height: 348px; width:450px;" class="formular"> 
                            <legend><font color="#6d6c6c"><b>Kontaktní formulář</b></font></legend><br>
                          <label for="jmeno"><font color="#ac8739">Jméno:</font></label><br />
                          <input type="text" size="20" id="jmeno" name="jmeno" class="jmeno" /><br>
                          <label for="jmeno">Příjmení:</label><br />
                          <input type="text" size="40" id="prijmeni" name="prijmeni" class="prijmeni" /><br>
                          <label for="jmeno">Název firmy / společnosti:</label><br />
                          <input type="text" size="40" id="firma" name="firma" class="firma" /><br>
                          <label for="jmeno">Email:</label><br />
                          <input type="text" size="40" id="email" name="email" value="@" class="email" /><br>
                          <label for="vzkaz">Vzkaz:</label><br />
                          <textarea id="vzkaz" cols="59" rows="4" name="vzkaz" class="vzkaz"></textarea>
                          <br>Prosíme vyplňte (Ochrana proti SPAMU):        Kolik je jedna plus jedna?
                          <input type="text" size="1" id="soucet" name="soucet" class="soucet" />
                        
                          <input type="submit" value="Odeslat">
                        <input type="reset" value="Vymaž">
                        
                        </fieldset>
                        </form>

Budu moc rád, když mi poradíte.
Keeehi
Profil
Na řádku 6 máte napsáno windows-1250, na řádku 15 utf-8. Musíte se rozhodnout.
Pepsina
Profil *
Jej toho jsem si nevšiml, ale i když dám windows a nebo utf tak se to pořád špatně zobrazuje :-/
Rellik
Profil
Bylo by dobré podívat se i sem Nejčastější potíže s PHP (FAQ) Tam jsou řešení nejčastějších chyb... ;-)
Pepsina
Profil *
Rellik:
Tohle už jsem četl, ale vůbec nevím jak to zakomponovat do toho mého zdrojáku aby to fungovalo :-(
vitaminc
Profil
Ahoj, mohl bych poprosit někoho o radu mám podobný problém proto píšu do tohoto vlákna, nevím koho poprosit o pomoc, tak se zeptám tady. Vzal jsem si mailový formulář odtud http://php.vrana.cz/kodovani-hlavicek-e-mailu.php chybí mu tam kódování už jsem doplnil co jsem našel vyzkoušel jsem toho, ale vždy mi to chodí divně. Kdyby se našel někdo té dobroty a poradil mi prosím nebo třeba ukázal nějaký funkční kde čerpat. Díky

Edit: jsem zjistil, ze v ipadu v mailu a webovem rozhrani se mi to ukazuje dobre ale upozorneni na telefon a v outlooku je to blbe. Tak to je divne
AoJ.HgTS
Profil
vitaminc:
není to divné :-), s emaily je bohužel řada problémů, použití hotového kódu je často dobré řešení. Tohle je způsobeno tím, že samotná emailová zpráva je v ASCII, tj. v 7-bit kódování, utf je 8-bit kódování ("7" a "8" jsou jiná čísla a nemusíte se ani zajímat, co znamenají :-). Každý utf znak by měl být poté ve zdrojovém kódu emailu zapsán nějakou kombinací speciálních znaků, outlook, sms a jiné programy nechtějí rozumět utf znaků a čtou vše jako 7-bit znaky, proto u diakrity to vypadá, že zmizel háček a je tam nějaký paskvil navíc. Webový prohlížeč, v případě ipadu, zná utf znaky a je mu úplně jedno, že otevírá email a prostě zobrazí, co mu příjde, proto to je správně, správně zobrazené to bude nejspíš v každém webovém emailu.

V odkazovaném článku J. Vrána řeší pouze hlavičky emailu, nikoliv jeho obsah. Jen tak v rychlosti mohu doporučit třeba tohle řešení https://github.com/eoghanobrien/php-simple-mail
Davex
Profil
AoJ.HgTS:
V odkazovaném článku J. Vrána řeší pouze hlavičky emailu, nikoliv jeho obsah.
V hlavičce nastavuje znakovou sadu i osmibitové kódování obsahu zprávy, takže už obsah nijak ošetřovat nemusí.

Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit

Problém by mohl být v tom, že na konci hlavičky není odřádkováno.

mail(
    mime_header_encode("Testovací uživatel") . " <test@example.com>",
    mime_header_encode("Testovací předmět"),
    "Zpráva",
    "MIME-Version: 1.0\nContent-Type: text/plain; charset=utf-8\nContent-Transfer-Encoding: 8bit\n"
);
vitaminc
Profil
děkuji oběma. nakonec jsem to ještě s pomoci kamaráda vyřešil tím druhým způsobem. Moc jste mi pomohli. Díky pánové

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0