为什么会失败?当onerror=
不是变量而只是一个手动输入的字符串时,它起作用。
<?php
$error = "onerror='this.src = ''http://userlogos.org/files/logos/pek/stackoverflow2.png''';";
for ($i = 1; $i <= 10; $i++) {
echo "<img src='http://services.runescape.com/m=itemdb_rs/3716_obj_sprite.gif?id=" . $i . "' alt='ID " . $i . "' title='ID " . $i . "'" . $error . "/>";
}
?>
试试这个:
<?php
$error = " onerror='this.src ='"http://userlogos.org/files/logos/pek/stackoverflow2.png'";'";
for ($i = 1; $i <= 10; $i++) {
echo "<img src='http://services.runescape.com/m=itemdb_rs/3716_obj_sprite.gif?id=" . $i . "' alt='ID " . $i . "' title='ID " . $i . "'" . $error . "/>";
}
?>
引号太多。我会按如下方式重写它,然后您可以更轻松地发现错误:
<?php
$error = "onerror='this.src = ''http://userlogos.org/files/logos/pek/stackoverflow2.png''';";
for ($i = 1; $i <= 10; $i++) {
echo "<img src='http://services.runescape.com/m=itemdb_rs/3716_obj_sprite.gif?id=$i' alt='ID $i' title='ID $i' $error />";
}
?>
不确定这是否正是您想要的,但调试起来更容易。