Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php json编码解析错误_Php_Json_Pdo - Fatal编程技术网

php json编码解析错误

php json编码解析错误,php,json,pdo,Php,Json,Pdo,此php文件验证用户通过电子邮件发送的id和代码。如果id和代码匹配,将显示确认消息,否则将显示错误消息。脚本被转换为json,在解析json转换的php时返回错误 最后但并非最不重要的一点是,我在php的开头创建了一个空数组,用于处理成功消息或错误消息,最后将名为result的数组编码为json 这是错误:Uncaught语法错误:JSON输入意外结束 <?php require_once '../../dbconfig.php'; $result=[]; if(empty($_PO

此php文件验证用户通过电子邮件发送的id和代码。如果id和代码匹配,将显示确认消息,否则将显示错误消息。脚本被转换为json,在解析json转换的php时返回错误

最后但并非最不重要的一点是,我在php的开头创建了一个空数组,用于处理成功消息或错误消息,最后将名为result的数组编码为json

这是错误:
Uncaught语法错误:JSON输入意外结束

<?php
require_once '../../dbconfig.php';

$result=[];

if(empty($_POST['verify_id']) && empty($_POST['code']))
{
 $result['success']=false;
 $result['error_msg']="empty codes";
}

if(isset($_POST['verify_id']) && isset($_POST['code']))
{
 $id = base64_decode($_POST['verify_id']);
 $code = $_POST['code'];

 $statusY = "Y";
 $statusN = "N";

 $stmt = $db_con->prepare("SELECT user_id,userStatus FROM tbl_users WHERE user_id=:uID AND tokenCode=:code LIMIT 1");
 $stmt->execute(array(":uID"=>$id,":code"=>$code));
 $row=$stmt->fetch(PDO::FETCH_ASSOC);
 if($stmt->rowCount() > 0)
 {
  $result["success"]=true;
  if($row['userStatus']==$statusN)
  {
   $stmt = $db_con->prepare("UPDATE tbl_users SET userStatus=:status WHERE user_id=:uID");
   $stmt->bindparam(":status",$statusY);
   $stmt->bindparam(":uID",$id);
   $stmt->execute(); 
   $msg = "ok ";
    $result['success_msg']=$msg;
  }
  else
  {
     $result['success']=true;
   $msg = "active ";
    $result['success_msg']=$msg;
  }
 }
 else
 {
     $result['success']=false;
  $msg = "account not found ";
      $result['id']=$id;
    $result['error_msg']=$msg;  
 } 
}
echo json_encode($result);
?>

/*获取数据以激活帐户*/
var verifyResult=[];
var success_msg=document.getElementById(“容器”);
window.onload=function(){
//sendDataToVerificationPage();
var url=window.location.href;
var myId=url.slice(77,79);
var myCode=url.slice(87);
sendDataToVerificationPage(myId,myCode);
};
/*将数据发送到验证页面*/
函数sendDataToVerificationPage(myId,myCode){
var oOutput=document.querySelectorAll(“div”),
oData=“verify_id=“+myId+”&code=“+myCode;
var oReq=新的XMLHttpRequest();
open(“POST”,“verify.php”,true);
oReq.onload=函数(){
if(oReq.readyState==4&&oReq.status==200){
接收数据(oReq);
}否则{
oOutput.innerHTML=“尝试上载文件时出错”+oReq.status+”;
}
};
oReq.setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
oReq.send(oData);
}
/*处理接收到的数据的回调函数*/
函数接收数据(oReq){
console.log(oReq.responseText)
verifyResult=JSON.parse(oReq.responseText);
控制台日志(验证结果);
如果(!verifyResult.success){
$(“#容器”).fadeIn(1000,function(){
$(“#容器”).html(“”+verifyResult.error_msg+“”);
});
}否则{
success\u msg.textContent=verifyResult.success\u msg;
}

}
我已经解决了这个问题,用纯文本替换了成功和错误消息,事实上我无法以我尝试的方式编码到json htlm标记

$result['success']=true;
$msg=“确定”;
$result['success\u msg']=$msg;
$result['success']=false;
$msg=“账户已激活”;
$result['error_msg']=$msg;

echo json_编码($result)似乎在解码JSON字符串时出错。你能把那部分也展示一下吗?我假设它是javascript。@Tchoupi您的意思是我也需要向您提供js部分吗?您需要在使用数据之前解析数据
JSON.parse(您的\u php\u encoded\u var)
@Riccardo是的,你说得对,很抱歉。@AmrAly别担心,伙计,我特意编辑了这个问题,顺便说一句,谢谢你浪费时间试图找到我应该找到的错误