Рендеринг мета-тегов раздела заголовка в пользовательской CMS PHP
(Я полный начинающий программист)
Недавно я столкнулся с проблемой с моей пользовательской CMS. Я хочу сделать это оптимизированным для SEO, поэтому я попытался отобразить заголовок на странице, загруженной, например
www.blaa.com/index.php?page=about
//code here grabs the required page title from the mysql db $title = $row['title'];
<title><?php echo $title; ?></title>
Я не могу увидеть, сработало ли это на самом деле, потому что при просмотре исходного кода отображается только этот код:
<table>
<tr><td>Custom Module<br><br>
Мой custommodule Cus любой HTML идет здесь
</td></tr>
<tr><td>Menu Body <br><br>
<a href='home.html'> home</a><br><a href='about page.html'> about page</a><br><br><br> </td></tr>
<tr><td>body<br>
cant believe im so a<br></div>
</td></tr>
<tr><td>Footer<br>
links go here to various pages<br></td></tr>
</table>
Есть ли способ сделать так, чтобы весь HTML-код отображался в исходном представлении?
1 ответ
Ты должен echo
или же print
переменная, чтобы показать это. Вы также можете сделать var_dump
чтобы проверить, что значения.
<?php
$title = isset($_GET['title'])? $_GET['title'] : "No title.";
?>
<!DOCTYPE html>
<html>
<head>
<title><?php echo htmlspecialchars($title); ?></title>
</head>
я добавил htmlspecialchars
чтобы предотвратить внедрение скрипта, я не знаю, будет ли он работать в title
тег, но я добавил его на всякий случай. Кроме того, вы должны знать, что всякий раз, когда вы вводите пользовательский ввод на свою HTML-страницу, вы должны использовать htmlspecialchars для отмены любого HTML-кода и сценариев.
Если ваш пользовательский модуль представляет собой загрузку HTML, которую вы хотите отобразить, вы должны использовать inlude
команда:
<body>
<?php include("path/to/custom_module.php"); ?>
</body>
</html>
# custom_module.php
<div>Hello, I'm the custom module.</div>