PHP a UTF-8 – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

PHP a UTF-8 – PHP – Fórum – Programujte.comPHP a UTF-8 – PHP – Fórum – Programujte.com

 

Dominik
~ Anonymní uživatel
129 příspěvků
3. 8. 2018   #1
-
0
-

Ahoj, mám problém.. Na webu mám formulář, jenže po odeslání je u toho chybné kódování..
Takto vypadá PHP kód.. PHP vůbec nerozumím, takže vás prosím o jakoukoliv radu..
 

<?php

if (isset($_POST['submit'])) {
	$name = $_POST['name'];
	$email_subject = "Dotaz z formuláře";
	$firma = $_POST['firma'];
	$mailForm = $_POST['mailc'];
	$message = $_POST['message'];

	$mailTo = "lev.dominik.2015@skola.ssps.cz";
	$headers = "From: ".$mailForm; "Content-Type: text/html; charset=UTF-8";
	$txt = "Dostali jste E-mail od ".$name." z firmy ".$firma.".\n\n".$message;

	mail ($mailTo, $email_subject, $txt, $headers);
	header ("Location : index1.html");
}

?>
Nahlásit jako SPAM
IP: 78.102.54.–
Martin
~ Anonymní uživatel
1602 příspěvků
5. 8. 2018   #2
-
0
-

#1 Dominik
Doplň na začiatok kódu:
 

header('Content-Type: text/html; charset=utf-8');
Nahlásit jako SPAM
IP: 195.28.145.–
gna
~ Anonymní uživatel
1891 příspěvků
5. 8. 2018   #3
-
0
-

#2 Martin
A co by to mělo udělat?

Nahlásit jako SPAM
IP: 213.211.51.–
gna
~ Anonymní uživatel
1891 příspěvků
5. 8. 2018   #4
-
0
-

#1 Dominik
Před content-type máš středník, takže se to do hlaviček nepřidá. Taky ty hlavičky musí být oddělené odřádkováním.

Kódování textů v hlavičkách (což je i předmět) je potřeba uvést přímo v nich.

$email_subject = "Dotaz z formuláře";
$email_subject = "=?UTF-8?B?" . base64_encode($email_subject) . "?=";
...
$headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=UTF-8\r\n";
$headers .= "From: " . $mailForm;
Nahlásit jako SPAM
IP: 213.211.51.–
Hookyns
~ Anonymní uživatel
5 příspěvků
5. 8. 2018   #5
-
0
-

Typický problém je rozepře mezi kódováním webu (HTML meta charset) a kódování PHP souboru. Nemáš náhodou script zpracovávající daný formulář uložený v něčem jiném než v UTF-8?

Např. pokud s PHP nepracuješ a jen sis chtěl na webu něco změnit, otevřel si ten soubor v notepadu, udělal úpravy a uložil. Notepad ti mohl soubor ale uložit s kódováním ANSI. Pak doručíš klientu ANSI text a v HTML mu říkáš, že je to UTF-8, takže se to tak snaží i reprezentovat.

Nahlásit jako SPAM
IP: 77.95.192.–
Kit+15
Guru
5. 8. 2018   #6
-
0
-

#5 Hookyns
Ideální je nemít v PHP žádné výstupní texty, odpadne tím hromada problémů.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:415:9...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Hookyns
~ Anonymní uživatel
5 příspěvků
12. 8. 2018   #7
-
0
-

#6 Kit
Okay, to je sice pěkné, ale krapánek OT (řešíme přece postovaný kód), odmysli si tedy všechny zmínky o PHP z mého příspěvku. Platí to obecně, každý soubor máš v nějakém kódování, ať už je to PHP soubor, šablona nebo cokoliv jiného. Vždy se posílá na klienta originál ze serveru a vždy klientu charsetem říkáš, jak se má na data dívat.

Když už, tak ten ukončovací PHP tag je také často zdrojem problémů (jiných samozřejmě).

Nahlásit jako SPAM
IP: 77.95.192.–
peter
~ Anonymní uživatel
4014 příspěvků
13. 8. 2018   #8
-
0
-

On to myslel Kit asi jinak. Ze nema mit soucasti kodu text (napr s diakritikou). Jako, ze to ma tahat ze souboru, databaze a pod. Coz mi prijde teda trochu OT, kdyz se Dominikovi jedna o kodovani mailu. Ale ma to tak napsane, text mailu ma soucasti php kodu a ne jako vstup funkce.
Cili, spravne by mel mit funkci odesli mail. Ta ma jakesi vstupni a vystupni kodovani. Vemes text, prekodujes ho pro tu funkci a predas te funkci.

Nahlásit jako SPAM
IP: 2001:718:2601:258:2c84:a2...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 11 hostů

Podobná vlákna

Fwrite vs. UTF-8 — založil yaqwsx

Captcha a UTF-8 — založil liborb

UTF-8 kódování — založil sigf07

UTF 8 - české znaky — založil Mudr. Jiří Kopeček

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý