php - 为什么mysql不存储 "#"字符后的数据?

标签 php javascript mysql rich-text-editor

我做了一个表格,里面有富文本编辑器。我正在尝试将数据存储到数据库中。
现在我主要有两个问题..

1) 一旦包含“#”的字符串(基本上当我尝试更改字体颜色时)字符,那么它就不会在“#”之后存储字符。而且它也不存储“#”字符。

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

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

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

最佳答案

我们需要看一些代码。我的感觉是你在某处缺少一些重要的逃避步骤。特别是:

As soon as the string which contents "#"(basically when i try to change the color of the font) character

对我来说,您可能会将字符串粘在一起形成这样的 URL:

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

当然,如果 html 包含一个 # 符号,您就会遇到问题,因为:

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

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

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

然而,这远不是上述问题的唯一问题。空格,<= 在 URL 中是无效的,其他像 & 这样的字符也会弄乱参数解析。要将任意字符串编码为查询参数,您必须使用 encodeURIComponent :

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

这会将 # 替换为 %35,对于其他带外字符也是如此。

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

关于php - 为什么mysql不存储 "#"字符后的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2736027/

相关文章:

javascript - 带 Angular ngrepeat 的切换按钮

MySQL - 查找可用的时间段

php - 无法使用php连接到远程数据库

php - UTF-8贯穿始终

php - Laravel Lumen 确保 JSON 响应

javascript - JS/CoffeeScript : Element doesn't receive focus on . 焦点()

mysql - 为什么我在写入 300KB/sec 时绑定(bind)了 I/O 以写入 MySQL?

php - Laravel 无法更新用户

php - 从 PHP 生成 jQuery GanttView 的数据

javascript - 如何根据表中列的值禁用下拉菜单和按钮