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

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

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

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

10.12.2012, 19:45. Просмотров 98462. Ответов 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
РустамКР
5 / 6 / 2
Регистрация: 02.02.2014
Сообщений: 93
30.07.2016, 17:04 #46
Может у тебя javascript только не работает,я бы посмотрел,но в jquery не разбираюсь,пишу на чистом javascript.Проверь приходят ли данные на файл send.php и вообще попадает ли на этот файл.

Добавлено через 19 минут
Пиши условие так
PHP
1
if((isset($_POST['name'])&&($_POST['name']!=''))&&(isset($_POST['phone'])&&($_POST['phone']!=''))){//условие...}
0
Dmitry
Эксперт по компьютерным сетямЭксперт NIX
10310 / 5805 / 361
Регистрация: 09.09.2009
Сообщений: 22,822
30.07.2016, 18:05 #47
Цитата Сообщение от РустамКР Посмотреть сообщение
условие так
имхо, достаточно
PHP
1
if(!empty($_POST['name']) && !empty($_POST['phone']) ){//условие...}
0
moDorks
0 / 0 / 1
Регистрация: 18.01.2015
Сообщений: 73
31.07.2016, 16:55 #48
Да вы правы ajax не приносит данные, как это исправить?
0
РустамКР
5 / 6 / 2
Регистрация: 02.02.2014
Сообщений: 93
31.07.2016, 21:43 #49
Весь код:
Форма:
HTML5
1
2
3
4
5
<form id="form">
    <input type="text" name="name" required="required"/>
    <input type="text" name="phone" required="required"/>
    <input type="button" onclick="click_button()"  value="Заказать звонок"/>
</form>
Код на javascript.Для посылки ajax запроса:
Файл my_Javascript_file.js

Javascript
1
2
3
4
5
6
7
8
9
10
function getRequestBody(oForm){//Обработка элементов формы.
    var aParams=new Array();//Создаем массив.
    for(var i=0;i<oForm.elements.length;i++){//Цикл по длине элементов формы.
        var sParam=encodeURIComponent(oForm.elements[i].name);//Функция обрабатывает имя поля формы заменяя некоретные символы.Для предотвращения ошибок.
        sParam+="=";//Добавляем знак равно после имени поля формы.
        sParam+=encodeURIComponent(oForm.elements[i].value);//обрабатываем значение поля формы.Объяснено выше.
        aParams.push(sParam);//Добавляем значение цикла в массив.
    }
    return aParams.join("&");//возвращаем строку,каторую создает функция join(),соеденяя все элементы масссива в строку,разделяя их указанным символом.
}
Javascript
1
2
3
4
5
6
7
function ajaxRequest(){//Функция запускает функцию при загрузке документа.
    try{var request=new XMLHttpRequest;}//Браузер не относится к семейству IE.
    catch(e1){try{request=new ActiveXObject("Msxml2.XMLHTTP");}//Это IE6+.
    catch(e2){try{request=new ActiveXObject("Microsoft.XMLHTTP");}//Это IE5.
    catch(e3){request=false;}}}
    return request;
}
Javascript
1
2
function showResult(d){//Функция выводит ответ.
alert(d);}
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
function click_button(){//Функция вызывается из файла my_Javascript_file.js при клике на кнопку отправить //из формы.
var oXmlHttp=ajaxRequest();//Создаем ajax оъект.Функция находится выше.
var sBody=getRequestBody(document.forms['form']);//Обрабатываем поля фомы(Функция выше),и возвращаем //результат.
oXmlHttp.open("POST","send.php",true);//Отктрываем соеденение с сервером к файлу send.php,предача методом //POST,true-ассинхонно.
oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");//Отправляем нужный заголовок.
oXmlHttp.onreadystatechange = function(){//Функция вызывается когда статус запроса меняется(имеется 4 //статуса).
if(oXmlHttp.readyState == 4){//Если статус "Документ загружен,обработан и пришел ответ":
if(oXmlHttp.status == 200){//Если статус 200.
showResult('ваше сообщение успешно отправлено');//Вызываем функцию загрузки ответа на главную страницу.
}else{showResult('Ошибка при отправлении сообщения');}//Иначе выдаем ошибку.
}};
oXmlHttp.send(sBody);//Отправляем наши данные на сервер.
}
Файл send.php.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
if(!empty($_POST['name']) && !empty($_POST['phone']) ){ //Проверка отправилось ли наше поля name и не //пустые ли они
        $to = 'wertys@okraska.kl.com.ua'; //Почта получателя, через запятую можно указать сколько угодно //адресов
        $subject = 'Обратный звонок'; //Загаловок сообщения
        $message = '
                <html>
                    <head>
                        <title>'.$subject.'</title>
                    </head>
                    <body>
                        <p>Имя: '.$_POST['name'].'</p>
                        <p>Телефон: '.$_POST['phone'].'</p>                        
                    </body>
                </html>'; //Текст нащего сообщения можно использовать HTML теги
        $headers  = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма
        $headers .= "From: Отправитель <dik0299@spaces.ru>\r\n"; //Наименование и почта отправителя
        mail($to, $subject, $message, $headers); //Отправка письма с помощью функции mail
}
?>
Добавлено через 8 минут
И еще забыл добавь первой строкой в форме код
HTML5
1
<script type="text/javascript" src="my_Javascript_file.js"></script>
0
ivan i
0 / 0 / 0
Регистрация: 04.06.2017
Сообщений: 7
12.09.2017, 12:33 #50
Добрый день. Ситуация следующая: при запуске в Internet Explorer на странице отображается php-код, при запуске в Firefox вообще пустая страница. Использую Denwer 5.3. В адресной строке отображается адрес file:///Z:/home... Что нужно сделать, чтобы запрашивался адрес http://... Извините, если повторяюсь, просто не нашел как это сделать.
0
Jodah
Эксперт PHP
2435 / 2107 / 707
Регистрация: 01.08.2012
Сообщений: 7,370
12.09.2017, 12:50 #51
ivan i, нужно так и написать. http://вашсайт.ru/script.php

Не нужно открывать PHP файлы напрямую в браузере, ни к чему хорошему это не приведёт.

И замените Denwer на что-нибудь более современное.
0
ivan i
0 / 0 / 0
Регистрация: 04.06.2017
Сообщений: 7
12.09.2017, 12:58 #52
Спасибо. А чем лучше заменить Denwer?
0
Jodah
Эксперт PHP
2435 / 2107 / 707
Регистрация: 01.08.2012
Сообщений: 7,370
12.09.2017, 18:15 #53
ivan i, OpenServer, AMPPS, XAMPP. Выбирайте.
0
ivan i
0 / 0 / 0
Регистрация: 04.06.2017
Сообщений: 7
12.09.2017, 21:43 #54
Спасибо. Скачал OpenServer. При тестирвании отправки письма вместо сооющения об отправке получил следующее - php-код, но каракулями (скрин прилагаю). В папке temp письмо не сохранилось. Подскажите, ошибка в коде или в настройках?
0
Миниатюры
PHP код не выполняется / не работает / выводится в браузер / пустая белая страница  
Kerry_Jr
Модератор
Эксперт PHP
2206 / 2002 / 701
Регистрация: 14.05.2014
Сообщений: 5,867
Записей в блоге: 1
Завершенные тесты: 5
13.09.2017, 20:06 #55
ivan i,
Цитата Сообщение от Jodah Посмотреть сообщение
ivan i, нужно так и написать. http://вашсайт.ru/script.php
Вам уже сказали, как првильно запускать php-скрипты в браузере.

Добавлено через 1 минуту
А еще выше на странице чуть более детально описано решение вашей проблемы
0
ivan i
0 / 0 / 0
Регистрация: 04.06.2017
Сообщений: 7
14.09.2017, 18:12 #56
Спасибо. Извините, затупил.
0
kpripper
1 / 1 / 0
Регистрация: 13.07.2011
Сообщений: 76
22.09.2017, 12:40 #57
Подскажите, что здесь неправильно? Страница с таким скриптом недоступна в браузере.

PHP
1
2
3
4
5
6
7
8
9
10
11
$host="localhost"; 
$user="..."; 
$pass="..."; 
$Bd="...";
$link = mysqli_connect($host,$user,$pass,$Bd);
 
$Reqwes = "SELECT topic_id FROM phpbb_topics ORDER BY topic_id DESC LIMIT 0 , 1";       
        
$Req = mysqli_query ($link,$Reqwes);
    
echo $Req;
Добавлено через 30 минут
А, возвращает объект, а не число.
0
Dmitry
Эксперт по компьютерным сетямЭксперт NIX
10310 / 5805 / 361
Регистрация: 09.09.2009
Сообщений: 22,822
22.09.2017, 13:29 #58
Результат выполнения запроса и есть обьект.
0
РустамКР
5 / 6 / 2
Регистрация: 02.02.2014
Сообщений: 93
23.09.2017, 21:25 #59
Запрос SELECT возвращает объект.Для получения данных с этого объекта существует функция которая возвращает ассоциативный массив,где ключом будет имя поля таблицы,и значение результат.
PHP
1
2
$result=mysqli_fetch_array($Reg,MYSQLI_ASSOC);
echo $result['topic_id'];
0
Fraser
0 / 0 / 0
Регистрация: 12.01.2017
Сообщений: 3
15.10.2017, 14:36 #60
Добрый день!

Ситуация следующая:

один движок сайта был запущен в подпапке другого сайта (для проверки) и все работает отлично.
Запустил данный движок на основном домене. Все работает, но когда захожу в админку - белый экран.
Прописал код для поиска ошибок:
PHP
1
2
3
4
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>
Выдает:

1) Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/f/fraser/*******.ru/public_html/includes/configure.php on line 11

2)Fatal error: Call to undefined function session_register() in /home/f/fraser/*******.ru/public_html/admin/index.php on line 19

По №1:
в файле configure.php такая строка:
PHP
1
  mysql_connect(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD) or die("Connection Failed");
По №2:

На 19 строке: session_register('username');
Я его заменил на session_start('username'); как писали ранее, но вышеуказанная ошибка никуда не пропала.

admin/index.php:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>
<?php 
ob_start();
session_start();    
    include_once("../includes/configure.php");
    include("../includes/database_tables.php");
if( isset($_POST["username"]) )
    {
      $username = $_POST['username'];
      $password = $_POST['password'];
      $qry = "select * from " . TABLE_ADMIN . " where username = '$username' and password = '$password'";
      $result  = mysql_query($qry);
      $row = mysql_fetch_array($result);
      if(mysql_num_rows($result) > 0)
          {
            session_start('username');
            session_start('id');
            $_SESSION['id'] = $row['id'];  
            $_SESSION['username'] = $username;
            echo '<script>window.location="main.php";</script>';
          }
     else
          {
            echo '<script>window.location="index.php?return=1";</script>';
            
          }
   }
 
 
if(isset($_GET['return']) && $_GET['return'] == 1  )
     {
     $message = "Please enter your UserId / Password correctly";
     }
?>
В итоге, на одном и том же хостинге, один и тот же движок сайта, на одной установке в админку заходит, на другой - нет.

Добавлено через 13 минут
Хм, в очередной раз перезалил и переподключил, заменил session_register('username'); на session_start('username'); и все заработало. Вот что Киберфорум животворящий делает)
0
15.10.2017, 14:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2017, 14: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, попытался создать переменную через знак $, а она подсвечивается синим цветов как будто это оператор. $переменная...


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

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

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