#php #html
#php #HTML
Вопрос:
возможно ли встроить это в html
if (empty($_POST['extras'])) {
$message .="<br /> No extras selected <br />";
} else {
foreach($_POST['extras'] as $extra)
{
$message .="<br />Extras: ".$extra."";
}
}
Я хотел бы поместить приведенную выше инструкцию php в нижней части этого HTML-кода.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Booking System</title>
<link rel="stylesheet" href="css/bs-admin.css" type="text/css" />
</head>
<body>
<noscript>
<div class="js_error">Please enable JavaScript or upgrade to better <a href="http://www.mozilla.com/en-US/firefox/upgrade.html" target="_blank">browser</a></div>
</noscript>
<div id="index">
<h1>Thank you for your reservation!</h1>
<p>
<h3>Your Booking is as follows:</h3>
<p>Dear <b><?php echo $custInf[0] ?></b>,
<p>You have Booked: <?php echo $eventInf[0] ?>
<p>Booking Date: <?php echo $eventInf[2] ?>
<p>Booking descriptiong: <?php echo $eventInf[1] ?>
<p>Number of machines booked: <?php echo $qty ?>
<p>Street: <?php echo $comments ?>
<p>Suburb: <?php echo $suburb ?>
<p>Postcode: <?php echo $postcode ?>
<p>Dropoff: <?php echo $dropoff ?>
<p>Duraton: <?php echo $duration ?>
Комментарии:
1. Это очень запутанный вопрос. Вы действительно можете поместить этот фрагмент в PHP-файл на сервере с интерпретатором PHP, однако он не будет иметь никаких видимых результатов как есть
2. @Simon. Глядя на вашу историю вопроса, кажется, вы знаете, как работает php, так что же, черт возьми, вы имеете в виду?
3. Это верно. Вы должны
echo
заполнить (html), иначе вы ничего не увидите в своем браузере, кроме сообщений об ошибках.4. извините, я не думаю, что объяснил это должным образом. пожалуйста, обратитесь к моему измененному вопросу
5. Я хотел бы поместить приведенную выше инструкцию php в нижней части этого HTML-кода. И что вам мешает это сделать?
Ответ №1:
Если в нем есть php-код, то это больше не HTML.
Вы должны назвать это .php или .phtml.
PHP генерирует или выводит html.
У вас может быть чистый html в php-скриптах (вне <?php
?>
тегов), но не наоборот (т. Е. никакого php-кода в обычных HTML-файлах).
Если вы хотите добавить в него некоторую логику (PHP-код), вам нужно, чтобы он был проанализирован веб-сервером, который, в свою очередь, сгенерирует html.
Ответ №2:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Booking System</title>
<link rel="stylesheet" href="css/bs-admin.css" type="text/css" />
</head>
<body>
<noscript>
<div class="js_error">Please enable JavaScript or upgrade to better <a href="http://www.mozilla.com/en-US/firefox/upgrade.html" target="_blank">browser</a></div>
</noscript>
<div id="index">
<h1>Thank you for your reservation!</h1>
<div>
<h3>Your Booking is as follows:</h3>
<p>Dear <b><?php echo $custInf[0]; ?></b>,</p>
<p>You have Booked: <?php echo $eventInf[0]; ?></p>
<p>Booking Date: <?php echo $eventInf[2]; ?></p>
<p>Booking descriptiong: <?php echo $eventInf[1]; ?></p>
<p>Number of machines booked: <?php echo $qty; ?></p>
<p>Street: <?php echo $comments; ?> </p>
<p>Suburb: <?php echo $suburb; ?></p>
<p>Postcode: <?php echo $postcode ?></p>
<p>Dropoff: <?php echo $dropoff; ?></p>
<p>Duraton: <?php echo $duration; ?></p>
</div>
<?php
$message = "";
if (empty($_POST['extras'])) $message .="<br /> No extras selected <br />";
else
{
foreach($_POST['extras'] as $extra)
{
$message .="<br />Extras: ".$extra;
}
}
echo $message;
?>
</div>
</body>
</html>
Я думаю, вам нужно создать пустую переменную $ message, прежде чем вы сможете начать добавлять к ней «дополнительные». Затем все, что вам нужно сделать, это echo
$message.
Комментарии:
1. Это php-файл. однако я хочу поместить вывод инструкции if в html. т. е. отобразить «Дополнительно: — ЗНАЧЕНИЕ»
2. Если вы хотите отображать материалы из PHP, вам нужен
echo
илиprint()
функция.3. Я воспринял вопрос как «как я могу поместить PHP в файл HMTL». Момент.
4. Правильно, я просто внедряю это сейчас, чтобы проверить
Ответ №3:
Да, вы можете, однако это не самый лучший способ сделать это. Вы должны выбрать модель Model-View-Controller. Это отделяет HTML-код от фактического кода, который выполняет обработку. Многие фреймворки PHP делают это. (Хотя лично я нахожу их слишком неуклюжими и написал свой собственный)
Кроме того, встраивание HTML в PHP — это плохо, поскольку, опять же, код должен быть отделен от HTML как можно больше.
Пример представлений и контроллеров (из моего фреймворка):
Контроллер:
class Controllers extends BaseController{
function index($args=array()){
// process data
$this->render('index', array('data1'=>$data));
}
}
Вид:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>My site</title>
</head>
<body>
<h1><?php echo $page->data1; // echos out $data from the view ?></h1>
</body>
</html>
Это намного чище, чем ваша модель встраивания php в HTML и / или наоборот.
Взгляните на фреймворки, они обычно довольно полезны, хотя фреймворки PHP обычно очень ограничивают то, что вы можете делать.
Ответ №4:
Да, вы можете сделать то, о чем просите. Убедитесь, что расширение распознается интерпретатором php (обычно .php)
Если вам нужно что-то быстро взломать, это нормально. Но для всего остального, кроме этого, рассмотрите возможность использования какого-нибудь языка шаблонов. Это становится важным моментом, потому что вы хотите отделить свою логику от отображения для сохранения вашего здравомыслия и других разработчиков, которые будут работать над вашим кодом в будущем.
редактировать: о, тоже очень важно. Не используйте $_POST таким образом, не очищая данные. Он созрел для внедрения XSS.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Booking System</title>
<link rel="stylesheet" href="css/bs-admin.css" type="text/css" />
</head>
<body>
<noscript>
<div class="js_error">Please enable JavaScript or upgrade to better <a href="http://www.mozilla.com/en-US/firefox/upgrade.html" target="_blank">browser</a></div>
</noscript>
<div id="index">
<h1>Thank you for your reservation!</h1>
<!--- bunch of stuff omitted here -->
<?php
if (empty($_POST['extras'])) {
echo "<br /> No extras selected <br />n";
} else {
foreach($_POST['extras'] as $extra)
{
echo "<br />Extras: ".$extra."n";
}
}
?>