2016-12-29 67 views
0

我不斷收到此JSON錯誤,我認爲它與html標記或任何其他與之衝突的標記有關。意外的<位於0的JSON中的標記

這是我的PHP代碼:

<?php 
    require_once("connection.php"); 

    class AddAdminUPController extends Connection{ 

     public function addAdminUP(){ 
      include "function.php"; 
      $username = cleanData($_POST['username']); 
      $password = cleanData($_POST['password']); 
      if (!empty($username)){ 
       if(!empty($password)){ 
        if(strlen($password) > 8){ 
         $select_query = "select * from sample_user where user_name = ?"; 
         $stmt = $this->db->prepare($select_query); 
         $stmt->bindParam(1,$username); 
         if($stmt->execute()){ 
          if($stmt->rowCount() <= 0){ 
           $password = password_hash($password,PASSWORD_BCRYPT,array('cost' => 12)); 
           $create_query = "insert into sample_user(user_name,password)values(?,?)"; 
           $stmt = $this->db->prepare($create_query); 
           $stmt->bindParam(1,$username); 
           $stmt->bindParam(2,$password); 
           if($stmt->execute()){ 
            echo "<script>". 
             "Materialize.toast('Created SuccessFully!', 5000, 'green')" 
             ."</script>"; 
            echo "<script>". 
             "$('#add_admin_up_form').hide();". 
             "$('#add_admin_up').hide();"; 
            ?> 

            $(".enrollment_title").html("<i class='material-icons'>fingerprint</i> Enroll Fingerprint"); 

            <?php 
            echo "</script>"; 

            include 'flexcode_sdk/include/global.php'; 
            include 'flexcode_sdk/include/function.php'; 
            if(isset($_GET['action']) && $_GET['action'] == 'add'){ 
             $lastID = $this->db->lastInsertId(); 
            ?> 

            <script type="text/javascript"> 

             $('title').html('User'); 
             function user_register(user_id, user_name) { 

              $('body').ajaxMask(); 

              regStats = 0; 
              regCt = -1; 
              try 
              { 
               timer_register.stop(); 
              } 
              catch(err) 
              { 
               console.log('Registration timer has been init'); 
              } 

              var limit = 4; 
              var ct = 1; 
              var timeout = 5000; 

              timer_register = $.timer(timeout, function() { 
               console.log("'"+user_name+"' registration checking..."); 
               user_checkregister(user_id,$("#user_finger_"+user_id).html()); 
               if (ct>=limit || regStats==1) 
               { 
                timer_register.stop(); 
                console.log("'"+user_name+"' registration checking end"); 
                if (ct>=limit && regStats==0) 
                { 
                 alert("'"+user_name+"' registration fail!"); 
                 $('body').ajaxMask({ stop: true }); 
                } 
                if (regStats==1) 
                { 
                 $("#user_finger_"+user_id).html(regCt); 
                 alert("'"+user_name+"' registration success!"); 
                 $('body').ajaxMask({ stop: true }); 
                 load('view_admin.php?action=add'); 
                } 
               } 
               ct++; 
              }); 
             } 

             function user_checkregister(user_id, current) { 
              $.ajax({ 
               url   : "view_admin.php?action=checkreg&user_id="+user_id+"&current="+current, 
               type  : "GET", 
               success  : function(data) 
                   { 
                    try 
                    { 
                     var res = jQuery.parseJSON(data); 
                     if (res.result) 
                     { 
                      regStats = 1; 
                      $.each(res, function(key, value){ 
                       if (key=='current') 
                       { 
                        regCt = value; 
                       } 
                      }); 
                     } 
                    } 
                    catch(err) 
                    { 
                     alert(err.message); 
                    } 
                   } 
              }); 
             } 

            </script> 

            <?php 

             $last_id_query = "select * from sample_user where user_id = ?"; 
             $stmt = $this->db->prepare($last_id_query); 
             $stmt->bindParam(1,$lastID); 
             if ($stmt->execute()){ 
              while($row = $stmt->fetch(PDO::FETCH_OBJ)){ 

               $url_register = 
               base64_encode($base_path."register.php?user_id=".$row->user_id); 
               echo "<br><a href='finspot:FingerspotReg;$url_register' onclick=\"user_register('".$row->user_id."','".$row->user_name."')\" class='fw_button general_button btn waves-effect waves-light'>Register Fingerprint</a>"; 
              } 
             } 
            } 
            elseif (isset ($_GET['action']) && $_GET['action'] == 'checkreg') { 

              $sql1  = "SELECT count(finger_id) as ct FROM sample_finger WHERE user_id=".$_GET['user_id']; 
              $result1 = mysql_query($sql1); 
              $data1  = mysql_fetch_array($result1); 
              if (intval($data1['ct']) > intval($_GET['current'])) { 
               $res['result'] = true; 
               $res['current'] = intval($data1['ct']); 
              } 
              else 
              { 
               $res['result'] = false; 
              } 
              echo json_encode($res); 
            } 
            else { echo "Parameter invalid..";} 
           } 
           else{ 
            echo "<script>". 
             "Materialize.toast('Query Failed!', 5000, 'red')" 
             ."</script>"; 
           } 
          } 
          else{ 
           echo "<script>". 
            "Materialize.toast('Username already exists!', 5000, 'red')" 
            ."</script>"; 
          } 
         } 
         else{ 
          echo "<script>". 
           "Materialize.toast('Query Failed!', 5000, 'red')" 
           ."</script>"; 
         } 
        } 
        else{ 
         echo "<script>". 
          "Materialize.toast('Password is too short!', 5000, 'red')" 
          ."</script>"; 
        } 
       } 
       else{ 
        echo "<script>". 
         "Materialize.toast('Password is empty!', 5000, 'red')" 
         ."</script>"; 
       } 
      } 
      else{ 
       echo "<script>". 
        "Materialize.toast('Username is empty!', 5000, 'red')" 
        ."</script>"; 
      } 

     } 
    } 
$add_admin_up_controller = new AddAdminUPController; 
echo $add_admin_up_controller->addAdminUP(); 

?> 

我需要修復這種錯誤的幫助。它使顯示:

SyntaxError: Unexpected token < in JSON at position 0 at JSON.parse() at Function.jQuery.parseJSON (jquery.js:8520) at Object.success (eval at (jquery.js:339), :55:90) at fire (jquery.js:3148) at Object.fireWith [as resolveWith] (jquery.js:3260) at done (jquery.js:9314) at XMLHttpRequest.callback (jquery.js:9718)

+0

表示您在嘗試解析字符串時沒有JSON。你有HTML,簡單'console.log()'會顯示你有。 – epascarello

+0

我綁定json_encode() –

+0

好,我將設法 –

回答

0

在你的Ajax調用把響應數據類型:「JSON」和PHP的一部分:

echo json_encode($res); 
exit; 

問候

+0

好吧,我會嘗試它。謝謝:) –

+0

當我寫數據類型:'json'在Ajax調用,它不工作... –

0

此錯誤是由於你的性反應是不是在json格式和您的ajax請求期待json響應。 您可以通過在您的ajax請求中使用dataType:'text/html'來更改響應頭。

這裏在行動。

function user_checkregister(user_id, current) { 
$.ajax({ 
    url   : "view_admin.php?action=checkreg&user_id="+user_id+"&current="+current, 
    type  : "GET", 
    dataType: 'text/html', 
    success  : function(data) 
        { 
         try 
         { 
          var res = jQuery.parseJSON(data); 
          if (res.result) 
          { 
           regStats = 1; 
           $.each(res, function(key, value){ 
            if (key=='current') 
            { 
             regCt = value; 
            } 
           }); 
          } 
         } 
         catch(err) 
         { 
          alert(err.message); 
         } 
        } 
}); 
} 
相關問題