0

早晨,

我创建了一个小表单来将一些信息存储到数据库中。

我在我的服务器上关闭了 magic_quotes_gpc。

如果我在框中输入一个"或一个£符号,则无需担心将其存储到数据库中。

当我用 php 回显它时,它会显示,但如果我在输入表单字段中使用值,则"关闭值字段。

<input type="text" name="variable" value="<?php echo $row[variable]; ?>" />

我现在在输入值周围使用了 htmlspecialchars 并且它可以工作。

<input type="text" name="variable" value="<?php echo htmlspecialchars($row[variable]); ?>" />

但我已经将开放购物车源作为参考,他们不使用 htmlspecialchars 而是以不同的方式存储数据。

我尝试使用他们使用的 urlencodes 方法:

urlencode(html_entity_decode($_POST[variable],ENT_QUOTES, 'UTF-8'));

但这似乎存储了很多没有正确显示的数字和 + 符号。

我宁愿对更新数据库进行编码,而不是使用我使用的方法htmlspecialschars

但不太确定哪种方式最好?

谢谢你

4

3 回答 3

0

也许尝试mysqli_real_escape_string($dblink, $string)而不是htmlspecialchars

于 2013-04-18T11:08:38.517 回答
0

你可以使用

htmlentities() function in php
于 2013-04-18T11:15:45.417 回答
-2

要存储 HTML 字符,请更改章程,然后存储它们:

<?php
      $new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
      echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

要取回正确的 HTML 字符,请按以下方式进行解码:

<?php
      $str = "<p>this -&gt; &quot;</p>\n";

      echo htmlspecialchars_decode($str);

      // note that here the quotes aren't converted
      echo htmlspecialchars_decode($str, ENT_NOQUOTES);
?>

有关详细信息,请参阅http://www.php.net/manual/en/function.htmlspecialchars.php

于 2013-03-27T09:35:46.520 回答