【问题标题】:why pdo don't save sign of + and & into database?为什么 pdo 不将 + 和 & 的符号保存到数据库中?
【发布时间】:2012-08-01 15:08:33
【问题描述】:

为什么当我在 textarea 中输入“+-1-23$%^&sdfsdf/>

代码:

function postingMsg (){
        $('.error').hide();
    var messageposting2= $("textarea#messageposting").val();
        var dataString = 'messageposting2='+ messageposting2;
        $.ajax({
             type: "POST",
             url: "note-send.php",
             data: dataString,
             success: function(msg) {
         msg = parseFloat(msg)      
             }
        });
        return false;   
}

if ((isset($_POST['messageposting2'])) && (strlen($_POST['messageposting2']) > 0)) {
    $messageposting3 = $_POST['messageposting2'];   

    $sql = "UPDATE users 
            SET my_note=?
            WHERE user_id=?";
    $q = $conn->prepare($sql);
    $q->execute(array($messageposting3, $_SESSION['user_id']));

    echo "1";
} else {echo "0";}

【问题讨论】:

  • $messageposting3 的值是多少?您提到了您输入的内容,但没有提及脚本收到的内容。
  • 当然是"+-1-23$%^&sdfsdf/>
  • “当然”,如“DUH,这就是我执行变量的echo 时所说的”或“我还没有实际打印它,所以我假设这就是它必须是,因为那是我输入的“?

标签: php ajax pdo


【解决方案1】:

它与 PDO 或您的数据库无关。在通过 Ajax 发送之前,您必须对字符串进行 URL 编码。

var dataString = 'messageposting2='+ encodeURIComponent(messageposting2);

【讨论】:

  • 哇。我以前从来不知道这件事。向你学习新事物。谢谢。
猜你喜欢
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 2016-05-07
  • 2012-07-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多