Помогите, не могу никак понять
Вопрос заключается в следующем, у меня загрузка изображения и там же текстовые поля, все в одной форме, обработка передается скрипту, если текстовые поля содержат юникод то в базу 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 записывались символы а не их код. |
кодировку поменяй,
и в базе тоже чарльзсет сет ютф-8(кодировка) |
все я решил данну проблему, просто символы передавались с js в форме HTML Entities, для преобразования используется функция html_entity_decode
|
Часовой пояс GMT +3, время: 08:28. |