Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.189.2.122] |
|
Сообщ.
#1
,
|
|
|
Работаю на своём компьютере с использованием встроенного в php веб сервера. Запускаю с ключами -S -t.
Поскольку в нескольких файлах используется одинаковые фрагменты кода, решил вынести это в отдельный файл subs.php (находится в той же папке, что и остальные) запускаемый файл index.php содержит тэг frameset Как только добавляю include 'subs.php' (даже не используя функции из этого файла), браузер выдаёт пустой экран. при просмотре кода страницы убеждаюсь, что страница сформирована верно: <script type="text/javascript"> document.getElementsByTagName('title')[0].innerHTML= "Титул сайта"; </script> <frameset framespacing=0 border=0 cols="662,*" frameborder="0"> <frame name=contents src=TOCFrame.php?lng=ru style='mso-linked-frame:auto' target="main" scrolling="auto"> <frame name="player" src=player.php?lng=ru style='mso-linked-frame:auto' target="_self" scrolling="auto"> <noframes> <body lang=RU style='tab-interval:36.0pt'> <div class=Section1> <p class=MsoNormal>Эта страница содержит рамки, однако текущий обозреватель их не поддерживает.</p> </div> </body> </noframes> </frameset> но сами фреймы не загружаются.Веб сервер ошибок не выдаёт. файл этот ПОДКЛЮЧАЕТСЯ!!! Из него можно вызвать тестовую функцию, и она выведет текст: function test() {echo 'hhh' ;} Пробовал даже пустой файл подключать: <?php ?> Всё равно выполнение останавливается. На всякий случай содержимое файла subs.php: <?php function ConnectDb() { // Connect to database //---------------------------------- //echo 'ggggg'; $link = mysqli_connect($_SERVER['SERVER_NAME'], "login", "parol", "baza"); if (!$link) { echo "<p align=center>Error on opening of database:" . PHP_EOL . "</p>"; echo "<h1 align=center>Error №" . mysqli_connect_errno(). ": " . mysqli_connect_error() . "</h1>" . PHP_EOL; exit; } return $link; }; function test() {echo 'hhh' ;}; ?> |
Сообщ.
#2
,
|
|
|
P S Вставлял include в остальные два файла - там всё работает, как часы.
Похоже, что в файлах с frameset не работает include? |
Сообщ.
#3
,
|
|
|
А пробовали для начала удалить BOM?
|
Сообщ.
#4
,
|
|
|
Цитата Serafim @ А пробовали для начала удалить BOM? А что это такое? |
Сообщ.
#5
,
|
|
|
Я бы для начала заключил все значения атрибутов HTML-тегов в кавычки. Если не поможет, значит ошибка, как обычно, в семнадцатой строке.
|
Сообщ.
#6
,
|
|
|
Цитата AVA12 @ Я бы для начала заключил все значения атрибутов HTML-тегов в кавычки. Если не поможет, значит ошибка, как обычно, в семнадцатой строке. Не помогает. Сервер выдаёт путь к index.php и всё... если в браузере выбрать Просмотр кода, то код правильный, но фреймы не открываются. Если убрать строку include, то выдаёт все файлы, какие там есть - рисунки, *.css, *.js и т.д. |
Сообщ.
#7
,
|
|
|
Именно по-этому и существуют стандарты: https://www.php-fig.org/psr/psr-1/ Где сразу же вторым пунктом идёт: "Files MUST use only UTF-8 without BOM for PHP code."
Цитата Alexanbar @ А что это такое? А никто не пробовал для начала погуглить? https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%...%82%D0%BE%D0%B2 |
Сообщ.
#8
,
|
|
|
Цитата Alexanbar @ А что это такое? Открыть файл в notepad++, "кодировки"\"преобразовать в utf-8 без BOM". |
Сообщ.
#9
,
|
|
|
Оказалось, что дело действительно в этом BOMе.
Как показал эксперимент, достаточно убрать маркер в том файле, который инклудится. Вообще говоря, не дело, что одни стандарты противоречат другим. |
Сообщ.
#10
,
|
|
|
Цитата Alexanbar @ Оказалось, что дело действительно в этом BOMе. Как показал эксперимент, достаточно убрать маркер в том файле, который инклудится. Вот видишь как замечательно =) Осталось прочитать его весь (ну, например, там чёрным по белому написано не ставить закрывающий "?>") и проблем резко станет ещё меньше Попробуешь следовать заветам мудрых или продолжишь кататься на граблях?))) |