Autor | Zpráva | ||
---|---|---|---|
hellmc Profil |
#1 · Zasláno: 20. 4. 2020, 14:24:27
Ahoyte ...
Neviem si poradiť s kódovaním e-mailu .... Rád by som odoslal e-mail s html obsahom ... posielam funkciou >> function poslat_mail_html($email_od_koho,$email_komu,$subjekt,$sprava) { $to = $email_komu; $subject = $subjekt; $from = $email_od_koho; $headers = 'MIME-Version: 1.0' . "\r\n"; $headers.= "From: =?utf-8?b?".base64_encode($email_od_koho)."?=\r\n"; $headers .= "Content-Type: text/html; charset=UTF-8". "\r\n"; $headers .= 'From: '.$from."\r\n". 'Reply-To: '.$from."\r\n" . 'X-Mailer: PHP/' . phpversion(); $message=$sprava; if(mail($to, $subject, $message, $headers)) { uspech("E-mail pre ".$email_komu." bol úspešne odoslaný!"); } else { chyba("E-mail nebolo možné odoslať!"); } } Obsah e-mailu html a vložené z mysqli_fetch_assoc > while($f=mysqli_fetch_assoc($q)) { $meno=$f['meno']." ".$f['priezvisko']; } $ret="<html><head><meta http-equiv='Content-Type' content='text/html charset=UTF-8'/></head>"; $ret.="<table style='background:red; color:white; width:100%;'>"; $ret.="<tr><td colspan='2' style='font-size:25px; text-align:center'>UPOMIENKA<br>".$proto."</td></tr>"; $ret.="<tr><td align='center' style='background:white; color:black; border:2px solid black;'>Meno:<strong>".$meno."</strong> </td>"; $ret.="</table>"; $ret.="</html>"; return $ret; Text napísaný ako html kóduje v poriadku, problém je s vloženým textom z db (premenná $meno) nezobrazuje správne. Najbližšie k správnemu zobrazeniu bolo : $meno=mb_convert_encoding($meno,"ISO-8859-2","UTF-8"); mb_detect_encoding($meno) zobrazí mi UTF-8 ale napríklad znak "Ľ" nezobrazí správne.
Všetko to beží na XAMPP, PHP 7.4.4, MYSQLI : 7.4.4 pod WIN7 Googlil som všetko možné, ale nedarí sa mi dáta z db zobrazovať správne.... Ďakujem za hocijakú pomoc |
||
Kajman Profil |
#2 · Zasláno: 20. 4. 2020, 14:58:10
Pokud je čeština v databázi v pořádku (např. při prohlížení nástrojem Adminer), mělo by stači po připojení v php říci, že chcete pracovat v utf-8
$instance_mysqli->set_charset("utf8"); |
||
hellmc Profil |
#3 · Zasláno: 20. 4. 2020, 15:04:11
Kajman:
Dik .... ale mysqli_set_charset($link,"utf8"); mb_internal_encoding("UTF-8"); Set locale mam : setlocale(LC_ALL, "sk_SK.utf8", "Slovak_Slovakia.65001", "Slovak"); |
||
Kajman Profil |
#4 · Zasláno: 20. 4. 2020, 15:07:53
A když se podíváte Adminerem na data v databázi, je diakritika správně?
|
||
hellmc Profil |
#5 · Zasláno: 20. 4. 2020, 15:13:15
Kajman:
Používam phpMyAdmin 5.0.2 ... tam je to vporiadku |
||
Kajman Profil |
#6 · Zasláno: 20. 4. 2020, 15:49:24
Pokud si tedy vypíšete ve skriptu dosazené jména do html a vše je v pořádku, tak bude problém opravdu až v posílání.
V místní ukázce, je encodován i obsah zprávy. Ale asi bych spíše použil nějakou odladěnou knihovnu, viz Nejčastější potíže s PHP (FAQ) » Odeslání více položek |
||
hellmc Profil |
#7 · Zasláno: 20. 4. 2020, 17:04:51
Kajman:
Problém bol nakoniec v editore, začal som používať PhpDesigner .. a mal vychodzie kodovanie ANSII .... Vďaka za všetko |
||
Časová prodleva: 4 roky
|
0