@Solredan

Как исправить ошибку «Cannot redeclare»?

Доброго времени суток, не могу назвать себя программистом, но тем не менее поставленные задачи люблю выполнять
так допустим была поставлена поднять некий проект на сервере под убунту.
установил.
настроил.
запустил.
с первого взгляда всё работает и даже хорошо.
я радостный.
но не тут то было, при переходе из административной панели допустим в вкладку "пользователи"(они же client.php)
выдавал белый лист
тогда включил отображение ошибок
теперь выдает следующее
Notice: A session had already been started - ignoring session_start() in /var/www/html/project.local/app/controllers/clients.php on line 2

Fatal error: Cannot redeclare site_proto() (previously declared in /var/www/html/project.local/functions.inc.php:45) in /var/www/html/functions.inc.php on line 45

содержание functions.inc.php: в 45 строке следующее:
44 function site_proto() {
45   $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
46   $domainName = $_SERVER['HTTP_HOST'] . '/';
47    return $protocol;


ну и соответственно почитав интернет, я так и не понял, что мне требуется исправить, что бы у меня заработала вторая половина сервиса
  • Вопрос задан
  • 4861 просмотр
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
Вы дважды подключаете этот файл в ходе работы и второй раз объявление функции не удаётся.
Самое простое, обернуть функцию в проверку:
if (!function_exists('site_proto')) {
  function site_proto() {
    ...
  }
}
Ответ написан
@Solredan Автор вопроса
Спасибо, но то не дало результата

В итоге я применил всё своё внимание
и заметил что в сообщении об ошибке
otice: A session had already been started - ignoring session_start() in /var/www/html/project.local/app/controllers/clients.php on line 2

Fatal error: Cannot redeclare site_proto() (previously declared in /var/www/html/project.local/functions.inc.php:45) in /var/www/html/functions.inc.php on line 45


он как раз и указывает второй файл, что на самом деле странно, ведь в корневой каталог /var/www/html/ система не была развернута

но тем не менее там она была, в итоге я удалил всё лишнее, и о чудо оно всё прекрасно заработало.

всем спасибо за внимание и помощь.
всех обнимаю.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы