Как исправить ошибку obj is not defined?

Выявлены следующие ошибки:

profile:1167 Uncaught ReferenceError: obj is not defined
    at response (profile:1167:5)
    at XMLHttpRequest.<anonymous> (profile:1148:5)


1167:if(typeof obj.action != 'undefined'){
1148: response(ajax.responseText,element);

Вкратце о функции:

При нажатии на ссылку должен обновиться счётчик лайков без перезагрузки страницы

post.php

<?php 
            $DB = new Database();
            $likes = "";

            $likes = ($ROW['likes'] > 0) ?  $ROW['likes'] : "" ;

        ?>
        <a onclick="like_post(event)" href="<?=ROOT?>like/post/<?php echo $ROW['postid'] ?>"><img src="/icons/like.png" style="height:25px"><?php echo $likes ?></a> .


<script type="text/javascript">

    function ajax_send(data,element){


        var ajax = new XMLHttpRequest();

        ajax.addEventListener('readystatechange', function(){

            if(ajax.readyState == 4 && ajax.status == 200){

                response(ajax.responseText,element);
            }
            
        });

        data = JSON.stringify(data);

        ajax.open("post","<?=ROOT?>ajax.php",true);
        ajax.send(data);

    }

    function response(result,element){
        

        if(result != ""){
            


            if(typeof obj.action != 'undefined'){

                if(obj.action == 'like_post'){

                    var likes = "";

                    if(typeof obj.likes != 'undefined'){
                        likes = (parseInt(obj.likes) > 0) ? "Like(" +obj.likes+ ")" : "Like" ;
                        element.innerHTML = likes;
                    }

                    if(typeof obj.info != 'undefined'){
                        var info_element = document.getElementById(obj.id);
                    
                        info_element.innerHTML = obj.info;
                    }
                }
                }
            }
        }
        function like_post(e){
        
        
            e.preventDefault();
            var link = e.target.href;

            var data = {};
            data.link = link;
            data.action = "like_post";
            ajax_send(data,e.target);
            
        }
</script>

function response не может определить obj

ajax.php

<?php 

    include("classes/autoload.php");
    
    $data = file_get_contents("php://input");
    if($data != ""){
        $data = json_decode($data);
    }
    
    if(isset($data->action) && $data->action == "like_post")
    {
        include "/ajax/like.ajax.php";
    }

Если data->action == "like_post" то выполняется like.ajax.php, где и находится сам счётчик лайков

like.ajax.php

<?php 

include("classes/autoload.php");

$URL = split_url_from_string($data->link);

$_GET['type'] = isset($URL[5]) ? $URL[5] : null;
$_GET['id'] = isset($URL[6]) ? $URL[6] : null;


$_SESSION['userid'] = isset($_SESSION['userid']) ? $_SESSION['userid'] : 0;
$login = new Login;
$user_data = $login->check_login($_SESSION['userid'],false);

//check if not logged in
if($_SESSION['userid'] == 0){

        $obj = (object)[];
        $obj->action = "like_post";
        
        echo json_encode($obj);
        die;
}

/*
 $query_string = explode("?", $data->link);
 $query_string = end($query_string);

$str = explode("&", $query_string);

foreach ($str as $value) {
    # code...
    $value = explode("=", $value);
    $_GET[$value[0]] = $value[1];
}
*/

$_GET['id'] = addslashes($_GET['id']);
$_GET['type'] = addslashes($_GET['type']);

    if(isset($_GET['type']) && isset($_GET['id'])){
        
        $post = new Post();

        if(is_numeric($_GET['id'])){

            $allowed[] = 'post';
            $allowed[] = 'user';
            $allowed[] = 'comment';

            if(in_array($_GET['type'], $allowed)){

                $post = new Post();
                $user_class = new User();
                $post->like_post($_GET['id'],$_GET['type'],$_SESSION['userid']);
 
                if($_GET['type'] == "user"){
                    $user_class->follow_user($_GET['id'],$_GET['type'],$_SESSION['userid']);
                     
                }
 
            }

        }

        //read likes
        $likes = $post->get_likes($_GET['id'],$_GET['type']);
        

        //create info
        ///////////////// 
        $likes = array();
        $info = "";

                $i_liked = false;
                if(isset($_SESSION['userid'])){

                    $DB = new Database();

                    $sql = "select likes from likes where type='$type' && contentid = '$id' limit 1";
                    $result = $DB->read($sql);
                    if(is_array($result)){

                        $likes = json_decode($result[0]['likes'],true);

                        $user_ids = array_column($likes, "userid");
         
                        if(in_array($_SESSION['userid'], $user_ids)){
                            $i_liked = true;
                        }
                    }

                }

                $like_count = count($likes);

                if($like_count > 0){

                    $info .= "<a id='info_$_GET[postid]' href='likes.php?type=post&id=$_GET[postid]'>";
                    $info .= "<br/>";

                    if($like_count == 1){

                        if($i_liked){
                            $info .= "<div style='text-align:left;'>You liked this post </div>";
                        }else{
                            $info .= "<div style='text-align:left;'> 1 person liked this post </div>";
                        }
                    }else{

                        if($i_liked){

                            $text = "others";
                            if($like_count - 1 == 1){
                                $text = "other";
                            }
                            $info .= "<div style='text-align:left;'> You and " . ($like_count - 1) . " $text liked this post </div>";
                        }else{
                            $info .= "<div style='text-align:left;'>" . $like_count . " other liked this post </div>";
                        }
                    }   
                }

             /////////////////////////
        $obj = (object)[];
        $obj->likes = count($likes);
        $obj->action = "like_post";
        $obj->info = $info;
        $obj->id = "info_" . $_GET['id'];
        
        echo json_encode($obj);
    }

Возможно ошибка может находиться и здесь

$obj = (object)[];
            $obj->likes = count($likes);
            $obj->action = "like_post";
            $obj->info = $info;
            $obj->id = "info_" . $_GET['id'];
            
            echo json_encode($obj);

Ответы (0 шт):