Форум программистов, компьютерный форум, киберфорум
Наши страницы

PHP для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Vovan-VE
13134 / 6515 / 186
Регистрация: 10.01.2008
Сообщений: 15,061
#1

PHP код не выполняется / не работает / выводится в браузер / пустая белая страница - PHP

10.12.2012, 19:45. Просмотров 99065. Ответов 59

Достаточно часто у начинающих разработчиков встречаются проблемы с запуском PHP-кода. Симптомы и причины могут быть самые разнообразные. Ниже приведены наиболее часто встречающиеся симптомы и их возможные причины.

Код PHP виден на странице или Скачивается файл и исходным кодом PHP.

Вы открыли страницу/файл в браузере и увидели на странице PHP-код. Возможно, вперемешку с другими элементами страницы.
Либо вместо страницы файл "скачался", а в нём Вы увидели исходный код PHP.

Возможные причины:
  • Файл должен имет расширение .php (на всякий случай в нижнем регистре: .php , а не .PHP или .pHP). На всякий случай проверьте также и язык ввода: буквы с имени должно быть латинскими (бывали случаи).
  • Страница должна запрашиваться через Веб-сервер, а не из папки напрямую. Поэтому в адресной строке браузера Вы должны видеть http:// , а не file:// (некоторые браузеры скрывают http://, но file:// виден все равно).
  • Из предыдущего пункта следует: у Вас должен быть установлен и запущен веб-сервер (например, Apache или сборки Denwer, XAMPP и т.п.).
  • Веб-сервер должен быть настроен на обработку PHP кода. Если Вы используете сборки вроде Денвера, то этот пункт, вероятно, не актуален (хотя кто ж их знает).
  • PHP код должен быть обёрнут в PHP-теги: <?php . Если вдруг Вы используете короткие теги <? или <?= ... , то попробуйте заменить их на длинные: <?php и <?php echo ...; соответственно.
  • TODO вспомнить и описать другие организационные моменты

Ничего не выводится - только пустая белая страница.

Для начала попробуйте выполнить тестовый скрипт. Сохраните в отдельный файл test.php следующий код (только этот код и ничего больше):
PHP
1
2
<?php
phpinfo();
и выполните его. Если Вы увидели страницу с информацией о версии PHP с прочими подробностями, значит проблема кроется в Вашем коде.
  • Возможно, при выполнении Вашего PHP кода произошла критическая ошибка. Если отключена директива display_errors, то белая страница - реакция сервера на критическую ошибку.
    Если так, то для начала Вам необходимо узнать, какая именно произошла ошибка.
    • Попробуйте добавить в самое начало кода следующие строки:
      PHP
      1
      2
      3
      4
      
      <?php
      error_reporting(E_ALL);
      ini_set('display_errors', 1);
      ?>
      Если и после этого Вы не увидели сообщений об ошибке, то, возможно, в коде допущена синтаксическая ошибка, из-за чего он даже не запускается.
    • Попробуйте временно включить display_errors (также не забудьте про error_reporting = E_ALL).
    • Найдите/узнайте, где находятся логи ошибок. Если они есть, загляните туда - возможно сообщения об ошибках были записаны в них.
  • Если Вы используете ОС Linux, то проверьте права доступа к PHP файлам. У пользователя системы, от имени которого запущен веб-сервер, должны быть права на чтение и выполнение как для PHP файлов, так и для директории, в которых они располагаются.
  • TODO вспомнить и описать другие возможные причины

Сообщение будет обрастать подробностями и другими вариантами по мере их вспоминания...
9
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2012, 19:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос PHP код не выполняется / не работает / выводится в браузер / пустая белая страница (PHP):

Решатель квадратного уравнения. код не выполняется(белая страница) - PHP
собственно код: &lt;body&gt; &lt;form name=&quot;auto&quot; method=&quot;GET&quot; action=&quot;&lt;?=$_SERVER?&gt;&quot;&gt; а=&lt;input type=&quot;text&quot; name=&quot;a&quot;&gt;&lt;br&gt; b=&lt;input...

Выводится php-код в браузер после установки php+apache+mysql - PHP
Навеяло отсюда: http://www.cyberforum.ru/php-beginners/thread839975.html Установила по инструкции...

PHP-код выводится в браузер - PHP
выходит в браузере всякая ерунда... &lt;head&gt; &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=windows-1251&quot; /&gt; &lt;title&gt;Lab6_1...

PHP код, вместо того, чтобы обработаться - выводится в браузер. - PHP
Доброго времени суток! У меня возникла проблема на начальном этапе работы с php. Почему когда я открываю файл index.php в котором...

При переходе по постраничной навигации выводится пустая страница - PHP
ребят помогите разобраться что я делаю не так? написал скрипт, скрипт работает без ошибок, ну при переходе по навигации пустая...

Php скрипт не срабатывает, открывается белая страница - PHP
Ребят, помогите пожалуйста. Не работает форма входа на сайт, собственно проблема описана в заголовке темы. Сайт выложен на хостинге,...

59
crautcher
2008 / 1979 / 172
Регистрация: 27.05.2011
Сообщений: 6,820
10.12.2012, 19:50 #2
в линуксе может быть белый экран когда прав нет , тогда
Bash
1
sudo chmod 755 path/to/file.php
2
KOPOJI
Эксперт HTML/CSSЭксперт PHP
16702 / 6624 / 433
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
10.12.2012, 20:15 #3
дополню предыдущий пост - ошибки могут все равно не отображаться, если там стоит другой владелец, необходимо сначала изменить самого владельца и уже затем изменить права на папку/файл
Можно рекурсивно обойти всю папку и сразу задать всем владельца/права доступа, чтобы не прописывать для каждого файла
Bash
1
2
sudo chown -R USER path/to/dir #смена владельца
sudo chmod -R 755 path/to/dir #смена прав на доступ к папке
такие команды применят смену владельца и прав на доступ к папке и всем вложенным файлам

P.S. пояснения
-R - рекурсивный обход
USER - пользователь, на которого вы хотите сменить владельца (к примеру administrator, www-data, root)
path/to/dir - путь к директории
755 - права на доступ на чтение и запись
0
Dmitry
Эксперт по компьютерным сетямЭксперт NIX
10316 / 5811 / 361
Регистрация: 09.09.2009
Сообщений: 22,851
10.12.2012, 20:51 #4
ну во первых, не
Цитата Сообщение от KOPOJI Посмотреть сообщение
#смена прав на доступ к папке
а "смена прав на доступ ВСЕГО, что в папке".
во вторых, в цифре 755 перовая цифра - права владельца, вторая цифра - права группы, к которой принадлежит владелец, и третья - права "других". при этом цифра является простой суммой из трех чисел:
4 - разрешено читать
2 - разрешено писать
1 - разрешено выполнять.

то есть, давая 4, разрешаем читать. хотим разрешить еще и писать - добавляем двоечку и получаем 6, а хотим разрешить исполнять - добавляем еще единичку и получаем 7.

таким образом - 755 это "владельцу можно все, группе можно читать и исполнять, и ЧУЖИМ (точнее, всем остальным) тоже можно читать и исполнять". В таком случае возни кает резонный вопрос - а на кой вообще всему этому еще и владельца назначать? Если ИТАК можно всем кому ни попадя читать и выполнять!?

Да и вообще, в свете "во первых" - а на кой самим файлам php бит исполнения? То есть, им права 7 - не нужны! Отнимаем единичку, осталось 6. Да и права на запись - зачем? Чтоб апач мог перезаписывать сам файлы php? Это действительно то, что нужно? Или же права на запись тоже долой? Отнимаем двоечку, осталось 4. В итоге - апач читать файлы сможет, а ни писать в них (в сам php файл), ни исполнять их - не сможет. Но и не надо ему это!

Посему на файлы (именно на файлы) - с головой достаточно прав 400

А вот на директории, увы, нужен бит исполнения, иначе в них войти будет невозможно. Но опять же - (как было в кино - "достаточно одной таблэтки!") - только владельцу! А остальным - "накося выкуси"!

То есть, на директории - права 500

Ну а теперь, "потанцуем", чтоб не вручную, а одним махом (ну, "двумя махами"):
Bash
1
2
sudo find /var/www/* -type f -exec /bin/chmod 400 {} \;
sudo find /var/www/* -type d -exec /bin/chmod 500 {} \;
и все...
4
terra nova
5 / 5 / 1
Регистрация: 10.06.2013
Сообщений: 272
10.01.2014, 15:34 #5
Я так и не понял откуда libphp5.so скачать
0
cellse
65 / 65 / 13
Регистрация: 12.08.2013
Сообщений: 295
11.01.2014, 17:27 #6
http://libphp5.so/
0
dante01
0 / 0 / 0
Регистрация: 13.10.2015
Сообщений: 6
13.10.2015, 14:33 #7
Help Столкнулся с этой проблемой, похоже это мой случай "Страница должна запрашиваться через Веб-сервер, а не из папки напрямую. Поэтому в адресной строке браузера Вы должны видеть http:// , а не file:// "
если набрать http://localhost/ - не работает, если вбить в адресной строке http://127.0.0.1 то все работает, как сделать что бы страница запрашивалась через Веб-сервер? Денвер устанавливал самый последний, потом переустановил апач вручную со всеми настройками httpd.conf и настойками интерпритатора PHP ни чего не помогло, что делать?
0
РустамКР
5 / 6 / 2
Регистрация: 02.02.2014
Сообщений: 93
13.10.2015, 16:16 #8
Попробуйте поменять настройки apache:
Настройки Apache.
Чтобы поменять порт (по умолчанию 80), открыть файл apache/conf/httpd.conf и найти строку Listen 80 и ServerName localhost:80 и, заменить порт 80 на выбранный вами порт (например 8080).
Также можно поменять наверное и ip адрес.

Также можно поменять папку сайта с localhost на другой вне локального диска.
Настройка псевдонима для сайта: Открыть файл apache/conf/httpd.conf найти строку <IfModule alias_module> и добавить
Bash
1
2
3
4
5
6
7
8
9
10
11
    #Задаем псевдоним для папки с сайтом (tshirtshop)
    Alias /tshirtshop/ "C:/tshirtshop/"
    Alias /tshirtshop "C:/tshirtshop"
</IfModule>
    <Directory "C:/tshirtshop">
    Options indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory> 
#где tshirtshop это наша основная папка(где будет код сайта) на диске С.
0
dante01
0 / 0 / 0
Регистрация: 13.10.2015
Сообщений: 6
13.10.2015, 17:20 #9
РустамКР - сделал, что вы посоветовали - не помогает, упорно пишет file:///C:/server
0
РустамКР
5 / 6 / 2
Регистрация: 02.02.2014
Сообщений: 93
13.10.2015, 17:37 #10
Вы хотите запустить index.php через адрес http://localhost ?
0
dante01
0 / 0 / 0
Регистрация: 13.10.2015
Сообщений: 6
13.10.2015, 17:54 #11
не только через http://localhost. В чем проблема - C:\server\www лежит index.html c сcылкой на form.php в той же папке. При переходе с индексной страницы html на страницу form.php - отображается код php вместо исполнения.
0
РустамКР
5 / 6 / 2
Регистрация: 02.02.2014
Сообщений: 93
13.10.2015, 18:10 #12
Так если у вас папка с файлами на С://server/www запускать надо с http://server/index.html ,добавив в настройках
apache/conf/httpd.conf в строку <IfModule alias_module>

Bash
1
2
3
4
5
6
7
8
9
Alias /server/ "C:/server/"
 Alias /server "C:/server"
</IfModule>
    <Directory "C:/server">
    Options indexes FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>
Вы говорите что переустановили апач,и наверно надо что то добавить в настройках.С настройками апач дело не имел
0
dante01
0 / 0 / 0
Регистрация: 13.10.2015
Сообщений: 6
13.10.2015, 18:12 #13
Однако если вбить http://127.0.0.1 открывается index.html и при переходе на form.php код php выполняется
0
РустамКР
5 / 6 / 2
Регистрация: 02.02.2014
Сообщений: 93
13.10.2015, 18:28 #14
Почитайте википедию,может поможет https://ru.wikipedia.org/wiki/Hosts
0
dante01
0 / 0 / 0
Регистрация: 13.10.2015
Сообщений: 6
13.10.2015, 18:36 #15
Добавил, не работает. Фиг его знает что уже читать, второй день читаю, скоро крышу сорвет.
Настройки apache/conf/httpd.conf стоят
Bash
1
2
3
4
5
6
ServerRoot "C:/server/apache"
DocumentRoot "C:/server/www
Directory "C:/server/www"
DirectoryIndex index.php index.php3 index.html index.htm
ScriptAlias /cgi-bin/ "C:/server/www/cgi-bin/"
Directory "C:/server/www/cgi-bin"
В контейнере <IfModule mime_module> ниже строчки AddType application/x-gzip .gz .tgz добавил две другие: AddType application/x-httpd-php .php и AddType application/x-httpd-php .php3
0
13.10.2015, 18:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2015, 18:36
Привет! Вот еще темы с ответами:

Код выводится в браузер - PHP
Возникла проблема: создаю такой документ (код ниже). КОД: &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta charset=&quot;utf-8&quot;&gt; ...

В браузер выводится еще часть кода php - PHP
Уважаемые господа... скрипт php - простая менюшка. Open_server работает. Отдельно скрипт - работает. Когда вставляю в HTML- тоже работает,...

Код выводится в браузер, а не обрабатывается должным образом. - PHP
Здравствуйте!Проблема такая: при загрузке этого кода браузер выводит этот код, а должен график синуса Что может быть не так?? &lt;?php ...

В Dreamweaver переменная подсвечивается как оператор и при запросе к скрипту, код выводится в браузер. - PHP
Установил dreamweaver cs6, попытался создать переменную через знак $, а она подсвечивается синим цветов как будто это оператор. $переменная...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru