We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 6348
    • 90 Posts
    Есть таблица DEFAULT CHARSET=utf8 (кодировка страниц тоже utf-8). В ней хранятся данные одного из TV параметра в таком виде:

    INSERT INTO `dora_site_tmplvars` VALUES (’1’,’checkbox’,’genre’,’Жанр’,’Жанры фильма’,’0’,’8’,’0’,’<em>комедия</em> - бла-бла||<em>романтика</em> - бла-бла||<em>боевик</em> - бла-бла’,’0’,’’,’’,’’);
    есть сниппет, с помоью которого все это дело распарсиваем:
    $output = "";
    $result = $modx->db->query( 'SELECT elements FROM dora_site_tmplvars WHERE name="'genre'"');
    while( $row = $modx->db->getRow( $result ) )             {   $items=explode ("||",trim($row["elements"]));    }
    asort($items);
    
    foreach ($items as $value) {
    preg_match('|<em>(.*?)</em>(.*)|',$value,$matches);
    
    $output .="<p><a href='index.php?id=18&".$param."=".$matches[1]."'>".$matches[1]."</a> ".$matches[2]."</p>";
    }
    
    return $output;
    ?>
    


    формирую строки типа: <a href=’index.php?id=18&genre=боевик>боевик</a> - бла-бла
    но, когда я кликаю на эту ссылку и перехожку на страницу, где с помощью $_GET[’genre’] вывожу этот жанр на страницу (она в utf8) я вижу на экране бред:
    аБаОаЕаВаИаК вместо боевик
    аМб�Зб�КаАаЛб�Нб�Й вместо музыкальный
    аМаЕаЛаОаДб�АаМаА - вместо мелодрама
    пробовал так:
    $output .="<p><a href='index.php?id=18&".$param."=".rawurlencode($matches[1])."'>".$matches[1]."</a> ".$matches[2]."</p>";


    Один фиг
    Почему так происходит?