【问题标题】:Strip Tags from Query从查询中去除标签
【发布时间】:2014-03-19 01:44:12
【问题描述】:

我听说在不去除标签的情况下允许通过 HTML 表单输入数据是很糟糕的,所以我来这里寻求帮助,看看有没有办法解决这个问题。

我有一个查询要更新数据库中的记录,但我想先去掉标签。查询如下。如果有任何建议可以通过 PHP 执行此操作,请

  $res = "UPDATE events SET event_type ='$_POST[event_type]', 
  title = '$_POST[title]', description ='$_POST[description]', 
  location ='$_POST[location]', image ='', image_name ='', 
  address_1='$_POST[address_1]', address_2='$_POST[address_2]', 
  city='$_POST[city]', Postcode='$_POST[Postcode]', country='$_POST[country]', 
  available_ticketqty='$_POST[available_ticketqty]'  WHERE event_id= $_POST[id]";

【问题讨论】:

  • php.net/manual/de/function.strip-tags.php - 谷歌可能需要 5 秒(“Php 条带标签”)
  • 你听错了。更危险的是 Little Bobby Tables。
  • (不熟悉小鲍比的朋友:xkcd.com/327
  • 如果你说的是 SQL 注入保护,那么 PHP 有一些函数适合你——stripslashes()、mysql_real_escape_string()
  • @Naman 或者可以只使用准备好的语句而不是作为已弃用接口一部分的函数 (mysql_*)。

标签: php mysql sql strip-tags


【解决方案1】:

完成您想要的最安全的方法是使用 PDO 和准备好的语句。准备好的语句将确保您的数据正确转义。

<?php
// configuration
$dbtype    = "sqlite";
$dbhost    = "localhost";
$dbname    = "test";
$dbuser    = "root";
$dbpass    = "admin";

// database connection
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);

// new data
$title = 'PHP Pattern';
$author = 'Imanda';
$id = 3;
// query
$sql = "UPDATE books 
        SET title=?, author=?
        WHERE id=?";
$q = $conn->prepare($sql);
$q->execute(array($title,$author,$id));    

?>

【讨论】:

  • 请在示例中添加一些指向PDO参考的链接。
猜你喜欢
  • 1970-01-01
  • 2013-07-13
  • 1970-01-01
  • 1970-01-01
  • 2014-11-16
  • 2012-10-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多