Php Html在我的数据库中!

Php Html在我的数据库中!,php,mysql,html,Php,Mysql,Html,我面临着一些我不知道从哪里开始的事情 我目前在我的网站上有一个新闻部分,新闻被添加到数据库中。 但是,它非常枯燥,没有格式 我怎样才能允许管理员添加新闻,使事情粗体或下划线,并有颜色等,将有可能保存在数据库中,因为我通常这样做 对不起,如果这是一个非常愚蠢的问题,但这是我以前从未遇到过的问题 谢谢添加到管理员可以使用的表单将允许他们创建一些时髦的html。CKEditor非常易于安装和使用。您可以像处理当前HTML一样将其输出保存到数据库中。确定: INSERT INTO tbl (html_t

我面临着一些我不知道从哪里开始的事情

我目前在我的网站上有一个新闻部分,新闻被添加到数据库中。 但是,它非常枯燥,没有格式

我怎样才能允许管理员添加新闻,使事情粗体或下划线,并有颜色等,将有可能保存在数据库中,因为我通常这样做

对不起,如果这是一个非常愚蠢的问题,但这是我以前从未遇到过的问题

谢谢

添加到管理员可以使用的表单将允许他们创建一些时髦的html。CKEditor非常易于安装和使用。您可以像处理当前HTML一样将其输出保存到数据库中。

确定:

INSERT INTO tbl (html_text) values ('<h1>Hello, world.</h1>')
插入tbl(html_文本)值('Hello,world')

(当然,你应该使用参数化查询。)

如果他们以HTML的形式输入数据,你可以将其作为varchar(max)存储在数据库中,只要数据出来时被解析为HTML(即在网页中),你就可以了。否则,如果将其解析为纯文本,您将看到所有HTML标记。

您可以使用任意数量的富文本编辑器来提供将格式应用于文本的功能。然后可以将其保存在数据库中,就像保存纯文本一样

只需确保对输出进行HTML编码


我更喜欢我的富文本编辑器。非常健壮、成熟且跨平台。

虽然您可以将HTML放入数据库并直接显示,而无需使用将文本输出到HTML中的常规编码步骤,但我不建议您这样做,除非您完全信任将输入内容的每个人

我的意思是信任不仅仅是安全性(因为任何可以将HTML插入页面的人都可以通过脚本注入来接管其他用户对站点的使用),还有能力:只需一个未关闭的
或其他类似的标记错误,就可以完全控制页面布局

一种可能是使用强大的HTML整洁器和“净化器”来审查传入的HTML提交,以便只允许已知的安全标记。这是一项棘手的工作,所以请使用现有的库来完成。或者,也许更实用,您可以提供自己的简单标记语言。例如
*斜体*,**粗体**,http:​//www.example.com/
->斜体,粗体

有很多这样的小标记语言。我现在在这个框中输入的堆栈溢出使用的一个名为


(Markdown不是我最喜欢的,主要是因为在通常的实现中,它还允许在标记本身中包含HTML内容,这有点难看,当人们试图谈论标记而不把它们放在引号中时,会产生问题。但这是一个流行的例子;还有很多:bbcode、reST、Textile等。)

实际上有几十种不同的编辑器可用。CKEditor似乎做得很好。CK为+1。它是唯一一个能够有效保护前端用户免受Word HTML攻击的编辑器。如果你从来没有卷入过这种混乱,它可以通过溢出文本字段破坏CMS,并通过无意义的额外开销降低速度。同意,未清理的文字内容将破坏你的网站设计!