Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.84/1562: Рейтинг темы: голосов - 1562, средняя оценка - 4.84
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
1

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

10.12.2012, 19:45. Показов 293546. Ответов 64

Author24 — интернет-сервис помощи студентам
Достаточно часто у начинающих разработчиков встречаются проблемы с запуском 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 вспомнить и описать другие возможные причины

Сообщение будет обрастать подробностями и другими вариантами по мере их вспоминания...
13
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.12.2012, 19:45
Ответы с готовыми решениями:

Код не выполняется / не работает / выводится в браузер / пустая белая страница
php Я установил apache2 и php Написал скрипт он выводился как код, прописал sudo find...

PHP Код из Бд ( sqlite3) выводится в браузер, а не выполняется
Собственно, проблема в том, что код при подстановке из бд в файл не выполняется, а только...

Не работает редактор - взамен только пустая белая страница
При попытке редактирования материала на сайте, или при попытке создать новый материал через...

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

64
2432 / 2282 / 594
Регистрация: 27.05.2011
Сообщений: 7,801
10.12.2012, 19:50 2
в линуксе может быть белый экран когда прав нет , тогда
Bash
1
sudo chmod 755 path/to/file.php
2
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16844 / 6723 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
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
Эксперт по компьютерным сетямЭксперт NIX
13018 / 7409 / 801
Регистрация: 09.09.2009
Сообщений: 28,995
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 {} \;
и все...
5
11 / 10 / 3
Регистрация: 10.06.2013
Сообщений: 503
10.01.2014, 15:34 5
Я так и не понял откуда libphp5.so скачать
0
70 / 68 / 22
Регистрация: 12.08.2013
Сообщений: 297
11.01.2014, 17:27 6
http://libphp5.so/
0
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 / 3
Регистрация: 02.02.2014
Сообщений: 171
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
0 / 0 / 0
Регистрация: 13.10.2015
Сообщений: 6
13.10.2015, 17:20 9
РустамКР - сделал, что вы посоветовали - не помогает, упорно пишет file:///C:/server
0
5 / 6 / 3
Регистрация: 02.02.2014
Сообщений: 171
13.10.2015, 17:37 10
Вы хотите запустить index.php через адрес http://localhost ?
0
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 / 3
Регистрация: 02.02.2014
Сообщений: 171
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
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 / 3
Регистрация: 02.02.2014
Сообщений: 171
13.10.2015, 18:28 14
Почитайте википедию,может поможет https://ru.wikipedia.org/wiki/Hosts
0
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
5 / 6 / 3
Регистрация: 02.02.2014
Сообщений: 171
13.10.2015, 19:20 16
www прописывать не надо, он в конфигурационном файле прописан скрыто.

Добавлено через 29 минут
Про www перепутал.Сам новичек. Даю ссылку на Денвер сборку 2008, сам пользуюсь проблем небыло
https://yadi.sk/d/Wk3KGqyRjiBZy
0
0 / 0 / 0
Регистрация: 28.05.2016
Сообщений: 10
28.05.2016, 13:42 17
У меня не работает php код. Уже много перепробовал - сначала Денвер, сейчас Wampserver. Проверил по тем советам, которые вверху раздела написаны.Выводит исходный код и все. То есть, код который написал, вижу и в браузере.
0
5 / 6 / 3
Регистрация: 02.02.2014
Сообщений: 171
28.05.2016, 14:28 18
может надо код заключить в <?php //здесь код. ?> И файл преименовать в расширение .php ,Файл закинуть в папку home/localhost/www ,запустить денвер и запускать файл через адресную строку в браузере localhost/название_файла.php

Добавлено через 20 минут
Проблема в малом, чтобы запустить php код нужно чтобы файл имел расширение .php .Если нужно написать просто html формат нужно в файле с расширением .php написать html код без <?php ?> просто гипертекст как пишется в файле с расширенением .html ,а подключать php файл так <?php include 'путь_к_фалу_вашему_файлу.';?>
Напрмер файл index.php .Пишем:
<!doctype html >
<html>
<head><title>Заголовок</title></head>
<body><?php include_once 'footer.php';?></body>
</html>
0
0 / 0 / 0
Регистрация: 28.05.2016
Сообщений: 10
28.05.2016, 16:43 19
Вот скриншоты.
Миниатюры
PHP код не выполняется / не работает / выводится в браузер / пустая белая страница   PHP код не выполняется / не работает / выводится в браузер / пустая белая страница   PHP код не выполняется / не работает / выводится в браузер / пустая белая страница  

0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
28.05.2016, 16:54 20
Цитата Сообщение от markorrr Посмотреть сообщение
Проверил по тем советам, которые вверху раздела написаны.
Как говорится: "Чукча не читатель"
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Страница должна запрашиваться через Веб-сервер, а не из папки напрямую. Поэтому в адресной строке браузера Вы должны видеть http:// , а НЕ file:// (некоторые браузеры скрывают http://, но file:// виден все равно).
1
28.05.2016, 16:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2016, 16:54
Помогаю со студенческими работами здесь

Белая пустая страница на modx
Здравствуйте! Столкнулся с такой проблемой сделал сайт Modx на денвере, после залил на хостинг....

Не открываются 30% сайтов, пустая белая страница и все
Здравствуйте. Сначала думал что это обычный вирус закрывающий доступ к соц.сетям. Но нет, при...

Открываю XML в браузере и выходит пустая белая страница
Как я понимаю при запуске xml файла в браузере (Google Сhrome) должна формироваться html страничка....

Выводится белая страница
Все привет помогите решить решить проблему выводится в браузере белая страница даже теги html в ней...

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru