|
|
|
| Добрый вечер. Такая ситуация. Делал сайт на заказ, на OpenServer все отлично, залил на тестовый сервер тоже всё отлично. Как только сайт залили на арендованный сервер, начались приколы, которые мне за мало опытностью не понятны.
Подключаю на страницу файл, содержащий две функции, преобразующие дату.
include_once("functions/data.php");
|
После подключения страница, на которой подключается файл напрочь не грузится. Выбивает Ошибка HTTP 500 (Internal Server Error)....
Как только комментирую подключение этого файла, снова всё работает на ура.
Вот содержание файла data.php
<?php
function birthday($value){
$montharray = array('01' => 'Января','02' => 'Февраля','03' => 'Марта','04' => 'Апреля','05' => 'Мая','06' => 'Июня','07' => 'Июля','08' => 'Августа','09' => 'Сентября','10' => 'Октября','11' => 'Ноября','12' => 'Декабря');
$time = explode(' ',$value);
$date = $time[0];
$dateconvert = explode('-',$date);
$year = $dateconvert[0];
$month = $montharray[$dateconvert[1]];
$day = $dateconvert[2];
$time = $time[1];
return $day." ".$month." ".$year;
}
function date_add($value){
$montharray = array('01' => 'Января','02' => 'Февраля','03' => 'Марта','04' => 'Апреля','05' => 'Мая','06' => 'Июня','07' => 'Июля','08' => 'Августа','09' => 'Сентября','10' => 'Октября','11' => 'Ноября','12' => 'Декабря');
$time = explode(' ',$value);
$date = $time[0];
$dateconvert = explode('-',$date);
$year = $dateconvert[0];
$month = $montharray[$dateconvert[1]];
$day = $dateconvert[2];
$time = $time[1];
return $day." ".$month." ".$year. " в ".$time;
}
?>
|
Уже все глаза проглядел, немогу понять в чем косяк, ведь на локальном и тестовом сервере работает отлично. Дайте совет где копнуть. | |
|
|
|
|
|
|
|
для: Kaje
(21.10.2012 в 23:08)
| | 500 Internal Server Error - любая внутренняя ошибка сервера, которая не входит в рамки остальных ошибок класса.
Может возникать из-за неверного синтаксиса в файле .htaccess, несоответствии прав на доступ, и т.д..
Но зачем эти функции вообще нужны? Разве нельзя это решать проще с помощью стандартных функций даты/времени? | |
|
|
|
|
|
|
|
для: confirm
(21.10.2012 в 23:20)
| | Требуется выводить пользователю дату из 2012-10-21 в виде 21 октября .
Стандартные средства позволяют только на английском выводить названия месяцев.
Поправьте если я ошибаюсь. | |
|
|
|
|
|
|
|
для: Kaje
(21.10.2012 в 23:26)
| | Не правда, что стандартные средства только на английском, можно и на русском, если установить локаль.
А даже если и не получиться это, то проще date(нужное, strtotime(метка времени)), включая и вывод месяца из массива, чем то, что вы наворотили. | |
|
|
|
|
|
|
|
для: confirm
(21.10.2012 в 23:29)
| | с date(нужное, strtotime(метка времени)) долго мудрил и в итоге получились лишь англоязычные названия. После чего сделал вот такую функцию по деревенски.
Поставленную проблему решил, вставив функцию birthday прям в страницу, без подключений через include. Работает нормально все. Но вопрос остался. Почему же на третьем сервере не работало? | |
|
|
|
|
|
|
|
для: Kaje
(22.10.2012 в 00:18)
| | Я не знаю почему у вас на третьем не работало, так как не цыганка и не гадаю, а причин может быть много. ) Проверьте логи, может что они вам объяснят.
Что касается невозможности получить месяц на русском, то date(нужное, strtotime(метка времени)) к этому отношения не имеет. Это я написал к тому, что данное выражение позволяет проверить корректность данных даты/времени (строки), получить необходимые фрагменты времени, включая номер месяца, по которому и получить из массива имя месяца. Это куда компактнее будет.
А месяц на русском, это strftime(). | |
|
|
|