Потдержка PHP 5.3.0

Нашли ошибку в CI? — пишем сюда!

Потдержка PHP 5.3.0

Сообщение r00les » 08 июл 2009, 11:09

Помогите с проблемой..., по всей видимости я не первый.

Код: Выделить всё
A PHP Error was encountered

Severity
: 8192

Message
: Function set_magic_quotes_runtime() is deprecated

Filename
: codeigniter/CodeIgniter.php

Line Number
: 60
A PHP Error was encountered


Severity
: 8192

Message
: Assigning the return value of new by reference is deprecated

Filename
: libraries/Loader.php

Line Number
: 255 
r00les
 
Сообщения: 11
Зарегистрирован: 25 мар 2009, 17:43

Re: Потдержка PHP 5.3.0

Сообщение r00les » 08 июл 2009, 17:55

Решил сам:

Первая ошибка ( решение ):

Файл: codeigniter/CodeIgniter.php
Действие: Удалить функцию set_magic_quotes_runtime(0);


Вторая ошибка ( решение ):

Файл: libraries/Loader.php
Действие: В строке с номером 255 заменить $CI->dbutil =& new $class(); на $CI->dbutil = new $class(); так как создавать ссылки при создании нового объекта уже видимо нельзя.
r00les
 
Сообщения: 11
Зарегистрирован: 25 мар 2009, 17:43

Re: Потдержка PHP 5.3.0

Сообщение r00les » 08 июл 2009, 18:01

Так же не будет работать проверка адресной строки на недопустимые символы из за функции preg_quote() в которой добавился ещё один символ который теперь экранируется, но не должен был, это " - " поэтому конструкция a-z будет выглядить как a\-z и правильно работать регулярка уже не будет. Поэтому советую заменить в файле libraries/URI.php функции _filter_uri() и _remove_url_suffix(), на:

Код: Выделить всё
    function _filter_uri($str)
    {
        if ($str != '' && $this->config->item('permitted_uri_chars') != '' && $this->config->item('enable_query_strings') == FALSE)
        {
            if ( ! preg_match("|^[".$this->config->item('permitted_uri_chars')."]+$|i", $str))
            {
                header('HTTP/1.1 400 Bad Request');
                show_error('The URI you submitted has disallowed characters.');
            }
        }

        // Convert programatic characters to entities
        $bad    = array('$',         '(',         ')',         '%28',         '%29');
        $good    = array('$',    '(',    ')',    '(',    ')');

        return str_replace($bad, $good, $str);
    } 


Код: Выделить всё
    function _remove_url_suffix()
    {
        if  ($this->config->item('url_suffix') != "")
        {
            $this->uri_string = preg_replace("|".$this->config->item('url_suffix')."$|", "", $this->uri_string);
        }
    } 
r00les
 
Сообщения: 11
Зарегистрирован: 25 мар 2009, 17:43

Re: Потдержка PHP 5.3.0

Сообщение just123i » 09 июл 2009, 00:08

Спасибо! :)
just123i
 
Сообщения: 7
Зарегистрирован: 04 июл 2009, 12:20

Re: Потдержка PHP 5.3.0

Сообщение D3NMOH » 15 дек 2009, 05:46

Код: Выделить всё
A PHP Error was encountered

Severity
: 8192

Message
: Assigning the return value of new by reference is deprecated

Filename
: libraries/Loader.php

Line Number
: 242


как с этим бороться?
D3NMOH
 
Сообщения: 1
Зарегистрирован: 15 дек 2009, 03:34

Re: Потдержка PHP 5.3.0

Сообщение r00les » 11 янв 2010, 16:41

D3NMOH писал(а):
Код: Выделить всё
A PHP Error was encountered

Severity
: 8192

Message
: Assigning the return value of new by reference is deprecated

Filename
: libraries/Loader.php

Line Number
: 242


как с этим бороться?


Ды очень просто, скачай последнюю версию, там всё исправлено. У самого стоит PHP 5.3.1 и всё нормально
r00les
 
Сообщения: 11
Зарегистрирован: 25 мар 2009, 17:43

Re: Потдержка PHP 5.3.0

Сообщение r00les » 12 янв 2010, 10:30

D3NMOH

А вообще ошибка из за того что ссылка на объект создаётся в связке с return. -> return new DB();

А надо:

$db = new DB();

return $db;
r00les
 
Сообщения: 11
Зарегистрирован: 25 мар 2009, 17:43

Re: Потдержка PHP 5.3.0

Сообщение vladname » 11 май 2010, 14:44

А было ли у кого следующее. если вызвать несуществующий метод модели (или нерабочий) то никаких ошибок не показывает, просто белый экран?
на PHP 5.2 пишет Fatal Error: Call to undefined method... на PHP 5.3 пустой экран
vladname
 
Сообщения: 30
Зарегистрирован: 09 дек 2008, 09:20

Re: Потдержка PHP 5.3.0

Сообщение Tovit » 11 май 2010, 15:46

Листайте конфиг php где-то выключен показ ошибок.

Попробуйте перед вызовом написать error_reporting(E_ALL);
Фантазия! Фантазия! Она поможет... не форум!
Аватара пользователя
Tovit
Модератор
 
Сообщения: 1230
Зарегистрирован: 15 фев 2009, 17:18

Re: Потдержка PHP 5.3.0

Сообщение vladname » 11 май 2010, 15:49

index.php включено по дефолту
пысы - изменились настройки php после обновления, пардоньте
vladname
 
Сообщения: 30
Зарегистрирован: 09 дек 2008, 09:20


Вернуться в Баг-репорты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0