Вопрос заключается в следующем, у меня загрузка изображения и там же текстовые поля, все в одной форме, обработка передается скрипту, если текстовые поля содержат юникод то в базу MySQL записывается utf код, а не сами символы как это исправить?
Если форма без поля загрузки изображения то все работает нормально, но мне надо с полем, я как понял данные передаются наверно в формате json но при преобразовании строки перед записью в базу функцией json_decode, все равно не помогает.
Внизу вырезки кода из скрипта формы и обработки:
childWin = new Ext.Window({
title: 'Добавление вопроса',
iconCls: 'man7',
width: 346,
height: 340,//350
plain: true,
closable: false,
resizable: false,
layout: 'fit',
modal: true,
method:'POST',
items: new Ext.FormPanel({
region: 'center',
id: 'QaddForm',
labelWidth: 120,
fileUpload: true,
frame:true,
bodyStyle:'padding:5px 5px 0',
defaults: {width: 180},
defaultType: 'textarea',
items: [
{
store: storeTest,
id: 'test',
xtype:'combo',
mode: 'local',
displayField:'naim',
typeAhead: true,
forceSelection: true,
emptyText:'Выберите значение...',
fieldLabel : nnul+'Название теста',
hiddenName: 'id_test',
valueField : 'id',
allowBlank:false,
blankText: 'Выберите название теста',
loadingText : 'Загрузка...'
},{
fieldLabel: nnul+'Вопрос',
name: 'question',
allowBlank:false,
maxLength: 100,
height:40,
id: 'question'
},{
fieldLabel: nnul+'Правильный ответ',
name: 'var1',
allowBlank:false,
maxLength: 100,
height:40,
id: 'var1'
},{
fieldLabel: nnul+'Вариант 2',
name: 'var2',
allowBlank:false,
maxLength: 100,
height:40,
id: 'var2'
},{
fieldLabel: nnul+'Вариант 3',
name: 'var3',
allowBlank:false,
maxLength: 100,
height:40,
id: 'var3'
},{
xtype: 'fileuploadfield',
id: 'file_upload',
emptyText: 'выберите картинку...',
fieldLabel: ' Картинка (.jpeg)',
name: 'img_url',
autoHeight : true,
buttonText: '',
buttonCfg: {iconCls: 'man12'},
listeners:{fileselected:function(t,value){
var reg=/(.+)\.(.+)$/;
var arr=reg.exec(value);
if ((arr[2]!="jpeg" && arr[2]!="JPEG"))
{
Ext.getCmp('file_upload').reset();
Ext.Msg.alert('Ошибка',"Неверный формат изображения."+arr[2])
}
else
{
var v = Ext.getCmp('file_upload').getValue();
}
}
}
}],
buttons: [{
text: 'Добавить',
type:'submit',
handler: function(){
if(Ext.getCmp('QaddForm').getForm().isValid()) {
Ext.getCmp('QaddForm').getForm().submit({
url: 'php/admin/question.php?par=add',
waitMsg: 'Обработка данных',
success: function(fp, o){
Ext.getCmp('question_grid').store.reload();
childWin.close();
childWin = null;
},
failure:function(f,a){
switch(a.result.errors.Id){
case '1':
Ext.Msg.alert('Ошибка!!! ', 'Такая запись уже существует. <br>'+support);
break;
case '3':
Ext.Msg.alert('Ошибка!!!',a.result.errors.title);
break;
case '5':
Ext.Msg.alert('Неизвестная Ошибка', support);
break;
}
}
});
}
}
}}
$id_test = $_POST["id_test"];
$v = $_POST["question"];
$v1 = $_POST["var1"];
$v2 = $_POST["var2"];
$v3 = $_POST["var3"];
if (($id_test!=NULL) && ($v!=NULL) && ($v1!=NULL) && ($v2!=NULL) && ($v3!=NULL))
{
$res = mysql_query("select id from questions where (id_test='$id_test' && v='$v')");
$row = mysql_fetch_array($res);
$nrow = mysql_num_rows($res);
if ($nrow==0)
{
$on_img = $_FILES['img_url']['name'];
if ($on_img!=NULL)
{
if ($_FILES['img_url']['error']==0)
{
$on_img = '1';
$res = mysql_query("SELECT max(id) from questions");
$row = mysql_fetch_array($res);
$img_name = $row["max(id)"]+1 /*. '.jpg'*/;
if (!file_exists($path)){
$path1 = str_replace('/', '\\', $path);
mkdir($path1,0777,true);
};
image_resize($_FILES['img_url'],$img_name,$path,1024,1024);
}
else
{
$on_img = '0';
echo '{success: false,errors: {title: "Error file upload", Id: "3"}}';
}
}
else
{
$on_img = '0';
}
$v=json_decode('ү');
$query = "INSERT INTO questions (id_test,v,v1,v2,v3,on_img) VALUES('$id_test','$v','$v1','$v2','$v3','$on_img')";
mysql_set_charset('utf8');
mysql_query($query);
echo '{success:true, file:'.json_encode($_FILES['img_url']['name']).'}';
}
else
{
echo '{success: false,errors: {title: "Dublicate", Id: "1"}}';
}
}
else
{
echo '{success: false,errors: {Id: "5"}}';
}
Прошу помощи!!!
Надо чтоб в базу MySQL записывались символы а не их код.