School PHP
Представляю Вам все самые известные ошибки, с которым столкнулся или столкнётся каждый из программистов. Плюс к ошибкам прилегается и способы их решения!!
Но самое важное, перед началом работы необходимо первой строчкой в php файле прописать: [code]error_reporting(-1);[/code] Кроме этого в .htaccess прописать: [code]php_flag display_errors on[/code] . А теперь открываем скрипт и сравниваем с ошибками.

'Warning: Cannot send session cookie - headers already sent...' или 'Cannot add header information - headers already sent...'.

Любой вывод информации на экран должен быть после обработки данных. Об верной структуре идётся в уроке №16. То есть нельзя ни при каких обстоятельствах писать [code]echo 'text'; session_start();[/code] , то есть в данном случае выводим информацию на экран, а уже после активируем сессию, что является ошибкой. Аналогично с работой кукисов на добавление, редактирование и удаление, только чтение использовать можно внутри вывода: [code]echo $_COOKIE['test'];[/code] Как же происходит всё это: дело в том, что данные идут в 2 потока, первым является отправка заголовков клиенту, где устанавливается работа с куками, сессиями, кодировкой. И когда заголовки (headers) были полностью отправлены клиенту, то начинается второй этап - отправка данных. И данная ошибка возникает тогда, когда пытаетесь отправить заголовок уже во втором этапе, в этапе отправки данных, то есть после первого вывода данных. Помним, что тег <html> так же является выводом данных, как и любой пробел. Кроме всего ранее указанного существует ещё 1 момент, когда возникает подобная ошибка: использование UTF-8 with BOM. Чтобы избежать подобной ошибки необходимо все файлы сохранять в кодировке UTF-8 without BOM, то есть отключать галочку при сохранении или в свойстве документа Include Unicode Signature (BOM). Если мы работаем со сторонним приложением или есть проблема с тем, что мы не можем отделить обработку данных от вывода (только в случае работы с чужим проектом! Свои обязаны быть 100% правильными), то используйте буферизацию вывода на стороне сервера (htaccess: php_flag output_buffering off) или уже самого скрипта (ob_start)

Спасите, крякозябры. Проблемы с кодировкой.

Есть решение, достаточно почитать и выполнить все 11 пунктов указанных в этой статье: Борьба с кодировкой UTF-8

syntax error, unexpected $end in %file% on line %line%

Ответ достаточно прост, забыли закрыть скобки фигурные. Количество открытых скобок должно равняться количеству закрытых.

Notice: Undefined variable: %name% in /home/creative/public_html/school-php.com/errors.php on line %line%

Это говорит о том, что ты, мой юнный друг, пытался вывести или обратиться к переменной, которая просто напросто не существует! Нельзя писать [code]if($var == 10) или elseif($x)[/code], если такие переменные ранее не были созданы тобою в скрипте. Так как часть переменных может появляться в скрипте по ситуации ($_POST, $_GET), то необходимо делать двойную проверку: [code]if(isset($var) && $var == 10) if(isset($_COOKIE['var']) && $_COOKIE['var'] == 'test')[/code] . Если переменная используется для функции myfunc($var), то мы должны в любом случае её создать, пусть даже с пустой информацией и использовать следующую схему: [code]if(!isset($var)) $var = '';[/code]

Warning: main(blocks/bd.php): failed to open stream: No such file or directory in a:\home\localhost\www\phpsite\admin\lock.php on line 1

Такая и многие подобные ошибки с разными путями говорят об этой банальной вещи: "No such file or directory", что в переводе с буссурманского - ты не создал файл по указанному пути. В папке admin должен быть файл lock.php, в нём ты используешь include (file_get_contents, file и т.д.), но при этом ты указан неверный путь! Находясь в папке admin ты ищешь папку "blocks", а внутри него файл bd.php, хотя есть предположение, что либо этот файл не был создан по указанному пути, или путь неверно был указан. Если необходимо вернуться на 1 каталог выше,то есть выйти из папки admin, то надо написать "../blocks/bd.php". Но не бойся, это всегда на начальной стадии обучения, путаница с путями.
Войти | Регистрация