当我通过PHP在表单中插入链接时,我的数据库会在链接之前添加反斜杠。我用tinyMCE。
示例,这是它在数据库中的外观:
(14, 'MULTIMÉDIA', 'multimdia', '<h2><strong>RISING HARMONY </strong></h2>\r\n<p><strong>ITT A ZENE VILÁGA URALKODIK.</strong></p>\r\n<p><strong>KEDVENCÉT ÖN IS MEGOSZTHATJA </strong><strong>AZ ALÁBBI CÍMEN:</strong></p>\r\n<p><strong><a href=\\"\\\\"\\\\\\\\"\\\\\\\\\\\\\\\\"mailto:personicum@gmail.com\\\\\\\\\\\\\\\\"\\\\\\\\"\\\\"\\">personicum@gmail.com</a> </strong></p>', '<p><iframe src=\\"\\\\"\\\\\\\\"\\\\\\\\\\\\\\\\"/www.youtube.com/embed/1ov6USLXwGA\\\\\\\\\\\\\\\\"\\\\\\\\"\\\\"\\" width=\\"\\\\"\\\\\\\\"\\\\\\\\\\\\\\\\"270\\\\\\\\\\\\\\\\"\\\\\\\\"\\\\"\\" height=\\"\\\\"\\\\\\\\"\\\\\\\\\\\\\\\\"152\\\\\\\\\\\\\\\\"\\\\\\\\"\\\\"\\" frameborder=\\"\\\\"\\\\\\\\"\\\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\\\"\\\\\\\\"\\\\"\\" allowfullscreen=\\"allowfullscreen\\"></iframe> <iframe src=\\"\\\\"\\\\\\\\"\\\\\\\\\\\\\\\\"/www.youtube.com/embed/bnv6dPQ5f88\\\\\\\\\\\\\\\\"\\\\\\\\"\\\\"\\" width=\\"\\\\"\\\\\\\\"\\\\\\\\\\\\\\\\"263\\\\\\\\\\\\\\\\"\\\\\\\\"\\\\"\\" height=\\"\\\\"\\\\\\\\"\\\\\\\\\\\\\\\\"150\\\\\\\\\\\\\\\\"\\\\\\\\"\\\\"\\" frameborder=\\"\\\\"\\\\\\\\"\\\\\\\\\\\\\\\\"0\\\\\\\\\\\\\\\\"\\\\\\\\"\\\\"\\" allowfullscreen=\\"allowfullscreen\\"> )
这应该是youtube视频,通过tinyMCE插入。它对图像和任何类型的链接都做同样的事情。所以,我的问题是,为什么会出现这些事情?
这是表格:
CREATE TABLE IF NOT EXISTS `blog_posts_seo` (
`postID` int(11) unsigned NOT NULL AUTO_INCREMENT,
`postTitle` varchar(255) DEFAULT NULL,
`postSlug` varchar(255) DEFAULT NULL,
`postDesc` text,
`postCont` text,
`postDate` datetime DEFAULT NULL,
PRIMARY KEY (`postID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=25 ;
使用另一个表它运行正常,所以这意味着问题不是我的PHP,但如果需要,我会在这里复制它。这个问题是由什么引起的?在网站上有404错误而不是视频。
如果我通过MySQL手动插入它们,那么一切都很好,但如果我通过表单插入它看起来像这样。此外,如果我使用相同的PHP与另一个数据库,它工作正常。这是一个悖论,我没有经验。我无法找到问题。
此外,在本地它工作正常,它显示如下:
<p><iframe src="//www.youtube.com/embed/Lcu8SdcsYnY" width="425" height="350"></iframe></p>
提前谢谢你。
答案 0 :(得分:0)
您在输入上多次运行addslashes()
或其他转义函数。你可能也有魔术引号。您应该将字符串保持为raw,并在插入数据库之前将其转义。最好使用PDO的绑定参数。