возможно ли внедрить это в 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 ?>
<!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.
Если в нем есть PHP-код, то это больше не HTML.
Вы должны называть это .php или .phtml.
PHP генерирует или выводит html.
Вы можете иметь чистый html в сценариях .php (вне тегов <?php
?>
), Но не наоборот (то есть, не php-код в обычных .html-файлах).
Если вы хотите добавить в него некоторую логику (код PHP), вам необходимо проанализировать ее с помощью веб-сервера, который, в свою очередь, будет генерировать html.
Да, вы можете, однако, это не очень хороший способ сделать это. Вы должны пойти на модель Model-View-Controller. Он отделяет HTML-код от фактического кода, который обрабатывает. Многие PHP Framework делают это. (Хотя лично я нахожу их слишком неуклюжими и написал свои собственные)
Кроме того, внедрение 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, как правило, очень ограничивают то, что вы можете сделать.
Да, вы можете делать то, что вы просите. Убедитесь, что расширение распознается интерпретатором php (обычно .php)
Если вам нужно что-то взломать, все в порядке. Но для чего-либо еще, посмотрите на использование своего рода языка шаблонов. Это становится важным моментом, потому что вы хотите отделить свою логику от вашего дисплея, чтобы разумно себя и других разработчиков, которые будут работать над вашим кодом в будущем.
edit: oh, также очень важно. Не используйте $ _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"; } } ?>