| 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: 6 let
|
|||
0