国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Warum funktioniert meine PHP-API nicht mehr und gibt kein JSON mehr zurück?
P粉447785031
P粉447785031 2023-12-16 09:46:32
0
1
781

Vor ein paar Jahren habe ich für einige meiner mobilen Apps ein Backend (PHP, um einige JSON-Daten zu erhalten) erstellt. Ich habe diesen Code seitdem nicht mehr angerührt. Jetzt hat es schon vor Wochen aufgeh?rt zu funktionieren. Ich bin kein Backend-Entwickler, daher habe ich hier nicht viel Erfahrung, aber vor ein paar Jahren dachte ich, es w?re besser, mein eigenes Backend zu erstellen, anstatt Firebase/Serverless zu verwenden ... was nicht meine beste Idee war: )

Was ich versucht habe:

  • überprüfen Sie die URL mit Chrome --> alles funktioniert einwandfrei (ich kann meine JSON-Daten sehen)
  • überprüfen Sie in der App oder in Postman: (Header: Content-Type text/html)
<!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <meta name="robots" content="noindex, nofollow">
    <title>One moment, please...</title>
    <style>
    body {
        background: #F6F7F8;
        color: #303131;
        font-family: sans-serif;
        margin-top: 45vh;
        text-align: center;
    }
    </style>
    </head>
    <body>
    <h1>Please wait while your request is being verified...</h1>
    <form id="wsidchk-form" style="display:none;" action="/z0f76a1d14fd21a8fb5fd0d03e0fdc3d3cedae52f" method="get">
    <input type="hidden" id="wsidchk" name="wsidchk"/>
    </form>
    <script>
    (function(){
        var west=+((+!+[])+(+!+[]+!![]+!![]+!![]+[])+(+!+[]+!![]+!![]+!![])+(+!+[]+!![]+!![]+!![]+[])+(+!+[])+(+!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![]+[])+(+!+[]+!![]+!![]+!![]+!![])+(+!+[]+[])),
            east=+((+!+[])+(+!+[]+!![]+[])+(+!+[]+!![]+!![]+!![]+!![]+!![]+!![]+!![])+(+!+[]+[])+(+![])+(+!+[]+!![]+[])+(+!+[]+!![])+(+!+[]+!![]+!![]+[])),
            x=function(){try{return !!window.addEventLis tener;}catch(e){return !!0;} },
            y=function(y,z){x() ? document.addEventLis tener("DOMContentLoaded",y,z) : document.attachEvent("onreadystatechange",y);};
        y(function(){
            document.getElementById('wsidchk').value = west + east;
            document.getElementById('wsidchk-form').submit();
        }, false);
    })();
    </script>
    </body>
    </html>

Das ist meine PHP-Datei:

$response = array();

function saveResultOfQueryToArray($result){
  global $response;
  $response['workouts'] = array();

  while($row = mysqli_fetch_array($result)){

      $temp = array();

      //  $temp['aufruf'] = $aufruf;
      $temp['error'] = false;
      $temp['workoutname'] = $row['workoutname'];          
      $temp['duration'] = $row['duration'];          
      ...    

      array_push($response['workouts'],$temp);

  }
}

if($_SERVER['REQUEST_METHOD']=='GET') {
  $db = new DbOperation();
  $users = $db->getHighestRatingWith31Results();
  saveResultOfQueryToArray($users, $chooseMethod);
}
else {
    $response['error'] = true;
    $response['message'] = "Invalid Request";
}

echo json_encode($response);

Kann mir jemand erkl?ren, was ich falsch mache/was ge?ndert werden kann?

P粉447785031
P粉447785031

Antworte allen(1)
P粉821231319

看起來 if($_SERVER['REQUEST_METHOD'] == 'GET') 沒有 $response。除非代碼中有更多內容,否則 $response 未定義。

if($_SERVER['REQUEST_METHOD']=='GET') {
  $db = new DbOperation();
  $users = $db->getHighestRatingWith31Results();
  saveResultOfQueryToArray($users, $chooseMethod);
  $response['error'] = false;
  $response['message'] = 'Whatever you want returned here.';
else {
    $response['error'] = true;
    $response['message'] = "Invalid Request";
}

echo json_encode($response);

類似的東西應該可以解決問題!我還建議查看 HTTP 響應,例如 HTTP 405。 https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405

編輯:我看到了您的更新,很抱歉,但這引發(fā)了更多問題。也就是說,$db->getHighestRatingWith31Results(); 是做什么的?函數(shù) saveResultOfQueryToArray() 接受一個參數(shù),但用法是給函數(shù)提供兩個參數(shù)? saveResultOfQueryToArray 正在調用 mysqli_fetch_array(),它需要一個 mysqli_result 實例。

這是我的建議:

  • 使用 PDO 而不是 mysqli。我知道您說過這是舊代碼,但 PDO 非常棒。 https://www.php.net/manual/en/class.pdohttps://phpdelusions.net/pdo
  • 我可能不會將 $response 設置為全局變量。我要么從 saveResultOfQueryToArray() 返回 $response,要么考慮通過引用傳遞。 https://www.php.net/manual/en/language。 references.pass.php
  • 我再次建議您研究一下 HTTP 響應代碼。
  • 最后,我知道這很難,但是將您的變量命名為更容易理解的名稱,并用注釋記錄您的代碼。計算機科學中有一個老笑話:“計算機科學中最困難的兩個部分是緩存失效、命名事物和相差一錯誤?!?“文檔是一封寫給未來的自己的情書?!?- 達米安·康威
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage