我制作了一个表格,其中有富文本编辑器。我试图将数据存储到数据库 现在我主要有两个问题..
1)一旦内容为“#”的字符串(基本上当我尝试改变字体的颜色)字符时,它就不会在“#”之后存储字符。它也不存储“#”字符。
2)虽然我曾尝试过....在javascript中
html.replace("\"","'");
但它不会将双引号替换为单引号。
答案 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.