PHP: различия между версиями

Материал из Wiki МИАЦ ВО
Перейти к навигации Перейти к поиску
(Установка)
 
(не показано 15 промежуточных версий этого же участника)
Строка 1: Строка 1:
Буду записывать проблемы, с которыми я столкнулся и их решение
+
#[[FAQ]]
==Настройки, которые я сделал при переходе на php 5.3==
+
#[[Работа с RAR архивами]]
====/etc/php.ini====
+
#[[Проверка СНИЛС]]
<pre>log_errors = on
+
#[[Проверка номера ОКПО]]
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
+
#[[Проверка медицинского полиса]]
display_errors = on
+
#[[Расстояние между двумя точками на карте по их координатам]]
post_max_size = 200M
+
#[https://github.com/mote0230/dbase-pecl-php7 dbase-pecl-php7]
upload_max_filesize = 200M
+
#[[Добавления модуля memcache]]
; Если не указать тайм зону, то будут сыпаться ошибки.
+
#[[Установка composer]]
date.timezone = Europe/Moscow
+
#[[Установка модуля rar]]
; заремарить следующую строку, иначе письма будут терять поле FROM
+
#[[Код файла json для Select2, для получения форматирования с optgroup]]
;mail.add_x_header = On
 
</pre>
 
 
 
==FAQ==
 
===Вопрос===
 
Есть страничка на которой отмечается около 120 checkbox'ов. С помощью функции
 
<pre>print_r($_REQUEST);</pre>
 
просматриваю их состояние после ввода. Так вот вводится только 100 или 101 отмеченный чекбокс, остальные пропадают, те их нет в выводе, хотя тоже отмечены.<br>
 
====Ответ====
 
Отредактируйте строки в конфигурационном файле /etc/php.d/Z98_suhosin.ini
 
<pre>suhosin.request.max_vars 500
 
suhosin.post.max_vars 500</pre>
 
===Message: Function set_magic_quotes_runtime() is deprecated===
 
При переносе сервера, появилась ошибка '''Message: Function set_magic_quotes_runtime() is deprecated'''
 
====Решение====
 
Эта функция считается устаревшей в 5.3, а в 6.0 ее вообще не будет.
 
Один из вариантов. Поставить перед функцией '''set_magic_quotes_runtime()''' знак '''@'''.
 
===Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function===
 
При переносе сервера, появилась ошибка '''При переносе сервера, появилась ошибка '''Message: Function set_magic_quotes_runtime() is deprecated ...'''
 
====Решение====
 
В php.ini прописать
 
<pre>date.timezone = Europe/Moscow</pre>
 
===Как при подключении к MSSQL базе с кодировкой CP1251, а выводить данные в UTF8?===
 
При выводе данных из таблиц MSSQL все русские буквы стали знаками вопроса.
 
====Решение====
 
В php.ini установить переменную
 
<pre>mssql.charset = "UTF8"</pre>
 
===При выводе поля типа datetime, оно выводится уже форматированным===
 
При выводе поля типа datetime, оно выводится уже форматированным, а надо как есть.
 
====Решение====
 
В php.ini установить переменную
 
<pre>mssql.datetimeconvert = Off</pre>
 
===Знакомство с PEAR:: Spreadsheet_Excel_Writer (установка и устранение ошибок)===
 
====Установка====
 
<pre>#apt-get install php-pear
 
# pear install -f OLE
 
# pear install -f Spreadsheet_Excel_Writer</pre>
 
 
 
====Документация====
 
#[http://phpclub.ru/detail/article/Excel_Writer Создание таблиц Excel средствами PHP]
 
#[http://pear.php.net/package/Spreadsheet_Excel_Writer/docs Документация]
 
====Устранение ошибок====
 
=====1. Вылезает ошибка:=====
 
<pre>Deprecated: Call-time pass-by-reference has been deprecated in /usr/share/pear/Spreadsheet/Excel/Writer/Worksheet.php on line 2490</pre>
 
Редактируем файл '''Spreadsheet/Excel/Writer/Worksheet.php''' строка 2489<br />
 
Было
 
<pre>$string=$header.$data;
 
$this->_append(&$string, true);</pre>
 
Стало<pre>$this->_append($header.$data, true);</pre>
 
Взято [http://pear.php.net/bugs/bug.php?id=19773&edit=12&patch=fix-call-time_pass-by-reference&revision=1359123571 тут]<br />
 
<br />
 
=====Ошибка открытия excel файла в office 2010 в w7 и w8'''.=====
 
Редактируем файл '''/usr/share/pear/OLE/PPS/Root.php''' строка 623 :<br />
 
Было<pre>fwrite($FILE, pack("V", 1));</pre>
 
Стало<pre>fwrite($FILE, pack("V", $num_sb_blocks));</pre>
 
Взято [http://pear.php.net/bugs/bug.php?id=19284&edit=3 тут]
 

Текущая версия на 09:27, 27 января 2023