Beberapa tahun lalu saya mencipta bahagian belakang (PHP untuk mendapatkan beberapa data json) untuk beberapa apl mudah alih saya. Saya tidak pernah menyentuh kod ini sejak itu. Sekarang ia berhenti bekerja minggu lalu. Saya bukan pembangun bahagian belakang jadi saya tidak mempunyai banyak pengalaman di sini, tetapi beberapa tahun yang lalu saya fikir adalah lebih baik untuk membuat bahagian belakang saya sendiri daripada menggunakan Firebase/Serverless... yang bukan idea terbaik saya: )
Apa yang saya cuba:
<!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>
Ini ialah fail php saya:
$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);
Bolehkah seseorang menjelaskan kepada saya apa yang saya lakukan salah/apa yang boleh diubah?
Nampak
if($_SERVER['REQUEST_METHOD'] == 'GET')
没有$response
。除非代码中有更多内容,否则$response
tidak jelas.Sesuatu seperti ini sepatutnya berjaya! Saya juga mengesyorkan melihat respons HTTP, seperti HTTP 405. https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/405
EDIT: Saya melihat kemas kini anda dan saya minta maaf, tetapi ia menimbulkan lebih banyak persoalan. Iaitu,
$db->getHighestRatingWith31Results();
是做什么的?函数saveResultOfQueryToArray()
menerima satu parameter, tetapi penggunaannya adalah untuk menyediakan dua parameter kepada fungsi? saveResultOfQueryToArray sedang memanggil mysqli_fetch_array(), yang memerlukan contoh mysqli_result.Ini cadangan saya:
saveResultOfQueryToArray()
atau mempertimbangkan untuk lulus melalui rujukan. https://www.php.net/manual/ms/language. references.pass.php