如何解决ajax jquery在onclick事件jquery中将字符串作为参数传递
echo "<button onClick='follow(".$name.");'></button>";
我需要在follow(user)函数onClick事件jquery中将字符串作为参数传递。但是它被称为一种价值。
我尝试了所有事情,但在php中,对我来说似乎有点大不了了。是否还有其他方法可以从php变量中以字符串形式获得预期结果。
解决方法
引号已关闭,如果要传递字符串,则需要在函数调用中将引号括起来。
对于html属性中的标准
String s = arrayList.get(i);
String[] words = s.split(" ");
# Now you can iterate over the words
for ( var word : words)
// Do something
,有多种实现方法:
"
单引号
echo '<button onClick="follow(\''.$name.'\')"></button>';
echo "<button onClick=\"follow('".$name."')\"></button>";
echo "<button onClick=\"follow('$name')\"></button>";
但这是假设您的用户很好,一个狡猾的用户可能会在其中创建带有echo '<button onClick=\'follow("'.$name.'")\'></button>';
echo "<button onClick='follow(\"".$name."\")'></button>";
echo "<button onClick='follow(\"$name\")'></button>";
的用户名,然后从发布到存储和检索它,很可能会以新行的形式呈现出来:
\n
呈现以下内容会导致页面中断:
<?php
$name = "Foo\nBar";
echo '<button onClick="follow(\''.$name.'\')"></button>';
或更糟糕的用户名,例如:
<button onClick="follow('Foo
Bar')"></button>
哪个将呈现存储的XSS:
$name = "Foo')\"></button>\n<button onClick=\"window.location.href = ('http://example.com";
因此,直接传入它的更好解决方案是使用<button onClick="follow('Foo')"></button>
<button onClick="window.location.href = ('http://example.com')"></button>
和htmlentities
对其进行转义,以使json_encode
不会由html呈现。
\n
哪个会呈现给:
echo '<button onClick=\'follow('.json_encode(htmlentities($name,ENT_QUOTES,'UTF-8')).')\'></button>';
尽管在允许这种攻击之前,您应该在创建时验证用户名。
,您在javascript中回显了一个php变量,而没有添加引号,因此以javascript变量名而不是字符串结尾。
只需添加这样的转义引号即可:
echo "<button onClick='follow(\"".$name."\");'></button>";
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。