Рендеринг мета-тегов раздела заголовка в пользовательской 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>
Другие вопросы по тегам