PhP Mysql как правильно использовать, избегайте ошибок заголовков

Yo bros. Я пишу следующий вопрос на этот пост здесь: Понимание кеш-ограничителя | заголовки уже отправили php warning. Я снова относительно новичок, но я слежу за этим хорошо.

Замечания по проблеме:

  • Я использую Xara Pro 9 для экспорта страницы
  • Внутри находятся вложенные php-скрипты, используемые для публикации различной информации по всей странице
  • Я получаю предупреждения «Заголовки уже отправлены» из-за того, что php находятся глубоко в коде
  • Кроме того, если я пытаюсь добавить скрипты add.php, он обычно не появляется или не разбивает предыдущий скрипт.

Таким образом, разрушая это, Xara экспортирует index_3.html (который я изменяю на index_3.php, чтобы он мог анализировать.) Начало документа Xara выглядит так:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Windows-1252"/> <meta name="Generator" content="Xara HTML filter v.6.0.1.335"/> <meta name="XAR Files" content="index_htm_files/xr_files.txt"/> <title>index_3</title> etc.... 

И я узнал, что уже слишком поздно включать php, потому что выводится. Xara использует html-заполнители в редакторе wysiwyg. Затем в фактическом коде index_3.html (php), php включает более поздний путь вниз в документе, используя следующее:

 <div style="position: absolute; left: 47px; top: 39px; width: 503px; height: 256px; overflow: hidden;"> <div style="width: 503px; height: 256px; overflow: auto;"> <?php include 'get_opwire.php'; ?> </div> </div> 

(Что касается того, почему он удваивается на div, о котором я не знаю) … в любом случае, get_opwire.php будет отображать таблицу, как это предполагается, но она выдает предупреждения заголовков. Затем дополнительно, далее вниз в index_3, есть еще один php ..

 <div style="position: absolute; left: 30px; top: 533px; width: 100px; height: 26px;"> <div style="width: 100px; height: 26px;"> <?php include 'usernameget.php'; ?> </div> </div> 

usernameget.php отказывается отображать, ЕСЛИ я не избавлюсь от opwire, как будто xara только хочет обработать 1 php-включение.

Итак, чтобы исправить предупреждения, мне дали 3 варианта в предыдущем вопросе

 1.) Have separate files. You would have a file like page_start.php that does includes and session_start that you include at the very top of index_3.php, and a file like display_table.php that displays your table that you include where the table goes. 2.) Turn the table into a function. You would wrap the table output inside a function, include get_opwire.php at the very top of index_3.php, then call the function down where you want the table. 3.) Use output buffering. Output buffering catches the stuff printed out so that you can use it later. It would go like this: 

Я экспериментировал со всеми тремя из них в течение дня, особенно в варианте 3, но я просто для новичков в php, чтобы собрать их вместе. Я также хотел бы логически понять, почему второй php включает в себя неудачу и знать, каков мой фактический лучший вариант. Помощь очень ценится!

Изменить: Ошибки:

 [08-Oct-2013 11:36:09] PHP Warning: session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /home2/mysite/public_html/mysubsite/index_3.php:7) in /home2/mysite/public_html/mysubsite/functions.php on line 12 [08-Oct-2013 11:36:09] PHP Warning: session_regenerate_id() [<a href='function.session-regenerate-id'>function.session-regenerate-id</a>]: Cannot regenerate session id - headers already sent in /home2/mysite/public_html/mysubsite/functions.php on line 13 

session_start() и любые другие манипуляции сеансом (создание идентификатора сеанса, перемещение папки сеанса) должны выполняться до отправки любого вывода в браузер. Попробуйте поместить его в первую строчку индекса / основного файла и убедитесь, что он НЕ в любом другом файле.