Почему php не работает в html
ЗЫ. Например это тож не пашет как надо:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
Цитата:
| В чем может быть дело? |
в том, что апач знает, что файлы с расширением .php нужно обрабатывать с помощью php интерпретатора.. а про .html он такого не знает
1) попробуйте написать в конфиг апача (httpd.conf)
AddType application/x-httpd-php .html
AddType application/x-httpd-php .htm
$link = mysql_connect($DBSERVER, $DBUSER, $DBPASS)
or die("Не могу подключиться" );
mysql_select_db($DB, $link) or die ('Не могу выбрать БД');
if(md5(crypt($_SESSION['user'],$_SESSION['password'])) != $_SESSION['SID']) <
if(!$_POST['do'])<
$q2 = @mysql_query("SELECT * FROM users WHERE nick='".$_SESSION['user']."' AND password='".$_SESSION['password']."' AND status=1");
if(@mysql_num_rows($q2)==1) <
$r2 = @mysql_fetch_array($q2);
Цитата:
| хочу вставить его на главную в index(.html).. Каким образом это правильно сделать? |
никак.. либо настраиваете сервер, чтобы html файлы обрабатывал как php, либо вставляете html код в php файл.
Цитата:
| Но в самом php коде я не понимаю, поэтому и спрашиваю, как правильно вставить. |
просто вставить где хочется и все.
html код в php файле, находящийся вне тегов <?php и ?> — не обабатывается и выдается напрямик в браузер
$link = mysql_connect($DBSERVER, $DBUSER, $DBPASS)
or die("Не могу подключиться" );
mysql_select_db($DB, $link) or die ('Не могу выбрать БД');
if(mysql_num_rows($q1)===1) <
$r=mysql_fetch_array($q1);
$_SESSION['user'] = $r['nick'];
$_SESSION['password'] = $r['password'];
$q2 = @mysql_query("SELECT * FROM users WHERE nick='".$_SESSION['user']."' AND password='".$_SESSION['password']."' AND status=1");
if(@mysql_num_rows($q2)==1) <
$r2 = @mysql_fetch_array($q2);
PHP-код в HTML-файле не работает, в php-файле — работает. Почему? : Программирование
Дело не только в этом, увы (но за замечание о ошибке синтаксиса — спасибо!).
Есть рекомендация сделать файл .htaccess с содержимым
| KirillHome |
| Посмотреть профиль |
| Где был? |
| Найти ещё сообщения от KirillHome |
На самом деле это "самые первые шаги" в попытке сделать web-сервис (как громко сказано то ) проверки цен/остатков.
Понимания того, что и как нужно делать — у меня, увы, нет (ни разу ничего подобного не делал).
С чего начал:
Так как IIS — поднят и используется, то — поставил PHP, сделал сопоставление обработчика PHP, пытался запустить примеры с простыми формами обработки результата (типа — "Введите имя", "Год рождения" — и получить ответ — "Вам ВведенноеИмя бла-бла-бла лет").
Сразу заткнулся на том, что в данных примерах есть "участки php" в html, которые у меня — не работают.
| KirillHome |
| Посмотреть профиль |
| Где был? |
| Найти ещё сообщения от KirillHome |
Я не понимаю, что значит "статика" и "динамика" в данном случае.
- этот штрихкод (как вариант — записав штрихкод во входной текстовый файл, а уж внешнее приложение будет читать из текста)
- имя выходного текстового файла.
| KirillHome |
| Посмотреть профиль |
| Где был? |
| Найти ещё сообщения от KirillHome |
KirillHome ➤ Дело не только в этом, увы (но за замечание о ошибке синтаксиса — спасибо!).
Есть рекомендация сделать файл .htaccess с содержимым
Попробуй в .htaccess вместо указанного тобой кода, прописать:
<IfModule mod_suphp.c>
AddHandler x-httpd-php5 .html .htm
</IfModule>
Или
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml
но в принципе должен сработать первый.
У меня по крайней мере в файле html обрабатывается phpinfo с первым вариантом
Чтобы закрыть вопрос с непониманием статики и динамики. Статика — это файл, который отдается "как есть". Это картинки, например, архивы, И, файлы html. Сервер их никак не обрабатывает, они никак не изменяются. Динамика начинается, когда на странице изменяются какие-то данные и делает это сервер. Например, эта страница — динамика. Ее в том виде, как ты видишь, не существует. Она обрабатывается каждый раз, т.е. веб-сервер знает, что php надо отдать соответствующему обработчику, а то, что он вернет (вывод) использовать, как если бы это была страница с диска. Т.е. читает не с диска, а из вывода обработчика. Обработчик при этом, в зависимости от условий, может выводить совершенно разные данные.
Форма ввода, например, статична, если ты только не задаешь разные вопросы на ней (у тебя выводится цена и остатки, т.е. динамичная форма). Никакие внешние приложения тебе не нужны, т.е. такой подход крайне вреден для многопользовательской среды, сожрет уйму ресурсов. Старайся обойтись PHP, он много что умеет. И, да, не передавай ВСЕ в обработчик. Хоть он и будет пропускать то, что не является его кодом, все равно, на то, чтобы задействовать обработчик, уходит достаточно много ресурсов, что сказывается на скорости работы сервиса.
А вот этого пока не понял совсем.
Всем спасибо.
Пока "план занятий" ясен:
1) Создать форму на PHP
2) Данные, введённые пользователем — куда-то сохранить/записать/передать
3) Откуда-то взять данные ответа, отобразить их на форме.
4) Понять, что делать, когда пользователей — несколько (запрос пользователя 1 должен вернуться ему, а не пользователю 2).
5) Обработать "проблемные ситуации" — ответ не вернулся за какое-то приемлемое время и т.п.
PHP код не выполняется, вместо этого код отображается на странице
Я пытаюсь выполнить некоторый PHP-код в проекте (используя Dreamweaver), но код не запускается.
когда я проверяю исходный код, PHP-код отображается как HTML-теги (я вижу его в исходном коде). Apache работает правильно (я работаю с XAMPP), страницы PHP открываются правильно, но PHP-код не выполняется.
есть ли у кого-то предложение о том, что происходит?
Примечание: файл уже назван as filename.php
Edit: код.

24 ответов
похоже, что что-то не так с вашей конфигурацией, вот несколько вещей, которые вы можете проверить:
убедитесь, что PHP установлен и работает правильно. Это может показаться глупым, но никогда не знаешь наверняка. Простой способ проверить-запустить php -v из командной строки и посмотреть, если возвращает информацию о версии или любые ошибки.
убедитесь, что модуль PHP указан и без комментариев внутри вашего Apache файл httpd.конф это должно быть что-то вроде LoadModule php5_module «c:/php/php5apache2_2.dll» в файле. Поиск LoadModule php , и убедитесь, что нет комментариев ( ; ) перед ним.
убедитесь,что Apache httpd.в файле conf есть тип PHP MIME. Это должно быть что-то вроде AddType application/x-httpd-php .php . Это говорит Apache для запуска .php файлы как PHP. Поиск AddType, а затем убедитесь, что есть запись для PHP и что это не имеет отношения.
сделать уверен, что в вашем файле есть .php расширение на нем или любое расширение, указанное в определении MIME в пункте #3, иначе оно не будет выполняться как PHP.
убедитесь, что вы не используете короткие теги в файле PHP ( <? ), это не включено на всех серверах по умолчанию, и использовать их не рекомендуется. Использовать <?php вместо (или включить короткие теги в PHP.ini С short_open_tag=On если у вас есть код, который полагается на них.)
убедитесь, что вы получаете доступ к файлу через веб-сервер с помощью URL, как http://localhost/file.php не через локальный доступ к файлам file://localhost/www/file.php
Я запускаю Apache на Ubuntu и моя проблема заключалась в том, что /etc/apache2/mods-available/php5.conf файл отсутствовал это: