Zdravím,
mám problém se zobrazením českých písmen ž a š po odeslání php formuláře přes webzdarma.cz. Mohl by mi prosím někdo poradit jak upravit soubor nebo nastavit jine kodovani? Nevim si s tim rady... :-) Díky moc za odpověd
hmm, přes správce souborů to dokupy nedáš... leda možná nastavit prohlížeči při editaci jiný kódování...
jinak FTP
Asi jsem to blbe napsal. Jsem tak trochu lama a moc se v php nevyznam. Mam na strankach formular pro prihlaseni na vzdelavaci akci (www.stoma.cz/prihlaska.html) a po vyplneni vsech udaju a odeslani se mi vsechno odesle tak jak ma, ale jedina pismenka ž a š se v mailu nezobrazi vubec.
IMHO tos to vážně nenapsal nejlíp...
takže:
1) meta tag s kódováním je na stránce?
2) máš tam ošetřený výstup na požadované kódování (wz server může používat jiné než ty) --> iconv()
3) pokud ani jedno z výše uvedeného nepomůže, tak na pastebin.com vlož PHP skript a formulář dej odkazy
Mam to takhle:
<?
$MailToAddress = "stomaol@seznam.cz";
$MailSubject = "Prihlaska pres webove stranky";
if (!$Email) {
$Email = "nezadany@email.smazat";
}
$Header = "";
$Footer = "";
?>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<meta http-equiv="Content-Language" content="cs">
<meta http-equiv="refresh" content="10;url=http://www.stoma.cz/rvs.html">
<body bgcolor="#FFD9A4">
<font face="Arial" size="5">
<b>Vaše přihláška byla odeslána!</b>
<br>
<?
if (!is_array($HTTP_POST_VARS))
return;
reset($HTTP_POST_VARS);
while(list($key, $val) = each($HTTP_POST_VARS)) {
$GLOBALS[$key] = $val;
$val=stripslashes($val);
echo "<b>$key</b> - $val<br>";
$Message .= "$key - $val\n";
}
if ($Header) {
$Message = $Header."\n\n".$Message;
}
if ($Footer) {
$Message .= "\n\n".$Footer;
}
mail( "$MailToAddress", "$MailSubject", "$Message", "From: $Email");
?>
<br><br>
<b>Děkujeme Vám za přihlášení</b>
<br><br>
V případě že nebude automaticky přesměrováni, klikněte
<a href="http://www.stoma.cz/prihlaska.html">zpět na stoma.cz</a>
Opravdu nevim kde mam co jeste nastavit - mozna zmenit kodovani ale jak :-)
1) if (!is_array($HTTP_POST_VARS))
return;
:-O wow! $_POST je array vždycky, ne?!
2) ten reset() bych viděl jako zybtečnej
3) $GLOBALS[$key] = $val; //to mi IMHO přijde švihlý
4) možná bych tam dával isset
5) ošéfuj si podmínkou tu fci mail a až pak vracej věty o odeslání...
6) proč dáváš do mail() proměnné jako string?
7) pokud vím, posílat by se to mělo v ISO...
function ToISO ($text) {
$iso = "µľ®»«ą©Ą";
$win = "ľžŽťŤšŠĽ";
for ($i=1; $i<=strlen($win); $i++){
$text = str_replace(substr($win,$i-1,1), substr($iso,$i-1,1), $text);
}
return $text;
}
resp. dnes bych ten vnitřek napsal jako
$iso = array("µ",....);
$win = array("ľ",....);
return str_replace($win,$iso,$text);