【问题标题】:cannot display value correctly in HTML无法在 HTML 中正确显示值
【发布时间】:2015-04-08 18:41:19
【问题描述】:

我在 mysql 中有 2 个数据类型相同的字段 varchar(200) 但是当我在 HTML 中输入相同的值(3" x 3 表)时(输入类型是文本和文本区域)并且在 mysql 中没有发现问题,但是当我选择数据并以 HTML 形式显示时,只有 textarea 可以显示完整的描述(3" x 3 表)并且输入类型(文本)中的值是 3 而没有 "x 3 表,所以我对此一无所知但是当我echo $row['desc1']不确定为什么不能在html中显示时,该值可以显示

$r12=$row['desc1'];
<td><input type="text" id="r1-2" name="r1-2" maxlength="200" style="width: 99%;" value="<?php echo $r12; ?>" /></td>

(php版本是5.3.8,mysql是5.5.16)。

【问题讨论】:

  • 你应该在 echo 之前转义内容
  • 只是为了好玩,把这个描述放在你的数据库中:"&gt;&lt;script&gt;alert('Nice XSS injection you have there!');&lt;/script&gt; 看看会发生什么。
  • 当我输入这个时,我得到“无法更新数据:您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在 'Nice XSS 附近使用的正确语法');', pono1='0', pod1='', qty1='', up' at line 1"

标签: php html mysql


【解决方案1】:

$row['desc1'] 周围的htmlentities 用作echo htmlentities($row['desc1'])

【讨论】:

  • 不管 echo $row['desc1'];或 echo htmlentities($row['desc1']);值可以正确显示,问题是,在html输入文本字段中不能显示?
  • 问题是你的字符串包含 " 这就是为什么双引号后的部分被删除。htmlentities() 不会截断字符串
  • 是的,你是对的,问题已经解决了,但是当我输入 ;在现场?
猜你喜欢
  • 2023-03-29
  • 2021-02-23
  • 2015-05-09
  • 1970-01-01
  • 2020-04-11
  • 1970-01-01
  • 2016-09-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多