如何在发送到数据库之前在php中转义&符?

时间:2009-09-04 05:24:05

标签: php

当我将数据发送到我的数据库时,会发生奇怪的事情。在&符号被丢弃之后的任何东西都好像它从未打字过,并且它之前的所有内容都保持不变。有人可以告诉我应该用什么来保存这个角色?正则表达式? PHP函数?

由于

编辑:

代码:

// POST var包含用户输入的数据,因此可能是真的。这是来自WYSIWYG编辑器。

$ string = addslashes($ _ POST ['txtarea']);

mysql_query(“INSERT INTO ...'$ string'”);


        WYSIWYG.updateTextArea(n);
        var form = WYSIWYG_Core.findParentNode("FORM", this.getEditor(n));
        if(form == null) {
            alert("Can not submit the content, because no form element found.");
            return;
        }
        form.submit();

我想回复提交内容的字符串。有人可以告诉我,我需要在这个案例中做些什么吗?它是警报(n)吗?


好的伙计们......我得到了回应。我正在使用AJAX接口,只是回显了那里的值。当我在字符串中添加一个&符时,我得到:

test&&

所以....它是不是编辑..

4 个答案:

答案 0 :(得分:2)

看起来这个错误与您的WYSIWYG编辑器有关,而不是将数据插入到数据库中。尝试在发布表单之前使用JavaScript捕获输出,以确保。

答案 1 :(得分:1)

我猜是某种'&'正在将它编码为未编码的查询字符串,如:

http://yoursite/?message=hello&whatsup

这将导致GET变量“消息”具有“hello”的值,并且GET变量“whatsup”具有空值。

如果发生这种情况,您只需要停止它。

您可以在查询字符串中将其编码为'%26'。

答案 2 :(得分:1)

我觉得你的WYSIWYG编辑器有问题。

答案 3 :(得分:0)

这可能会或可能不会解决您的问题,但一般来说,当您需要转义任意字符时,您可以使用PHP的addcslashes,它允许您定义要转义的一组或一系列字符。< / p>