Stránka 1 z 1

PHP formulář diakritika  Vyřešeno

Napsal: 06 pro 2014 14:04
od 854005
Dobré odpoledne, rád bych Vás tu, spoludiskutující, požádal o pomoc. Téma mého problému je zcela klasické, jedná se totiž o diakritiku ve formuláři, který se posílá z webu přes PHP. Než mi začnete nadávat, že to tu bylo již stokrát, tak bych rád upozornil, že jsem si vyhledal několik návodů a taky vyzkoušel, nicméně mi ani jeden nefungoval. Proto bych potřeboval poradit, co dělám blbě. Povedlo se mi nakódovat Předmět, ale tělo zprávy ne. Kódování stránky Windows 1250 (a nerad bych ho měnil, protože mi UTF nikdy nefunguje tak, jak má).

Kód: Vybrat vše


<?php
$mail 
= 'adresa@domena.koncovka';
$predmet = 'ěščřžýáíé46';
$encodedsubject = base64_encode ($predmet);
$predmet = "=?windows-1250?B?$encodedsubject?=\r\n";
$zprava = "e-mail: $Email".PHP_EOL."\n";
$zprava .= "Příjmení: $Prijmeni".PHP_EOL."\n";
$zprava .= "Jméno: $Jmeno".PHP_EOL."\n";
$zprava .= "Titul: $Titul".PHP_EOL."\n";
$zprava .= "Datum narození: $Datum_narozeni".PHP_EOL."\n";
$zprava .= "Číslo OP: $Cislo_OP".PHP_EOL."\n";
$zprava .= "Název pracoviště: $Nazev_pracoviste".PHP_EOL."\n";
$zprava .= "Adresa pracoviště: $Adresa_pracoviste".PHP_EOL."\n";

// atd. další položky $.zprava

 
if 
(mail($mail, $predmet, $zprava))
{
    echo 'E-mail byl úspěšně odeslán.<br>';
}
else
{
    echo 'E-mail se bohužel nepodařilo odeslat.<br>';
}
?>


Prozatím děkuji.

Re: PHP formulář diakritika

Napsal: 07 pro 2014 02:38
od CZechBoY
Zdravím,
no určitě jste přečetl hodně návodů, ale žádný jste nepoužil ... :-/

Zkuste to takhle

Kód: Vybrat vše

<?php
$mail 
= 'adresa@domena.koncovka';
$predmet = 'ěščřžýáíé46';
$encodedsubject = base64_encode ($predmet);
$predmet = "=?windows-1250?B?" . $encodedsubject . "?=\r\n";
$zprava = "e-mail: " . $Email . "\r\n";
$zprava .= "Příjmení: " . $Prijmeni . "\r\n";
$zprava .= "Jméno: " . $Jmeno . "\r\n";
$zprava .= "Titul: " . $Titul . "\r\n";
$zprava .= "Datum narození: " . $Datum_narozeni . "\r\n";
$zprava .= "Číslo OP: " . $Cislo_OP . "\r\n";
$zprava .= "Název pracoviště: " . $Nazev_pracoviste . "\r\n";
$zprava .= "Adresa pracoviště: " . $Adresa_pracoviste . "\r\n";

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/plain; charset=windows-1250\r\n";

// atd. další položky $.zprava

 
if 
(mail($mail, $predmet, $zprava, $headers))
{
    echo 'E-mail byl úspěšně odeslán.<br>';
}
else
{
    echo 'E-mail se bohužel nepodařilo odeslat.<br>';
}

 

Re: PHP formulář diakritika

Napsal: 07 pro 2014 16:51
od 854005
Takhle jo. Jenže žádný návod nemyslí na blbce a když přidám pouze

Kód: Vybrat vše


$headers 
= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/plain; charset=windows-1250\r\n";
 

tak to nejde.

Už se nikde nepsalo, že tam nemá být $zprava = "e-mail: $Email".PHP_EOL."\n";

ale

$zprava = "e-mail: " . $Email . "\r\n";

Takže zádrhel byl ne v hlavičce, ale v těch tečkách a uvozovkách v těle zprávy.


Tedy děkuji ještě jednou.

--- Doplnění předchozího příspěvku (07 Pro 2014 17:06) ---

Ještě dodatek: kdybych nezkoušel návody, asi bych neměl nakódovaný předmět, ne? :-)

Re: PHP formulář diakritika

Napsal: 07 pro 2014 18:52
od CZechBoY
Bez těch headers ti to fakt funguje?
Ta konkatenace stringů je vesměs jedno v tomhle případě...

Re: PHP formulář diakritika

Napsal: 08 pro 2014 05:29
od 854005
Bez headers to funguje, ale ne česky.

Re: PHP formulář diakritika

Napsal: 10 pro 2014 12:55
od CZechBoY
Takže když se to odešle v češtině tak email přijde v angličtině?

Re: PHP formulář diakritika

Napsal: 10 pro 2014 21:13
od 854005
No když zkopíruju ten Váš skript do puntíku přesně, tak to již samozřejmě přijde v pořádku česky :).

Re: PHP formulář diakritika

Napsal: 11 pro 2014 11:12
od CZechBoY
No a kde je problém?

Re: PHP formulář diakritika

Napsal: 13 pro 2014 16:19
od 854005
Problém jako takový nikde, jen jsem si chtěl najít, kde jsem dělal chybu, abych už to příště věděl :-). Nic víc.