fix arabic cross_site_rss with ajaxcrud
3908 ワード
詳細
1. change the mysql table/fields to utf8_general_ci and add a line on preheader.php
mysql_query("SET NAMES utf8");
apply utf-8 for all relative php/js files.
2. add tinyMCE in php page.
3. remember to trigger the save function before submit on page ajaxCRUD.class.php function insertHeader and function makeAjaxEditor
tinyMCE.triggerSave();
4. decode the fields on function doAction
5. encodeURIComponent on function makeAjaxEditor
6. on file javascript_functions.js
change the charset
http_request.overrideMimeType('text/plain;charset=utf-8');
replace escape to encodeURIComponent for function getFormValues
7. add to rss files - announcement_.php
1. change the mysql table/fields to utf8_general_ci and add a line on preheader.php
mysql_query("SET NAMES utf8");
apply utf-8 for all relative php/js files.
2. add tinyMCE in php page.
tinyMCE.init({
mode : "textareas",
theme : "advanced",
gecko_spellcheck : true,
remove_linebreaks : true,
width : "640",
plugins : "table,advimage,advlink,emotions,iespell,insertdatetime,preview,searchreplace,xhtmlxtras,media,directionality",
theme_advanced_buttons1 : "justifyleft,ltr,|,justifyright,rtl,|,justifycenter",
theme_advanced_buttons2 : "bold,italic,underline,strikethrough,|,fontsizeselect,forecolor,backcolor,|,sub,sup",
theme_advanced_buttons3 : "cut,copy,paste,pastetext,pasteword,removeformat,|,bullist,numlist,|,outdent,indent,|,undo,redo,|,preview",
theme_advanced_disable : "charmap",
theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_path_location : "bottom"
});
3. remember to trigger the save function before submit on page ajaxCRUD.class.php function insertHeader and function makeAjaxEditor
tinyMCE.triggerSave();
4. decode the fields on function doAction
foreach($submitted_array as $field){
$submitted_values[] = urldecode($field);
}
5. encodeURIComponent on function makeAjaxEditor
$return_html .= "" . $field_text . "
6. on file javascript_functions.js
change the charset
http_request.overrideMimeType('text/plain;charset=utf-8');
replace escape to encodeURIComponent for function getFormValues
str += fobj.elements[i].name + "=" + encodeURIComponent(fobj.elements[i].value) + "&";
var chkValue = encodeURIComponent(fobj.elements[i].value);
7. add to rss files - announcement_.php
echo " ";
echo " <description/>";
</code></pre>
<br/>
<br/>8. summary
<br/>use javascript function encodeURIComponent but escape to encode value
<br/>use php function urldecode to decode value
<br/>
<pre><code name="code">
// raw value
// <p>شعبية (بالصيني</p>
$str = urldecode('%3Cp%3E%D8%B4%D8%B9%D8%A8%D9%8A%D8%A9%20(%D8%A8%D8%A7%D9%84%D8%B5%D9%8A%D9%86%D9%8A%3C%2Fp%3E');
echo $str;
</code></pre>
</div>
</div>
</div>