Перейти к содержимому

Почему php не работает в html

  • автор:

Не работает php в html?

5e956c0e43ba7732083524.jpeg

OpenServer

Если написать скрипт в файл.php все работает (html там тоже работает)
Если написать скрипт в файл.html хтмл код работает, а вот скрипт нет. Просто ничего не выводит, сами значки тоже не отображаются, значит пхп работает а вывода нет?

  • Вопрос задан более трёх лет назад
  • 5602 просмотра

1 комментарий

Простой 1 комментарий

Почему не работает php-код?

prinf(«Соединение не установлено», mysqli_connect_error());
exit();
> $mysqli->set_charset(‘utf8’);
$query = «INSERT INTO movies VALUES(null, ‘Безумный Макс’, ‘Описание фильма безумный Макс’, ‘2015’, Now())»;
$mysqli->query($query);
$mysqli->close();
?>

Спасибо, сейчас настройки проверю

У вас в коде где-то ошибка или файл сохранен не как .php или веб-сервер неправильно настроен, чтобы работать с php.

Код покажите полностью и название файла.

Если в браузере весь код выше отображается как текст, значит: 1. Файл сохранен не как .php, а как .html 2. Или неверно веб-сервер настроен, без поддержки языка PHP.

Sign up or Log in to write an answer

  • Интерактивные уроки и курсы программирования и создания сайтов (дистанционное обучение) помогут вам в игровой форме изучить основы языков программирования веб-разработки и веб-программирования с нуля. Обучение онлайн 24/7.

Общие ссылки

  • Отзывы
  • Политика конфидециальности
  • Условия использования
  • Блог
  • Цена и оплата
  • Курсы и скринкасты
  • Сертификаты
  • Партнерская программа
  • Комьюнити

Наши курсы и скринкасты

  • HTML/CSS Advanced
  • Bootstrap 4
  • Vue JS
  • Linux, GIT and web-hosting
  • HTML and CSS
  • Modern Javascript
  • Javascript/jQuery
  • Codeigniter
  • Все курсы и скринкасты

PHP и HTML

PHP и HTML тесно взаимодействуют: PHP может генерировать HTML, а HTML может передавать информацию PHP. Перед чтением вопросов в этом разделе важно чтобы вы понимали как получать переменные извне PHP. Страницы руководства по этой теме содержат много примеров.

  1. Какое кодирование/декодирование я должен выполнять при передаче значения через форму/URL?
  2. Я пытаюсь использовать , но переменные $foo.x и $foo.y недоступны. $_GET[‘foo.x’] тоже не существует. Где они?
  3. Как создать массивы в HTML ?
  4. Как получить все результаты из HTML-тега select с атрибутом multiple?
  5. Как я могу передать переменную из JavaScript в PHP?

Какое кодирование/декодирование я должен выполнять при передаче значения через форму/URL?

  • Интерпретация HTML. Для того, чтобы задать произвольную строку, вы должны заключить её в двойные кавычки и использовать htmlspecialchars() для кодирования.
  • URL: URL состоит из нескольких частей. Если вы хотите чтобы ваши данные были восприняты как один элемент, вы должны закодировать их с помощью urlencode() .

Пример #1 Скрытый элемент HTML-формы

echo ‘. htmlspecialchars ( $data ) . ‘» />’ . «\n» ;
?>

Замечание: Использовать urlencode() для $data неправильно, так как кодировать данные в urlencode() это обязанность браузера. Все популярные браузеры делают это правильно. Отметьте, что это происходит вне зависимости от метода (например, GET или POST). Вы заметите это только в случае GET-запроса, так как POST-запросы обычно скрыты.

Пример #2 Данные, редактируемые пользователем

echo «» ;
?>

Замечание: Данные показываются браузером как предполагается, потому что браузер будет интерпретировать экранированные HTML-символы. При отправке через GET или POST данные будут закодированы (urlencoded) браузером для передачи и декодированы (urldecoded) PHP. Поэтому вам не надо выполнять какое-либо кодирование/декодирование url самостоятельно, всё обрабатываются автоматически.

Пример #3 В URL

Замечание: На самом деле вы подделываете HTML GET-запросом, поэтому необходимо вручную закодировать ( urlencode() ) данные.

Замечание: Вам надо применить htmlspecialchars() ко всему URL, потому что URL появляется как значение HTML-атрибута. В этом случае, браузер сначала раскодирует всё значение (обратная операция htmlspecialchars() ) и затем передаст URL. PHP поймёт URL правильно, так как вы закодировали данные с urlencode() . Вы заметите, что & в URL заменяется на & . Хотя большинство браузеров это исправляют, если вы забудете об этом, но всё же это не всегда возможно. Поэтому, даже если ваш URL не динамический, вам надо закодировать его с помощью htmlspecialchars() .

Я пытаюсь использовать , но переменные $foo.x и $foo.y недоступны. $_GET[‘foo.x’] тоже не существует. Где они?

При отправке формы, вместо стандартной кнопки отправки возможно использовать изображение с тэгом как:

Когда пользователь кликает где-либо на картинке, серверу будет послана сопутствующая форма с двумя дополнительными переменными: foo.x и foo.y .

Так как имена foo.x и foo.y не разрешены в PHP, они автоматически преобразуются в foo_x и foo_y . То есть, точки заменяются на подчёркивания. Таким образом, вы обращаетесь к этим переменным так же, как и к любым другим, описанным в разделе о получении переменных извне PHP. Например, $_GET[‘foo_x’] .

Замечание:

Пробелы в именах переменных запроса преобразуются в подчёркивания.

Как создать массивы в HTML ?

Для того, чтобы результаты были переданы вашему PHP скрипту как массив, именуйте элементы , или следующим образом:

Заметьте квадратные скобки после имени переменной, это делает её массивом. Вы можете сгруппировать элементы в массив, присваивая одно и то же имя разным элементам:

Это создаст два массива, MyArray и MyOtherArray, которые будут переданы PHP-скрипту. Также возможно задать определённые ключи для ваших массивов:

Массив AnotherArray теперь будет содержать ключи 0, 1, email и phone.

Замечание:

Определять ключи массивов в HTML необязательно. Если вы не установите ключи, массив заполняется в порядке появления элементов в форме. Наш первый пример будет содержать ключи 0, 1, 2 и 3.

Как получить все результаты из HTML-тега select с атрибутом multiple?

HTML-тег select с указанным multiple позволяет пользователю выбрать несколько элементов из списка. Эти элементы затем передаются обработчику формы. Проблема в том, что они все переданы с одним и тем же именем. Например:

Каждая выбранная опция поступит обработчику формы как:

var=option1 var=option2 var=option3

Каждая опция будет перезаписывать содержимое предыдущей переменной $var . Решение — воспользоваться возможностью PHP — «массив из элемента формы». Следует использовать следующее:

Это укажет PHP обрабатывать $var как массив и каждое присваивание значения в var[] добавит элемент в массив. Первым элементом будет $var[0] , следующим — $var[1] и т.д. Функция count() может быть использована для определения, сколько элементов было выбрано, а функция sort() — для сортировки массива опций, если это необходимо.

Заметьте, что если вы используете JavaScript, то [] в имени элемента могут вызвать проблемы, если вы пытаетесь обращаться к элементу по имени. Вместо этого используйте числовой идентификатор элемента формы или заключите имя переменной в одинарные кавычки и используйте его как индекс массива элементов, например:

variable = document.forms[0].elements['var[]'];

Как я могу передать переменную из JavaScript в PHP?

Так как JavaScript является (обычно) клиентской технологией, а PHP, как правило, серверной, и поскольку HTML — протокол «без состояния», эти два языка не могут обмениваться переменными напрямую.

Однако, возможно передавать переменные между ними. Один из способов достичь этого — сгенерировать JavaScript-код из PHP и принудительно обновлять браузер, посылая определённые переменные обратно PHP-скрипту. Нижеприведённый пример показывает как это сделать — он позволяет PHP-коду получить высоту и ширину экрана, что, обычно, возможно только на стороне клиента.

Пример #4 Генерирование JavaScript из PHP

if (isset( $_GET [ ‘width’ ]) AND isset( $_GET [ ‘height’ ])) // выводим переменные с размерами
echo «Ширина экрана: » . $_GET [ ‘width’ ] . «
\n» ;
echo «Высота экрана: » . $_GET [ ‘height’ ] . «
\n» ;
> else // передаём переменные с размерами
// (сохраняем оригинальную строку запроса
// — post переменные нужно будет передавать другим способом)

User Contributed Notes

There are no user contributed notes for this page.

  • ЧАВО
    • Общая информация
    • Списки рассылки
    • Получение PHP
    • Вопросы по базам данных
    • Установка
    • Проблемы сборки
    • Использование PHP
    • Хеширование паролей
    • PHP и HTML
    • PHP и COM
    • Разные вопросы

    Почему не работает PHP?

    Почему не работает PHP

    Всем доброго времени суток. На связи Алексей Гулынин. В этой статье я бы хотел рассказать, почему не работает PHP.

    Как мы с вами раньше проверяли работоспособность html-страницы или javascript-кода? Мы просто создавали файл, называли его к примеру index.html, записывали туда html-теги и javascript-код. Затем открывали с помощью какого-нибудь браузера и смотрели, что в итоге получается. Можно подумать, что, если в файле index.html написать какой-нибудь код на PHP, то, при открытии, он тоже должен обрабатываться нормально. Но на самом деле такого не будет. К примеру давайте наберем следующий код и попробуем его открыть в браузере:

       Почему не работает PHP?  

    Как вы, наверное, догадались — для того, чтобы вставить php-код в html-страницу необходимо данный код заключить в конструкцию . Если мы откроем данную страницу, то ничего не увидим. Давайте теперь попробуем сохранить нашу страницу с расширением не html, а php (так на самом деле и должно быть, если мы хотим посмотреть результат выполнения php-кода). В некоторых браузерах опять откроется пустая страница, а в некоторых — нам предложат сохранить данную страницу на компьютер. Так почему не работает PHP?

    Всё дело в том, что HTML, JavaScript, CSS обрабатываются браузером , а PHP обрабатывается не браузером, а интерпретатором PHP . Для того, чтобы видеть результат выполнения php-кода можно пойти либо сложным путем (путем самурая, как говорил наш учитель по математическому анализу), либо легким путем. Сложный путь заключается в том, что нам предстоит настроить рабочую среду самим, а это установить сервер Apache, почтовый сервер (SMTP), Perl, MySQL и сам PHP со всеми настройками и библиотеками. Легкий путь заключается в том, чтобы установить готовый пакет, в который это всё уже входит. Такой пакет существует и называется Denwer. Скачать его можно по ссылке скачать Denwer . Установку данного пакета я подробно разберу в следующей статье. Теперь вы знаете почему не работает PHP.

    На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *