Updated
我在表单中提供的textarea将用户输入作为字符串
包含双引号的字符串在DB ..中插入不完整。
我在文本区域插入了一个字符串
“不要太担心 布局/设计/文字大小,我们会经常 “调味”(即粗体,斜体, 间隔)你的横幅更好 整体看。
当我将字符串插入DB时,字符串结束于
不要太担心 布局/设计/文字大小,我们经常会
并且部分插入..我该怎么做才能插入所有单引号和双引号?
编辑请求
下面是我使用php
在数据库中插入的查询“插入到products_description中 (products_id,products_name, products_logo_name1, products_logo_name2, products_logo_name3, products_description)值('“。 (int)$ products_id。 “','banner_”。 $ products_id。 “ ''”。$ _ POST [ 'logoimage1']“。“, ' “$ _ POST [ 'logoimage2']”。', ' “$ _ POST [ 'logoimage3']”。', “” .mysql_real_escape_string($ _ POST [ '描述'])。 “')”
这里mysql_real_escape_string($ _ POST ['description'])没有转义双引号,因此在插入时会截断应该做什么?
答案 0 :(得分:5)
转义字符串中的双引号,如下所示:
$theString = "Hello, i wonder what all these \"quotes\" are doing in here...";
反斜杠会告诉编译器忽略下面双引号的“含义”,并将其视为普通字符(这就是我们所谓的“逃逸”)。
使用用户输入时也检查mysql_real_escape_string()
(这将自动转义字符串中的所有危险元素,以便在mySQL数据库中使用)。
答案 1 :(得分:3)
LOL
没有读完整个问题,但我确信我知道答案
它被插入到数据库中,然后检索好了,然后进入 HTML表单的字段值... ; - )
嗯,认真。
您必须一步一步地跟踪您的数据
在你的应用程序中有一些邪恶的代码,这会产生一些邪恶的东西
您必须关注您的数据流并检查它被破坏的阶段
只需按以下步骤打印您的数据:
这是你的一般错误:你将多阶段过程作为一个步骤 你看到你的字符串被插入到textarea中,下次你在这个textarea中看到它被截断了。你认为是数据库问题。虽然你不能这么肯定 - 有许多步骤不涉及数据库。将您的应用视为不是一个固定的块,而是作为多个阶段的过程。
答案 2 :(得分:0)
如果来自用户输入,请使用函数mysql_real_escape_string()
。
mysql_real_escape_string()调用MySQL的库函数mysql_real_escape_string,它将反斜杠添加到以下字符:\ x00,\ n,\ r,\,',“和\ x1a。
在向MySQL发送查询之前,必须始终使用此函数(少数例外)使数据安全。
答案 3 :(得分:0)
你需要逃避你的报价。
如果您的数据库是MySQL,请在将所有数据保存到数据库之前通过mysql_real_escape_string()
函数传递所有数据。
如果你不这样做,你的代码就会面临重大安全漏洞,而不仅仅是数据丢失!
(如果你还没有这样做,你也应该为了其他目的而逃避其他数据;例如,应该转发发送回浏览器的数据,以防止流氓用户向其添加原始HTML或Javascript代码操纵你的网站。
PHP中有许多函数可以处理添加和删除转义字符以及数据过滤。如果您希望您的网站安全,您需要学习这些功能和技术。
[编辑]
看到你的编辑后:
首先,您需要转义查询中的所有字符串,而不仅仅是描述,因此请将转义添加到$_POST['logoimage1']
等,因为如果其中任何一个包含引号,您将遇到相同的问题。
然而,描述字段中的转义看起来是正确的,所以我不知道它为什么会被截断。 mysql_real_escape_string()
的手册页指出它避免了双引号和单引号,所以对你来说应该没问题。您可以通过print()完全转义的SQL字符串来测试它;这将显示是否有任何未转义的内容。
在黑暗中拍摄 - 您是否检查过数据库中描述字段的最大长度?这也可能导致字符串截断..但不太可能;我想如果你输入一个textarea,你就可以把它设置得足够长。
答案 4 :(得分:0)
根据@COL Sharpnel的Scouldings: - )
感谢Agauin让我自己模仿......有时是必要的
我回应了$ _POST ['description'],显示为
不要太担心 布局/设计/文字大小,我们经常会
当我使用
时用htmlspecialchars(的stripslashes($ _ POST [ '描述']))
它给了我完整的字符串
“不要太担心 布局/设计/文字大小,我们会经常 “调味”(即粗体,斜体, 间隔)你的横幅更好 整体看。
<强>&GT;道德的道德:不要置信 关于SPAGHETTI代码