PHP脚本没有从web主机服务器上的url中挑选数据



我有一些PHP脚本,这是从其他网站获得json数据。它通过GET方法(email)检索URL变量,并在此变量的基础上从用户数据库获得唯一电影代码的结果。然后将这些代码逐个放到omdbi。com web api中以json对象形式获取结果并放入用于收集json对象的数组中最后返回json

但是当我从我的本地主机服务器这样做,它的工作和返回结果作为json像. .

{
    "movieRecord":[
        {
            "Title":"Frozen",
            "Year":"2013",
            "Rated":"PG",
            "Released":"27 Nov 2013",
            "Runtime":"102 min",
            "Genre":"Animation, Adventure, Comedy",
            "Director":"Chris Buck, Jennifer Lee",
            "Writer":"Jennifer Lee (screenplay)",
        }
    ]
}

但是当我从webhost服务器执行此操作时,它返回null给我

{
    "movieRecord":[
        null,
        null,
        null
    ]
}

我能做什么?

我代码:

  <?php
    include "conn3.php";

    $get_user_email=@$_GET['email'];

    $query2 = "SELECT id from tbl_login where email='$get_user_email';";
    $hasil2 = mysql_query($query2)or die(mysql_error());
    while ($data2=mysql_fetch_array($hasil2)){
        $id= $data2['id'];
    }
    $query = "SELECT movie from usermovieassoc where userr='$id';";

    $hasil = mysql_query($query)or die(mysql_error());
    if (mysql_num_rows($hasil) > 0) {
       $response = array();
    $response["movieRecord"] = array();
    while ($data = mysql_fetch_array($hasil))
    {
       $h['movie'] = $data['movie'] ;
       $get_id=$h['movie'];
       $url = file_get_contents("http://www.omdbapi.com/?i=$get_id&plot=full&r=json");
       $arr = json_decode($url,true);
       json_encode($arr)   
       array_push($response["movieRecord"], $arr);
    }
        echo json_encode($response);
    }
    else {
        echo  json_encode($response);
    }
    ?>

1。乘坐@

如果没有var,则会抑制错误:
 $get_user_email= isset($_GET['email'])?@$_GET['email']:false;
 if(!$get_user_email)
    die('not all get params are passed');

2。SQl注入。不要马上使用外部数据,特别是你在数据库查询中使用它。您应该始终使来自GET或POST的$vars安全。所以至少:

$query2 = 'SELECT `id` from `tbl_login` where email=.'mysql_real_escape_string($get_user_email); 

3。如果得到意想不到的结果,请使用print_r或var_dump调试所有变量、结果和查询:

echo 'get_user_email:'.$get_user_email.'<br/>';
echo 'query 1 ';
print_r($query);
echo 'for each loop data';
print_r($data);
echo 'query 2 ';
print_r($query);

这将帮助您准确地找到为什么您得到错误的结果或当脚本出错/意外的方式

最新更新