gpt4 book ai didi

javascript - 我如何使用 PHP 对包含引号的字符串进行编码以使其对于内联 'onclick' 是安全的?

转载 作者:行者123 更新时间:2023-11-30 11:38:09 24 4
gpt4 key购买 nike

我在数据库中有一个可能包含单引号或双引号的变量。当我从数据库中检索变量时,它是用 PHP 写入内联“onclick”处理程序中的:

echo '<li><a onClick="a4e.duplicate_assignment('.$this_assignment['id'].',\''.htmlspecialchars($this_assignment['title'],ENT_QUOTES).'\',\'/assignments/'.$type.'/\');" href="javascript:void(0);">';echo '<i class="fa fa-copy"></i> Duplicate assignment</a></li>';

这会在页面源代码中生成如下所示的 HTML:

<li><a onClick="a4e.duplicate_assignment(92,'ELLLO - &#039;If I had a million dollars&#039;','/assignments/cloze/');" href="javascript:void(0);"><i class="fa fa-copy"></i> Duplicate assignment</a></li>

但是,单击该链接会在控制台中产生以下错误:

Uncaught SyntaxError: missing ) after argument list

我认为使用 PHP 函数“htmlspecialchars”可以缓解这个问题,但它似乎不起作用。

非常感谢任何帮助。

附言在这种情况下不可能使用 Javascript“onclick”处理程序——它必须是内联 HTML。此外,也不可能禁止在变量值中使用引号。

最佳答案

尝试使用函数:

addslashes()

编辑:此方法将处理字符串本身中的引号,但如果您需要为 HTML 插入保留引号,则可能不适合。仔细阅读文档。

http://php.net/manual/en/function.addslashes.php

关于javascript - 我如何使用 PHP 对包含引号的字符串进行编码以使其对于内联 'onclick' 是安全的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43631023/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com