【发布时间】:2015-11-05 13:18:53
【问题描述】:
我有一个要求用户输入 ISBN 号的网络表单。我想设计输入字段,以便它可以处理 10 或 13 位 ISBN。无论用户是否输入连字符,我也希望它能够正常工作。那么当我创建下面的表单域时,我应该使用什么来标记问题的输入类型?我已经读过,由于 SQL 注入的可能性,您通常应该避免使用文本字段。如果用户输入连字符,输入“数字”将不起作用。除了使用“文本”作为输入类型之外,还有其他选择吗?我的数据库当前将 ISBN 存储为 varchar(17)。
<form action="processform.php">
ISBN: <input type="???" name="ISBN"><br>
<input type="submit" value="Submit">
</form>
【问题讨论】:
-
在将数据插入数据库之前使用文本并正确清理和验证数据。
-
不幸的是,即使在 HTML5 中也没有“ISBN”类型。您可以使用正则表达式(“模式”属性),但并非所有浏览器都支持它(现代的,但是,这样做)。
-
没有输入类型会阻止 SQL 注入。 SQL注入发生在后端,输入在前端。
标签: forms html-input isbn