【问题标题】:Passing string to javascript with a PDO MySQL query使用 PDO MySQL 查询将字符串传递给 javascript
【发布时间】:2015-04-20 00:11:22
【问题描述】:

我有一个包含“banned_ip”和“原因”列的表,我正在尝试显示特定于被禁止用户的错误消息。出于某种原因,显示 $row['reason'] 似乎存在问题。有任何想法吗?

PHP:

$stmt = $conn->prepare('SELECT * FROM blackList WHERE banned_ip = :ip');
$stmt->execute(array('ip' => $_SERVER['REMOTE_ADDR']));

foreach ($stmt as $row) {
    echo "<script language='javascript'> displayBanError('" . $row['reason'] . "'); </script>";
}

JS:

function displayBanError(reason) {
    document.getElementById('error_field').innerHTML = "<p>Error: This IP has been blacklisted.<br>Reason: " + reason + "</p>";
}

【问题讨论】:

  • 原因是否显示在 HTML 中?在javascript标签中?
  • 我的第一个猜测是原因包含需要转义的'

标签: javascript php mysql string pdo


【解决方案1】:

将纯 PHP 与 JavaScript 混合可能会很糟糕,因为所有这些引号和其他字符都需要转义。尝试传递 PHP -> JS 字符串 base64-encoded in PHP,在 JS 中有 functions to decode it 回到可读形式。

...或试试Smarty

【讨论】:

    猜你喜欢
    • 2017-11-09
    • 2011-12-22
    • 2011-05-04
    • 2016-06-01
    • 2020-05-27
    • 2021-12-26
    • 2012-08-09
    • 2013-07-03
    • 2017-11-15
    相关资源
    最近更新 更多