php - 如何让 <textarea> 仅将撇号识别为文本?

标签 php html sql forms

<分区>

很简单,我网站上的“texarea”就像发短信一样,它允许用户输入文本并将其发布到页面上。我刚刚发现它将文本视为某种代码,可能是 SQL。

当我输入“Hello we're all fine”时,“we're”一词中的撇号引起了一些混淆。

浏览器中显示的错误信息:

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 're all set')' at line 1

以防万一你想知道,这是 html :

<form action="comi.php" method="post">
        <textarea maxlength="227" type="text" name="input" cols="45" rows="4"></textarea>
        <input type="submit" value="POST" id="button" />
</form>

我认为它可能与数据库有关,有人可以帮忙吗?

提前致谢:)

最佳答案

要防止 SQL 注入(inject),您应该使用 Stored Procedures .

CREATE PROCEDURE saveText
    @textArea nvarchar(50)
AS 
SET NOCOUNT ON;

INSERT INTO myTable 
    (textArea)
VALUES
    (@textArea)

开始

这样,当您在输入中包含 ' 时,您将不会遇到任何问题。

关于php - 如何让 &lt;textarea&gt; 仅将撇号识别为文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31227410/

相关文章:

html - 这些CSS行之间有什么区别

sql - 在 Where 子句中使用 "CASE"来选择各种列会损害性能

sql - 选择存在双向关系的两条记录

mysql表到表sql

php - 如何获取客户端的本地IP地址和代理服务器

php - 为什么 PHP 中的 ctype_space 对于某些数值会返回 "true"?

html - <a> 标签中的 block 级元素,验证与可用性

php - 使用未定义的常量 SIGKILL - 假定为 'SIGKILL'

php - Symfony2 新的捆绑路由

javascript - AngularJS 加载 JSON 数据,然后从中解析/加载 HTML