Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   Php и кодировка (http://www.flasher.ru/forum/showthread.php?t=143367)

Mahys 14.08.2010 20:30

Php и кодировка
 
PHP код:

<?php
/*config.php*/
  
$mysql_server='localhost';
  
$mysql_user='root';
  
$mysql_pass='';
  
$mysql_name='Tester';

  function 
do_query($z){
    global 
$mysql_server,$mysql_user$mysql_pass$mysql_name;
    
$lin mysql_pconnect($mysql_server,$mysql_user$mysql_pass);
   
mysql_query("SET NAMES 'utf8'");
    if (
mysql_select_db($mysql_name$lin)) {
      return 
mysql_query($z);
    }
  }

?>

PHP код:

<?php
  
/* search3.php*/
  
include_once('config.php');
  
$my_query 'SELECT * FROM `Recept` WHERE 1'
  
  
$name $_GET['name']; 
  if (
$name$my_query .= ' AND `name` LIKE "%'.$name.'%"';
  
$s $_GET['yes'];
  
$type = (int)$_GET['type'];
  if (
$type$my_query .= ' AND `type`="'.$type.'"';
  if (
$s) {
    
$mass explode(", "$s);  
    for (
$i0$i<count($mass); $i++) 
     
$my_query .= ' AND `composition` LIKE "%'.$mass[$i].'%"';
  }
  
  
$s $_GET['no'];
  if (
$s) {
  
$mass explode(", "$s);
  for (
$i0$i<count($mass); $i++) 
    
$my_query .= ' AND NOT (`composition` LIKE "%'.$mass[$i].'%")';
  
  }
  
/*echo $my_query."<br>";*/
  
  
$result do_query($my_query);
  
  echo 
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>
  <main>"
;
  if (
mysql_num_rows($result))
   while (
$r mysql_fetch_array($result))   {  
    echo  
'<recipe>
    <id>'
.$r[id].'</id>     
    <name>'
.$r[name].'</name>
    <authorid>'
.$r[author].'</authorid>
    <rating>'
.$r[rating].'</rating>
    </recipe>'
;
   
   }
  echo 
'<count>'.mysql_num_rows($result).'</count>
  </main>'
;
?>


Код AS3:

protected function find_clickHandler(event:MouseEvent):void
                        {
 
                                var receptlist:XML = new XML();
                                var xmlLoader:URLLoader = new URLLoader();
                                var url:String= new String;
                                var GT:Boolean=false;
 
                                url='http://rusl/search3.php?'
                                if (Fname.text.length>0)
                                { url=url+'name='+Fname.text;
                                  GT=true;
                                }
                                if (Fsorts.selectedIndex>0){
                                        if (GT){
                                                url=url+'&';
                                        }
 
                                        url=url+'type='+Fsorts.selectedIndex;
                                        GT=true;
                                }
                                if (Fyes.text.length>0){
                                        if (GT){
                                                url=url+'&';
                                        }
                                        url=url+'yes='+Fyes.text;
                                        GT=true;
                                }
                                if (Fno.text.length>0){
                                        if (GT){
                                                url=url+'&';
                                        }
                                        url=url+'no='+Fno.text;
                                }
 
 
                                xmlLoader.addEventListener(Event.COMPLETE, LoadXML);
                                xmlLoader.load(new URLRequest(url));
                                function LoadXML(event:Event):void {
                                        receptlist = new XML(event.target.data);
                                        var list:ArrayList= new ArrayList;
                                        var count:int = receptlist.count;
 
                                        for (var i:int = 0; i < count; i++) {
                                                var s:Object = { name:String, authorid:int, id:int, rating:Number};
                                                s.name=receptlist.recipe[i].name;
                                                s.authorid=receptlist.recipe[i].authorid;
                                                s.id=receptlist.recipe[i].id;
                                                s.rating=receptlist.recipe[i].rating;
                                                list.addItem(s);
                                        }
 
                                        currentState="list";
 
                                        relist.dataProvider=list;
                                }
                        }

Нормально обрабатывается только поле type. В БД стоит utf8_unicode_ci. Если в config.php убрать строку mysql_query("SET NAMES 'utf8'"); то все обратывается, но вместо русских букв выдаются крякозябры. В чем может быть проблема?

ps: Над безопасностью пока не заморачивались. Заранее спасибо

e_gamer 14.08.2010 20:45

Проверь файл конфигурации в MySQL my.cnf, поле default-character-set

Так же кодировку UTF-8 можно указать в хедере.
PHP код:

header('Content-type: text/html; charset=UTF-8'


Mahys 14.08.2010 20:57

Добавил header в config.php, не помогло.

default-character-set = cp1251, заменил на utf8 бестолку((

e_gamer 14.08.2010 22:57

Смотрю сервер - однако, мистика...


Часовой пояс GMT +4, время: 02:27.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.