Сделал дома заготовку сайта. В целом фурычит. Запихал на сервер, Strato.de. Там Phpmyadmin, все нормально, программы с помощью Filezilla тоже перенес. Думаю, вот мир теперо осчасливлю. Но шиш. Файл index.php вызывается, а дальше не работает. В Logfile стоит, что путь неверный. Структура точно такая как на локальном PC дома. www.rock-classic.com Logfile: 24.02.2019 20:27:46 rock-classic.com [client 2001:16b8:a000::] AH01215: PHP Warning: include_once(): Failed opening '/mnt/web409/d1/35/59635935/htdocs/Rock/globalincluds/Classes/dbmsql.php' for inclusion (include_path='.:/opt/RZphp72/includes') in /mnt/web409/d1/35/59635935/htdocs/Rock/globalincluds/GLOBAL_INCLUDS.php on line 4: /home/strato/http/power/rid/59/35/59635935/htdocs/Rock/index.php Где ошибка? Спасибо.
Дома наверное Windows, для него регистр имени файла или папки неважен. А на хостинге с Linux это внезапно становится проблемой . --- Добавлено --- Проверь совпадает ли регистр в именах в php с фактическим именем на диске.
Да, правильно говорят - век живи, век учись - и все без толку. Действительно, в одном месте Classes, а в другом classes. Путь нашелся, но после введения пароля, имя говорит классику: 25.02.2019 11:07:21 rock-classic.com [client 2001:16b8:a000::] AH01215: PHP Warning: Cannot modify header information - headers already sent by (output started at /mnt/web409/d1/35/59635935/htdocs/index.php:3) in /mnt/web409/d1/35/59635935/htdocs/index.php on line 43: /home/strato/http/power/rid/59/35/59635935/htdocs/index.php. Дома все опять же работает. Вечером буду разираться, на работу пора. Спасибо еще раз
Заголовки уже были отправлены, ты делаешь какой то вывод перед редиректом, возможно ты выводишь текст, возможно у тебя после php стоит пробел.
Там смешно как-то. Три или 4 раза действительно выводится текст в подключаемых файлах. Последовательно все убрал и работает (www.rock-classic.com), НО на домашнем PC, под Wondows, все точно так же работает, без этих корректур, то есть моему серверу плевать 20 раз на посланные ранее заголовки. Так бывает ????
Есть настройка php, не помню, как её зовут, но суть в том, что она автоматически скрыто ставит ob_start в начале исполнения скрипта, таким образом весь вывод буферезируется, а заголовки нет, и вывод выводится всегда после заголовков, независимо от последовательности. А на хостинге видимо она не включена. Но я не стал бы писать код в рассчёте на эту настройку. Можно самостоятельно вызов ob_start() вставить самой первой командой, или следить за тем, чтобы ничто не выводилось раньше header-ов
Тоже не помню, как называется эта дикая директива (что-то связанное с буфером вывода), но там все еще хуже: может быть так, что начало вывода буферизируется, а потом по достижении опред. размера все равно пойдет «сброс».
И лучше никогда ей не пользоваться, потому что можно встрять, когда попытаешься отдать с помощью пхп файлик, или прочто что-то большое сделать. ob_start() надо ставить вручную. Привыкать к тому, что он где-то там есть всегда на автомате - это добавлять в проект дополнительную зависимость и потом ломать голову при переносе "почему не работает?", потому что забудешь что конфиг правил. Да и сам факт того, что правка конфига радикально влияет на работоспособность продукта - крайне сомнительная перспектива.
Ну я ob_start() не ставлю, просто знаю, что при выполнении без ошибок у меня не может начаться вывод раньше, чем нужно. Если начался - значит где-то была ошибка, и этот вывод - это сообщение об ошибке. --- Добавлено --- Другое дело, что я давно не писал ничего хотя бы без микрофреймворка