Php 当使用ajax时,isset($#u POST[';';])不适用于数据变量

Php 当使用ajax时,isset($#u POST[';';])不适用于数据变量,php,jquery,ajax,Php,Jquery,Ajax,我有commentdb.php文件,其中创建了类的按钮,如btn,并将script.js文件链接到该文件 还有另一个db.php文件,其中使用了isset($\u POST['key']) script.js: $(document).ready(function(){ $('.like-btn').click(function(){ var post_id = $(this).data('id'); alert(post_id); $clicked_btn

我有commentdb.php文件,其中创建了类
的按钮,如btn
,并将script.js文件链接到该文件 还有另一个db.php文件,其中使用了
isset($\u POST['key'])

script.js:

$(document).ready(function(){

$('.like-btn').click(function(){

    var post_id = $(this).data('id');
        alert(post_id);
    $clicked_btn = $(this);

    var act = "";

    if ($clicked_btn.hasClass('fa-thumbs-o-up')) {
        act = 'like';
    } else if ($clicked_btn.hasClass('fa-thumbs-up')) {
        act = 'unlike';
    }
    // console.log(act);
    $.ajax({
        type: "POST",
        url: 'db.php',
        data: {
            'key': 1,
            'action': act, 
            'post_id': post_id
        },
        success: function(response) {
            console.log(1);
            // res = JSON.parse(data);
            alert(act);
            if (act == 'like') {
                $clicked_btn.removeClass('fa-thumbs-o-up');
                $clicked_btn.addClass('fa-thumbs-up');
            } else if (act == 'unlike') {
                $clicked_btn.removeClass('fa-thumbs-up');
                $clicked_btn.addClass('fa-thumbs-o-up');
            }
            // alert(res.likes);
    }

    });
});
});
db.php:

<?php  
session_start();
// $email = "$_SESSION['email']";

$conn = mysqli_connect('localhost','root','','commentsection');
echo "working?";
// $user_id = 1;

if (!$conn) {
    die("Connection failed: ".mysqli_connect_error());
}




if (isset($_POST['key'])) {
    echo "isset working?";
    $post_id = $_POST['post_id'];
    $action = $_POST['action'];

    switch ($action) {
        case 'like':
            console.log($email);
            $sql2 = "INSERT INTO rating (uid, rating, user_id) VALUES ($post_id, 'like', $email) ON DUPLICATE KEY UPDATE rating='like'";
            break;
        case 'dislike':
            $sql2 = "INSERT INTO rating (uid, rating, user_id) VALUES ($post_id, 'dislike', $email ON DUPLICATE KEY UPDATE rating='dislike'";
            break;
        case 'unlike':
            $sql2 = "DELETE FROM rating WHERE uid=$post_id AND r_uid=0";
            break;
        case 'undislike':
            $sql2 = "DELETE FROM rating WHERE uid=$post_id AND r_uid=0";
            break;

        default:
            break;
    }


    mysqli_query($conn, $sql2);

    echo getRating($post_id);
    // exit(0);


}

?>

这个代码会发生什么?这对SQL注入是开放的,查询中的
$email
用法似乎无效(需要引用字符串)。你也可以大大简化这一点,
case'distinch':case'undislike':
并使
评级
成为一个三元变量,然后只需要一次插入。我在$email中没有问题,它在我登录后显示我的id;关于这个案例,我将在以后对其进行更改,但是函数根本没有执行。PHP代码中混合了JS
console.log()
,这可能会导致运行时错误。如果您没有启用PHP错误报告,这将显示为它没有完全执行。始终在开发和测试代码时,报告错误(E_ALL);ini设置(“显示错误”,1)位于代码顶部。我没有将js与PHPBRO混合使用,只是使用console.log来确保它是否正在运行。我添加了你提供的两行代码,还通过检查查看了控制台,没有发现任何错误。转储$\u POST变量,看看里面到底有什么…print\r($\u POST)。。。