为什么mysql不会在“#”字符后存储数据?

时间:2010-04-29 09:10:09

标签: php javascript mysql rich-text-editor

我制作了一个表格,其中有富文本编辑器。我试图将数据存储到数据库 现在我主要有两个问题..

1)一旦内容为“#”的字符串(基本上当我尝试改变字体的颜色)字符时,它就不会在“#”之后存储字符。它也不存储“#”字符。

2)虽然我曾尝试过....在javascript中

html.replace("\"","'");

但它不会将双引号替换为单引号。

3 个答案:

答案 0 :(得分:2)

我们需要看一些代码。我的感觉是你错过了一些必要的逃避步骤。特别是:

  

内容为“#”的字符串(基本上当我尝试更改字体颜色时)字符

告诉我你可能会将字符串粘在一起成为这样的URL:

var url= '/something.php?content='+html;

当然,如果html包含#符号,则表示您遇到了问题,因为在:

http://www.example.com/something.php?content=<div style="color:#123456">

#开始一个名为#123456">的片段标识符,就像您将#section放在URL末尾以转到HTML文件中名为section的锚点一样。片段标识符纯粹是客户端标识符,不会发送到服务器,可以看到:

http://www.example.com/something.php?content=<div style="color:

然而,这远不是上述问题的唯一问题。空格<=在网址中显然无效,其他字符(如&)也会使参数解析陷入混乱。要将任意字符串编码为查询参数,您必须使用encodeURIComponent

var url= '/something.php?content='+encodeURIComponent(html);

#替换为%35,其他带外字符也是如此。

但是,如果这确实是您正在做的事情,那么在任何情况下,您都不应该为了响应GET请求而将任何内容存储到数据库中,也不应该依赖GET来传递可能很大的内容。改为使用POST请求。

答案 1 :(得分:1)

您的数据库代码似乎正在做一些非常奇怪的事情。您能否显示用于将字符串存储到数据库的实际代码?

# - 字符是创建评论的常用方法。这就是从#到行尾的所有内容都将被丢弃。但是,如果要存储到数据库的代码是正确的,则无关紧要。

Javascript不是处理引号字符转换的正确位置。正确的地方是在服务器端。

答案 2 :(得分:0)

正如您所要求的那样....
我试着重播你......我试着提一下我所做的事情......

1)在html表单页面的客户端,我这样写了..

html = html.trim();    // in html, the data of the rich text editor will come.
document.RTEDemo.action = "submit.php?method='"+ html.replace("\"","'") + "'"; 
\\ i had done replace bcz i think that was some problem with double quotes.

现在在submit.php上,我的浏览器网址就像这样......

http://localhost/nc/submit.php?method='This is very simple recipe.<br><strong style='background-color: #111111; color: #80ff00; font-size: 20px;">To make Bread Buttor you will need</strong><br><br><blockquote><ol><li>bread</li><li>buttor</li></ol></li></blockquote><span style="background-color: #00ff80;">GOOD.</span><br><br><br><blockquote><br></blockquote><br>'


2)关于submit.php ........我只是写这个

echo "METHOD : ".$_GET['method'] . "<br><br>";
$method = $_GET['method'];

现在我对上半部分的回答是这样的......

METHOD : 'This is very simple recipe.

现在我想存储URL的全部细节....但它只存储...

This is very simple recipe.