0

サイトのスクリプトで問題が発生しています。友達を追加する部分が好きだったので、チュートリアルの一部に従いましたが、サイト全体を変更したくありませんでした。私は彼のコードを使用しましたが、明らかに私のサイトで動作するように変更する必要がありました。アイデアは、他の人のプロフィールにアクセスして、クリックしてブロックするか、友達リクエストを送信できるということです。

問題がどこにあるのかわかりません。私はphpに問題があることはわかりませんが、私は専門家ではないので何かが欠けている可能性があります.javascript/ajaxの専門家ではないので、何かが壊れていると思います

ここに私のコードがあります。

    //Script on the profile.php page

    function friendToggle(type,user,elem){
var conf = confirm("Press OK to confirm the '"+type+"' action for user <?php echo $username; ?>.");
if(conf != true){
    return false;
}
_(elem).innerHTML = 'please wait ...';
var ajax = ajaxObj("POST", "friend_system.php");
ajax.onreadystatechange = function() {
    if(ajaxReturn(ajax) == true) {
        if(ajax.responseText == "friend_request_sent"){
            _(elem).innerHTML = 'OK Friend Request Sent';
        } else if(ajax.responseText == "unfriend_ok"){
            _(elem).innerHTML = '<button onclick="friendToggle(\'friend\',\'<?php echo $id; ?>\',\'friendBtn\')">Request As Friend</button>';
        } else {
            alert(ajax.responseText);
            _(elem).innerHTML = 'Try again later';
        }
    }
}
ajax.send("type="+type+"&id="+id);
    }


    //php script for the friend_system.php page

    <?php
    include_once("scripts/checkuserlog.php");

     ?>
   <?php
   if (isset($_POST['type']) && isset($_POST['id'])){
$id = preg_replace('#[^a-z0-9]#i', '', $_POST['id']);
$sql = "SELECT COUNT(id) FROM myMembers WHERE id='$id' AND activated='1' LIMIT 1";
$query = mysqli_query($db_conx, $sql);
$exist_count = mysqli_fetch_row($query);
if($exist_count[0] < 1){
    mysqli_close($db_conx);
    echo "$username does not exist.";
    exit();
}
if($_POST['type'] == "friend"){
    $sql = "SELECT COUNT(id) FROM blockedusers WHERE blocker='$id' AND blockee='$logOptions_id' LIMIT 1";
    $query = mysqli_query($db_conx, $sql);
    $blockcount1 = mysqli_fetch_row($query);
    $sql = "SELECT COUNT(id) FROM blockedusers WHERE blocker='$logOptions_id' AND blockee='$id' LIMIT 1";
    $query = mysqli_query($db_conx, $sql);
    $blockcount2 = mysqli_fetch_row($query);
    $sql = "SELECT COUNT(id) FROM friends WHERE user1='$logOptions_id' AND user2='$id' AND accepted='1' LIMIT 1";
    $query = mysqli_query($db_conx, $sql);
    $row_count1 = mysqli_fetch_row($query);
    $sql = "SELECT COUNT(id) FROM friends WHERE user1='$id' AND user2='$logOptions_id' AND accepted='1' LIMIT 1";
    $query = mysqli_query($db_conx, $sql);
    $row_count2 = mysqli_fetch_row($query);
    $sql = "SELECT COUNT(id) FROM friends WHERE user1='$logOptions_id' AND user2='$id' AND accepted='0' LIMIT 1";
    $query = mysqli_query($db_conx, $sql);
    $row_count3 = mysqli_fetch_row($query);
    $sql = "SELECT COUNT(id) FROM friends WHERE user1='$id' AND user2='$logOptions_id' AND accepted='0' LIMIT 1";
    $query = mysqli_query($db_conx, $sql);
    $row_count4 = mysqli_fetch_row($query);
    if($blockcount1[0] > 0){
        mysqli_close($db_conx);
        echo "$user has you blocked, we cannot proceed.";
        exit();
    } else if($blockcount2[0] > 0){
        mysqli_close($db_conx);
        echo "You must first unblock $user in order to friend with them.";
        exit();
    } else if ($row_count1[0] > 0 || $row_count2[0] > 0) {
        mysqli_close($db_conx);
        echo "You are already friends with $user.";
        exit();
    } else if ($row_count3[0] > 0) {
        mysqli_close($db_conx);
        echo "You have a pending friend request already sent to $user.";
        exit();
    } else if ($row_count4[0] > 0) {
        mysqli_close($db_conx);
        echo "$user has requested to friend with you first. Check your friend requests.";
        exit();
    } else {
        $sql = "INSERT INTO friends(user1, user2, datemade) VALUES('$logOptions_id','$id',now())";
        $query = mysqli_query($db_conx, $sql);
        mysqli_close($db_conx);
        echo "friend_request_sent";
        exit();
    }
} else if($_POST['type'] == "unfriend"){
    $sql = "SELECT COUNT(id) FROM friends WHERE user1='$logOptions_id' AND user2='$id' AND accepted='1' LIMIT 1";
    $query = mysqli_query($db_conx, $sql);
    $row_count1 = mysqli_fetch_row($query);
    $sql = "SELECT COUNT(id) FROM friends WHERE user1='$id' AND user2='$logOptions_id' AND accepted='1' LIMIT 1";
    $query = mysqli_query($db_conx, $sql);
    $row_count2 = mysqli_fetch_row($query);
    if ($row_count1[0] > 0) {
        $sql = "DELETE FROM friends WHERE user1='$logOptions_id' AND user2='$id' AND accepted='1' LIMIT 1";
        $query = mysqli_query($db_conx, $sql);
        mysqli_close($db_conx);
        echo "unfriend_ok";
        exit();
    } else if ($row_count2[0] > 0) {
        $sql = "DELETE FROM friends WHERE user1='$id' AND user2='$logOptions_id' AND accepted='1' LIMIT 1";
        $query = mysqli_query($db_conx, $sql);
        mysqli_close($db_conx);
        echo "unfriend_ok";
        exit();
    } else {
        mysqli_close($db_conx);
        echo "No friendship could be found between your account and $user, therefore we cannot unfriend you.";
        exit();
    }
}
   }
   ?>

私は数日間それを見てきましたが、木には木が見えなくなってきています。

悪魔としてのリクエストボタンをクリックすると、ダイアログボックスが正常に表示され、[OK]をクリックすると、ボタンが「お待ちください...」に置き換えられますが、そこで停止します。私はチェックしましたが、データベースには何も追加されていません。

あなたが提供できるどんな助けも非常に高く評価されます.

ありがとう

4

1 に答える 1