Landon Soo Hoo Ответов: 1

Как добавить CSS-границу к каждому из моих сообщений в блоге PHP?


Я веду блог на PHP и SQL. Вот код для страницы администратора:

<!DOCTYPE html>
<html>
    <body>
        <form action = "poster.php" method = "POST">
<textarea name = "hertext"></textarea>
<input type = "submit" value = "post">
        </form>   </body>
</html>


Именно здесь пользователь делает запись в блоге.
Здесь poster.php:
<?php
$link = mysqli_connect("Localhost","username for database","password for database","name for database");
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$hertext = $_POST["hertext"];    

  $test = "INSERT INTO input (id, herpost)
   VALUES (2, '<br>$hertext')";
    $resulter = mysqli_query($link, $test);  
   

}


   $sql = 'SELECT herpost FROM input';
  $result = mysqli_query($link, $sql);
  $text = mysqli_fetch_all($result);

 ?>
<html>
    <head>
      <style>
          body{
    text-align:center;
             
             
          }
      </style>  
    </head>
    <body>
<h1>My test blog</h1>
<style>
    p{
    border: 3px solid black;
    }
</style>
<br>
     <p><?php foreach ($text as $texts) { echo implode(',', $text); }?></p>
     
    </body>
</html>

Он выводит все сообщения в блоге внутри границы CSS. Как добавить CSS-границу к каждому новому сообщению, а не поверх всего этого?

Что я уже пробовал:

Я действительно не знаю, что попробовать.

Richard Deeming

Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.

PHP: SQL-инъекция - руководство пользователя[^]

Landon Soo Hoo

Как бы я исправил уязвимость SQL-инъекции?

1 Ответов

Рейтинг:
1

Richard Deeming

Начните с фиксации SQL-инъекция[^] уязвимость в вашем коде.

Затем измените свой выходной код, чтобы отобразить каждый пост в своем собственном стилизованном элементе, а не помещать все в один <p> метка.

<style>
article.post {
    border: 3px solid black;
}
</style>

<?php foreach ($text as $texts) {
    echo '<article class="post">';
    echo implode(',', $text);
    echo '</article>';
}?>