Показать сообщение отдельно
  #1 (permalink)  
Старый 16.03.2010, 06:23
Новичок на форуме
Отправить личное сообщение для pav-pas Посмотреть профиль Найти все сообщения от pav-pas
 
Регистрация: 16.03.2010
Сообщений: 2

Помогите, не могу никак понять
Вопрос заключается в следующем, у меня загрузка изображения и там же текстовые поля, все в одной форме, обработка передается скрипту, если текстовые поля содержат юникод то в базу 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 записывались символы а не их код.
Ответить с цитированием