Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

Odtranění diakritiky z emailového formuláře

jarin001
verified
rating uzivatele
(37 hodnocení)
30. 7. 2011 12:17:13
Zdravím, poprosil bych o radu.
Při odesílání z webového formuláře se v předmětu nebo odesílateli nezobrazí správně diakritika.
Vím že se to tu řešilo již kolikrát, ale tady se mi nedaří nastavit správnou znakovou sadu.
Napadlo mě jestli by se to dalo ošetřit takto - uživatel napíše do formuláře např. předmět s dia
a server to odešle bez diakritiky.
30. 7. 2011 12:17:13
https://webtrh.cz/diskuse/odtraneni-diakritiky-z-emailoveho-formulare/#reply660940
Petr
verified
rating uzivatele
(9 hodnocení)
30. 7. 2011 12:25:50
jasne osetrit to jde v pohode.. regexp nebo jen pres strTr
jinak doporucuju spis nastavit tu sadu.. pokud chces poslu Ti primo fci >> cz_mail << ktere se jen predavaji parametry ;-)
30. 7. 2011 12:25:50
https://webtrh.cz/diskuse/odtraneni-diakritiky-z-emailoveho-formulare/#reply660939
jarin001
verified
rating uzivatele
(37 hodnocení)
30. 7. 2011 12:31:00
Napsal NSBM;683206
jasne osetrit to jde v pohode.. regexp nebo jen pres strTr
jinak doporucuju spis nastavit tu sadu.. pokud chces poslu Ti primo fci >> cz_mail << ktere se jen predavaji parametry ;-)
To vypadá dobře, znakovou znaku jsem zkoušel věčnost, mohl bych ti poslat nebo tady vypsat můj PHP soubor pro odeslání a podíval se na to jestli se tam to echo dá aplikovat ?
30. 7. 2011 12:31:00
https://webtrh.cz/diskuse/odtraneni-diakritiky-z-emailoveho-formulare/#reply660938
Petr
verified
rating uzivatele
(9 hodnocení)
30. 7. 2011 12:33:53
jasne zkus to :-)
30. 7. 2011 12:33:53
https://webtrh.cz/diskuse/odtraneni-diakritiky-z-emailoveho-formulare/#reply660937
jarin001
verified
rating uzivatele
(37 hodnocení)
30. 7. 2011 12:37:51
Díky, mám vlastně dva, ale potřebuju hlavně tento ( tím kontaktuje uživatel jiného uživatele ), dám sem radši plný kód abys byl v obraze :
require_once "include/include.php";
require_once "classes/mails.php";
require_once "classes/mail_settings.php";
require_once "classes/mail_templates.php";
global $db;
global $lng;
$info='';
$smarty = new Smarty;
$smarty = common($smarty);
$smarty->assign("lng",$lng);
// fix for nyromodal not considering the correct charset
global $appearance_settings;
header('Content-type: text/html; charset='.$appearance_settings);
if(isset($_GET) && is_numeric($_GET)) $ad_id=$_GET;
else
if(isset($_POST) && $_POST && is_numeric($_POST))
$ad_id = $_POST;
else exit(0);
$nologin = 0;
if(isset($_GET) && is_numeric($_GET) && $_GET) {
$id=$_GET;
}
else if(isset($_POST) && $_POST && is_numeric($_POST)) {
$id = $_POST;
}
else {
$id=0;
$listings = new listings;
$nologin = $listings->isNologinAd($ad_id);
if(!$nologin) exit(0);
}
$adss = new ads_settings;
$ads_settings = $adss->getAll();
$show_send_mail=$ads_settings;
if($show_send_mail==0) exit(0);
$tmp=array();
$error='';
if(!$nologin) {
$users=new users();
$username=$users->getUsername($id);
} else {
$listings = new listings;
$user_info = $listings->getOwnerInfo($ad_id);
$username = $user_info;
}
if(isset($_POST) || isset($_POST) || isset($_POST)) {
$mail_settings=new mail_settings();
if(!isset($_POST) || $_POST=='') {
$error.=$lng.'
';
}
if(!isset($_POST) || $_POST=='' ) {
$error.=$lng.'
';
} else if(!validator::valid_email($_POST)) {
$error.=$lng.'
';
}
if(!isset($_POST) || $_POST=='' ) {
$error.=$lng.'
';
}
if($settings && (!isset($_POST) || md5($_POST) != $_SESSION) ) {
$error.=$lng.'
';
}
if($error=='') {
if(!$nologin) {
$useremail=$users->getEmail($id);
$name=$users->getContactName($id);
} else {
//$listings = new listings;
//$user_info = $listings->getOwnerInfo($ad_id);
$useremail = $user_info;
$name = $user_info;
}
$mail = new mails($useremail, $name, clean($_POST), clean($_POST));
$templates=new mail_templates();
$mail_array=$templates->getVal("mailto");
global $config_live_site;
$mail_settings_cl=new mail_settings(); $mails_settings=$mail_settings_cl->getAll();
$html_mails=$mails_settings;
$ad_title = listings::getTitle($ad_id);
$url_title = _urlencode($ad_title);
global $seo_settings;
if($seo_settings) {
$lnk=$config_live_site."/".$ad_id."-".$url_title."/details.html";
}
else $lnk=$config_live_site.'/details.php?id='.$ad_id;
if($html_mails) $lnk = ''.$lnk.'';
// -------- create mail content -----------
$smarty_mail = new Smarty;
$smarty_mail = smartyShowDBVal($smarty_mail);
$smarty_mail->assign("value", $mail_array);
if(!$nologin) $smarty_mail->assign("username", $username);
else $smarty_mail->assign("username", $name);
$smarty_mail->assign("sender_name", clean($_POST));
$smarty_mail->assign("sender_email", clean($_POST));
$smarty_mail->assign("ad_link", $lnk);
$smarty_mail->assign("title", $ad_title);
$smarty_mail->assign("message", nl2br(clean($_POST)));
$mail_content = $smarty_mail->fetch("db_template.html");
$mail->setMessage($mail_content);
$smarty_mail->assign("value", $mail_array);
$mail_subject = $smarty_mail->fetch("db_template.html");
$mail->setSubject($mail_subject);
if($mail->send()) $info=$lng;
else $info=$lng;
} else {
if(isset($_POST)) $tmp = clean($_POST); else $tmp='';
if(isset($_POST)) $tmp = clean($_POST); else $tmp='';
if(isset($_POST)) $tmp = clean($_POST); else $tmp='';
}
if(isset($_POST)) { echo $error."|".$info; exit(0); }
}
$smarty->assign("id",$id);
$smarty->assign("ad_id",$ad_id);
$smarty->assign("username",$username);
$smarty->assign("tmp", $tmp);
$smarty->assign("error", $error);
$smarty->assign("info",$info);
$db->close();
if($db->error!='') { $db_error = $db->getError(); $smarty->assign('db_error',$db_error); }
$smarty->display('mailto.html');
close();
?>
30. 7. 2011 12:37:51
https://webtrh.cz/diskuse/odtraneni-diakritiky-z-emailoveho-formulare/#reply660936
Petr
verified
rating uzivatele
(9 hodnocení)
30. 7. 2011 12:41:21
pokud chces zmenit jen predmet mailu tak uprav kod takto >>
zkus zmenit na
---------------
edit1: nebo si to napis do nejake fce (do souboru s fcema) kterou tam budes includovat nahore... a pak jen zavolas >>
a fce by mohla vypadat nasledovne (pisu to z hlavy a jen pro predstavu)
30. 7. 2011 12:41:21
https://webtrh.cz/diskuse/odtraneni-diakritiky-z-emailoveho-formulare/#reply660935
jarin001
verified
rating uzivatele
(37 hodnocení)
30. 7. 2011 12:48:55
On je tento soubor pro víc formulářů, subject je vlastně používaný jen pro kontaktování mě, nebo u komentářů ale ty mám vypnuté.
Jak bych tenhle zápis dostal do "name" ?
30. 7. 2011 12:48:55
https://webtrh.cz/diskuse/odtraneni-diakritiky-z-emailoveho-formulare/#reply660934
Petr
verified
rating uzivatele
(9 hodnocení)
30. 7. 2011 12:49:34
do "name" ??
30. 7. 2011 12:49:34
https://webtrh.cz/diskuse/odtraneni-diakritiky-z-emailoveho-formulare/#reply660933
jarin001
verified
rating uzivatele
(37 hodnocení)
30. 7. 2011 13:52:49
Ano, prakticky potřebuju jenom "name". Mě to chodí do Thunderbirdu v pořádku s diakritikou, ale třeba v Seznamácký schránce je to plný otazníků.
---------- Příspěvek doplněn 30.07.2011 v 13:54 ----------
To name se objevuje v odpovědi na inzerát, můžeš zkusit tenhle (ten je můj)
http://www.ojeto.cz/2264-servisni-manualy-skoda-cz/details.html
30. 7. 2011 13:52:49
https://webtrh.cz/diskuse/odtraneni-diakritiky-z-emailoveho-formulare/#reply660932
Petr
verified
rating uzivatele
(9 hodnocení)
30. 7. 2011 14:34:04
no proste vzdycky jen obal promennou tou fci
30. 7. 2011 14:34:04
https://webtrh.cz/diskuse/odtraneni-diakritiky-z-emailoveho-formulare/#reply660931
jarin001
verified
rating uzivatele
(37 hodnocení)
30. 7. 2011 14:39:24
Fajn, já to nějak zkusím ale budu to moct testovat až v noci, zatím díky.
30. 7. 2011 14:39:24
https://webtrh.cz/diskuse/odtraneni-diakritiky-z-emailoveho-formulare/#reply660930
Petr
verified
rating uzivatele
(9 hodnocení)
30. 7. 2011 14:50:21
kdyby neco napis maila ;-)
30. 7. 2011 14:50:21
https://webtrh.cz/diskuse/odtraneni-diakritiky-z-emailoveho-formulare/#reply660929
Určitě se tam nedává hlavička o kódování, Thunderbird to prostě překóduje defaultním (utf8), seznam to zobrazí tak jak je. Píšu z hlavy, zkuste:
$mail->setSubject(sprintf('=?UTF-8?B?%s?=',base64_encode($mail_subject)));
přesný formát zjistíte na:
http://en.wikipedia.org/wiki/MIME#Encoded-Word nebo přímo v RFC
1. 8. 2011 07:56:51
https://webtrh.cz/diskuse/odtraneni-diakritiky-z-emailoveho-formulare/#reply660928
jarin001
verified
rating uzivatele
(37 hodnocení)
1. 8. 2011 17:44:12
Díky, ale jak už jsem psal, mě nejde o předmět ale odesílatele "name".
U toho subjectu bych Vaše nápady uměl aplikovat, zápis "name" je ale jiný.
Co se týká kódování, myslím že ten PHP soubor odesílá všechno v UTF-8,
tohle kódování mám nastaveno u všech souborů.
1. 8. 2011 17:44:12
https://webtrh.cz/diskuse/odtraneni-diakritiky-z-emailoveho-formulare/#reply660927
Pro odpověď se přihlašte.
Přihlásit