【发布时间】:2017-07-14 16:34:13
【问题描述】:
我得到了以下代码,但没有发现错误。 当我执行它时,我总是得到“no_request”。
$username 等于 Reebal,$user 等于 Simon
Ajax/jQuery
$("#cancel_friend").click(function(e){
var user = "<?php echo $user_username; ?>";
var type = "cancel_friend"
$.ajax({
type: "POST",
url: "../system/friend_system.php",
data: {
user: user,
type: type
},
success: function(data, status){
if(data == "friend_request_canceled"){
$("#cancel_friend").css("display", "none");
}else{
$(".error_msg_container").html(data);
}
},
error: function(){
alert(data);
}
friend_system.php
}else if($_POST['type'] == "cancel_friend"){
$sql = "SELECT COUNT(id) friends WHERE user1 = '$username' AND user2 = '$user' AND accepted='0' LIMIT 1";
$result = mysqli_query($conn, $sql);
$request = mysqli_fetch_row($result);
if($request[0] > 0){
$sql = "DELETE FROM friends WHERE user1 = '$username' AND user2 = '$user' AND accepted='0' LIMIT 1";
$result = mysqli_query($conn, $sql);
mysqli_close($conn);
echo "friend_request_canceled";
exit();
}else{
echo "no_request";
exit();
}
希望你能帮助我。
【问题讨论】:
-
你在哪里设置
$username?你试过调试你的代码吗? -
$username 在另一个 php 文件中,我在其中检查当前登录的用户。是的,当我回显 $username 时,我得到 'Reebal'
-
您的代码容易受到SQL injection 攻击。您应该通过mysqli 或PDO 驱动程序使用带有绑定参数的预处理语句。 This post 有一些很好的例子。
-
好的,谢谢您的建议。