Jim Clinton Ответов: 1

Как поставить ссылки с href, используя mysqli, то принести?


Мне нужно поставить ссылку href на echo

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

while ($users=mysqli_fetch_assoc($query)){
    echo "<tr>";
    echo "<td>".$users['cat_name']. "</td>";
    echo "<br>";
    echo "<td>".$users['cat_desc']."</td>";
      echo "<br>";
    echo "</tr>";

}

1 Ответов

Рейтинг:
6

Bryian Tan

Вы можете сделать что-то вроде

<?php echo "<td><a href='somepage.php?cat=" .$users['cat_name']. "'>".$users['cat_name']. "</a></td>";?> <br>

Это решение подвержено атаке межсайтового скриптинга (XSS). Возможно, вам придется написать функцию или использовать встроенную функцию для очистки входных данных

Фильтрация XSS в PHP (очищает различные кодировки UTF и вложенные эксплойты) · GitHub[^]

Вот пример того, как реплицировать атаку XSS и использовать функцию htmlspecialchars для ее подавления.

<?php 
$new = htmlspecialchars("1234' onmousemove=alert(1)>", ENT_QUOTES); //ESCAPE
//$new = "1234' onmousemove=alert(1)>"; //XSS
?>
<?php echo "<td><a href='somepage.php?cat=".$new."'>".$users['cat_name']. "</a> </td>";?>


Jim Clinton

как насчет этого

while( $row = $resultwhile( $row = $result->fetch_assoc() ){
echo "";() ){
    extract($row);
    echo "";
    echo "{$post_id}";
    echo "{$categories}";
    echo "{$message}";
    echo "{$date}";
    echo "$user_id";
    echo "";
    echo "";
    echo "";
}

echo "";

Bryian Tan

та же концепция

$cleanId = htmlspecialchars($user_id, ENT_QUOTES); //escape
echo "<a href='user.php?id=".$cleanId ."'>".$cleanId . "</a>";