1

Тема: Русскоязычные теги и Disallowed Key Characters

Добрый день. При открытии любого русскоязычного тега получаю сообщение

Disallowed Key Characters.

Пример - http://krok.biz.ua/tags/search/новинки

А вот с англоязычными всё в порядке - http://krok.biz.ua/tags/search/Petzl.

Подскажите, пожалуйста, как решить проблему.

2

Re: Русскоязычные теги и Disallowed Key Characters

Можете в файле system/libraries/Input.php функцию

    function _clean_input_keys($str)
    {
        if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str))
        {
            exit('Disallowed Key Characters.');
        }

        return $str;
    }

заменить на

    function _clean_input_keys($str)
    {
             var_dump($str);
    }

и показать результат?

Thumbs up Thumbs down

3

Re: Русскоязычные теги и Disallowed Key Characters

string(27) "/tags/search/новинки" string(3) "iua" string(1) "b" string(15) "createnewlink_w" string(15) "createnewlink_h" string(6) "__utmz" string(9) "PHPSESSID" string(6) "__utma" string(6) "__utmc" string(6) "__utmb"

A PHP Error was encountered
Severity: Warning

Message: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at Z:\home\krok.biz\www\system\libraries\Input.php:218)

Filename: libraries/native_session.php

Line Number: 159

4 Отредактировано admin (23-12-2010 23:55:25)

Re: Русскоязычные теги и Disallowed Key Characters

Создайте файл ./application/libraries/MY_Input.php c таким текстом:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class MY_Input extends CI_Input {

    public function __construct()
    {
        parent::__construct();
    }

    public function _clean_input_keys($str)
    {
        if ( ! preg_match("/^[А-Яа-яa-z0-9:_\/-]+$/i", $str))
        {
        exit('Disallowed Key Characters.');
        }
    }

}

должно работать.

Thumbs up Thumbs down

5

Re: Русскоязычные теги и Disallowed Key Characters

К сожалению не работает.

6

Re: Русскоязычные теги и Disallowed Key Characters

В aplication/libraries создайте MY_URI.php с кодом:

<?php
class MY_URI extends CI_URI
{
    function _filter_uri($str)
    {
        if ($str != '' AND $this->config->item('permitted_uri_chars') != '')
        {
            if ( ! preg_match("|^[".preg_quote($this->config->item('permitted_uri_chars'))."]+$|i", rawurlencode($str)))
            {
                exit('The URI you submitted has disallowed characters.');
            }
        }
            
        return $str;
    }
}
?>

в application/config/config.php измените $config['permitted_uri_chars'] на:

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';

Поможет.

Thumbs up Thumbs down

7

Re: Русскоязычные теги и Disallowed Key Characters

Сделал всё по инструкции, всё не работает. Версия 4.4.5 shop

Ошибка следующая:
string(6) "__utma" string(6) "__utmz" string(9) "autologin" string(4) "lt-v" string(9) "PHPSESSID" string(6) "__utmc" string(5) "lt-tl" string(5) "lt-pc" string(15) "lt-on-site-time"               

Не работает только в Safari и IE.

Помогите, плиз

Thumbs up Thumbs down