w3rtaertqwertqertqetg

w3rtaertqwertqertqetg

gshertqwrtqtqrtertgetaetgtraseftgretgert5rtetert

这样试试:

echo "<a href=\"http://google.com\" onclick=\"return confirm('Are you sure?');\">test</a>";

您在 onclick() 调用中使用了反引号而不是引号 -

echo '<a href="http://google.com" onclick="return confirm(\'Are you sure?\')">test</a>';

您应该转义任何未按预期工作的引号。

重申我在评论中所说的话,切勿使用 a[href] 执行任何修改或删除服务器数据的操作。举一个为什么不可以的极端例子,check out this article

We got a rather strongly worded message the other day from a Webmaster who was threatening legal action because our crawler deleted a bunch of files from his site. The news that our crawler is capable of deleting files was quite a surprise to us. Like other crawlers, ours just downloads HTML files, extracts links, and then visits those links. There is no “delete a file” logic in there. But if the crawler stumbles upon a link whose action is to delete a file, then visiting that link will indeed delete the file.

那么你可以做什么呢?

最基本的方法是使用 <form>。爬虫不提交表单,防御CSRF攻击也略胜一筹。在这种情况下,你会得到类似的东西:

<form action="delete.php" method="post"
  onSubmit="return confirm('Are you SURE you want to delete this?');">
    <input type="hidden" name="id" value="delete_me" />
    <button type="submit">Delete!</button>
</form>

然而,这真的不应该被认为是足够的。因此,让我向您展示我在自己的网站上实施的内容,以确认如果意外删除可能具有破坏性:

  1. 点击删除按钮。
  2. 收到一个弹出窗口,询问您是否要删除它。
  3. 向服务器发送AJAX请求,准备删除操作。服务器用一次性唯一密钥响应并将其保存在 $_SESSION.
  4. 给用户第二次确认,确保他们明白如果他们继续将要做什么。
  5. 如果用户仍想删除它,请使用在步骤 3 中收到的一次性唯一密钥发送最终删除请求。

这是一种非常安全可靠的方法,可以确保只有在用户真正想要删除时才能进行删除。由于其多步骤性质和使用一次性密钥,它不受 CSRF 的影响。

您可能希望从上面的列表中删除第 2 步 - 在我的特定情况下,有两个确认弹出窗口是防止意外事故的好主意,但实际上在大多数情况下您只需要一个,之后获得一次性密钥

具体的实施将由您决定,但操作起来非常简单 - 只需确保正确验证一次性密钥即可。