슬림 한 서버에서 응답을받을 수 없습니다.

Vogel_guo

우리는 e-shop을 구축하기 위해 php-framework "slim"을 사용하고 있습니다. 이제 우리는 서버에 요청을 보내고 데이터베이스를 수정할 수있는 문제를 만나고 있습니다 (우리는 테이블을 확인했고 실제로 변경되었습니다). 반면 웹 엔드는 데이터베이스에서 응답을받을 수 없습니다 (iOS와 안드로이드 엔드는 모두받을 수 있습니다) ). 다음은 요청을 보내고 데이터베이스를 업데이트하며 응답을받는 코드의 일부입니다.

$app->post('/tblUser', function($request, $response, $args) {
   get_tblUser_id($request->getParsedBody());
});
function get_tblUser_id($data)
{
   $db = connect_db();
   $sql = "update  tblphoneverify set dtCreate = NOW() where strPhone = $data[phone]";
   $db->query($sql);
   $updateId = $db->affected_rows;
$db = null;
    $msg = array(
        'stat' => '',
        'msg' => ''
    );
    $msg['stat'] = '1';
    $msg['msg'] = 'registration success';
    return json_encode($msg);
}

그런 다음이 ajax 세그먼트는 클릭 이벤트를 트리거하여 게시물을 실행하고 결과 상태를 수신합니다.

$(function(){
  $("#getcheck").click(function(){
    $.ajax({
      type:"post",
      url:"http://192.168.1.108/blue/public/tblUser",
      data: {"phone":"13331111111"},
      dataType:"json",

      //async:false,
      contentType: "application/x-www-form-urlencoded",

      success:function(data){
        alert(1);
      },
      error:function(XMLHttpRequest, textStatus, errorThrown){
        alert(XMLHttpRequest.readyState);
        alert(XMLHttpRequest.status);
        alert(XMLHttpRequest.statusText);
        alert(XMLHttpRequest.responseText);
        alert(textStatus);
        alert(errorThrown);
      }
    })
  })
})

코드는 항상 "성공"부분을 건너 뛰고 "오류"로 바로 이동합니다. 그렇다면 우리 코드에 어떤 문제가 있습니까? 미리 감사드립니다.

롭 앨런

호출 가능한 경로에서 응답을 보내야합니다. json_encode스스로 하지 말고 대신 Slim이하도록 놔두세요.

먼저 다음에서 배열을 반환합니다 get_tblUser_id.

function get_tblUser_id($data)
{
    $db = connect_db();
    $sql = "update tblphoneverify set dtCreate = NOW() where strPhone = $data[phone]";
    $db->query($sql);
    $updateId = $db->affected_rows;
    $db = null;
    $msg = array(
        'stat' => '',
        'msg' => ''
    );
    $msg['stat'] = '1';
    $msg['msg'] = 'registration success';
    return $msg;
}

여기에 SQL 주입 취약점이 있습니다. SQL을 다음과 같이 변경하십시오.

   $sql = "update tblphoneverify set dtCreate = NOW() where strPhone = ?";
   $db->query($sql, [$data[phone]]);

다음으로 콜 러블 경로에서 JSON으로 응답을 보내야합니다. Slim에는 다음과 같은 방법이 있습니다.

$app->post('/tblUser', function($request, $response, $args) {
    $msg = get_tblUser_id($request->getParsedBody());

    return $response->withJson($msg);
});

Slim은 이제 msg올바른 콘텐츠 유형 헤더 세트와 함께 배열을 다시 전송 하므로 JavaScript가 디코딩하는 데 도움이됩니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Java 서버 앱에서 응답을받을 수 없습니다.

분류에서Dev

서버 전체 응답을받을 수 없습니다.

분류에서Dev

Java에서 외부 웹 서비스를 호출 한 후 SOAP 응답을받을 수 없습니다.

분류에서Dev

PHP 소켓 서버에서 응답을받을 수 없습니다.

분류에서Dev

장치에서 UDP 응답을받을 수 없습니다

분류에서Dev

React Native가 localhost에서 응답을받을 수 없습니다.

분류에서Dev

Socket.io에서 응답을받을 수 없습니다.

분류에서Dev

URL powershell에서 응답을받을 수 없습니다.

분류에서Dev

CakePHP에서 Superfeedr 콜백 응답을받을 수 없습니다.

분류에서Dev

브라우저에 대한 간단한 프록시 서버를 사용하여 http 응답을받을 수 없습니다.

분류에서Dev

iOS의 블록에서 네트워크 호출에 대한 응답을받을 수 없습니까?

분류에서Dev

신속한 서버 측에서 예외가 발생하면 http 응답을 얻을 수 없습니다.

분류에서Dev

다른 활동에 대한 JSON 응답을 보내고 알림에 표시 할 수 없습니다.

분류에서Dev

Linkedin API 회사 검색에서 응답을받을 수 없습니다.

분류에서Dev

Transloadit이 c # .net에서 ASSEMBLY_COMPLETED 응답을받을 수 없습니다.

분류에서Dev

Transloadit이 c # .net에서 ASSEMBLY_COMPLETED 응답을받을 수 없습니다.

분류에서Dev

Cakephp 3 컨트롤러에서 json 응답을받을 수 없습니다.

분류에서Dev

공개 API (React.js)에서 응답을받을 수 없습니다.

분류에서Dev

yii2의 ajax 호출에서 응답을받을 수 없습니다.

분류에서Dev

iOS 장치를 통해 연결할 때 로컬 서버에서 응답을받을 수 없습니다.

분류에서Dev

Tomcat 또는 GlassFish 서버를 사용하여 Java Jersey 앱에서 JSON 응답을받을 수 없습니다.

분류에서Dev

ssh를 사용하여 웹 서버에 연결 한 다음 http 요청을 보내고 http 응답을받을 수 있습니까?

분류에서Dev

내 스크래피가 유효한 응답을받을 수 없습니다.

분류에서Dev

RestTemplate에서받은 JSON 응답을 구문 분석 할 수 없습니다.

분류에서Dev

Android에서 복잡한 JSON 응답을 구문 분석 할 수 없습니다.

분류에서Dev

서블릿에 대한 요청 및 응답을 할 수 없습니다.

분류에서Dev

iOS [Firebase]에서 알림을받을 수 없습니다.

분류에서Dev

codeigniter 컨트롤러에서 이메일을 보낸 후 jquery에서 응답을받을 수 없습니다.

분류에서Dev

클라이언트에서 PHP로 json을 보내고 PHP에서 json 응답을받을 수 없습니다.

Related 관련 기사

  1. 1

    Java 서버 앱에서 응답을받을 수 없습니다.

  2. 2

    서버 전체 응답을받을 수 없습니다.

  3. 3

    Java에서 외부 웹 서비스를 호출 한 후 SOAP 응답을받을 수 없습니다.

  4. 4

    PHP 소켓 서버에서 응답을받을 수 없습니다.

  5. 5

    장치에서 UDP 응답을받을 수 없습니다

  6. 6

    React Native가 localhost에서 응답을받을 수 없습니다.

  7. 7

    Socket.io에서 응답을받을 수 없습니다.

  8. 8

    URL powershell에서 응답을받을 수 없습니다.

  9. 9

    CakePHP에서 Superfeedr 콜백 응답을받을 수 없습니다.

  10. 10

    브라우저에 대한 간단한 프록시 서버를 사용하여 http 응답을받을 수 없습니다.

  11. 11

    iOS의 블록에서 네트워크 호출에 대한 응답을받을 수 없습니까?

  12. 12

    신속한 서버 측에서 예외가 발생하면 http 응답을 얻을 수 없습니다.

  13. 13

    다른 활동에 대한 JSON 응답을 보내고 알림에 표시 할 수 없습니다.

  14. 14

    Linkedin API 회사 검색에서 응답을받을 수 없습니다.

  15. 15

    Transloadit이 c # .net에서 ASSEMBLY_COMPLETED 응답을받을 수 없습니다.

  16. 16

    Transloadit이 c # .net에서 ASSEMBLY_COMPLETED 응답을받을 수 없습니다.

  17. 17

    Cakephp 3 컨트롤러에서 json 응답을받을 수 없습니다.

  18. 18

    공개 API (React.js)에서 응답을받을 수 없습니다.

  19. 19

    yii2의 ajax 호출에서 응답을받을 수 없습니다.

  20. 20

    iOS 장치를 통해 연결할 때 로컬 서버에서 응답을받을 수 없습니다.

  21. 21

    Tomcat 또는 GlassFish 서버를 사용하여 Java Jersey 앱에서 JSON 응답을받을 수 없습니다.

  22. 22

    ssh를 사용하여 웹 서버에 연결 한 다음 http 요청을 보내고 http 응답을받을 수 있습니까?

  23. 23

    내 스크래피가 유효한 응답을받을 수 없습니다.

  24. 24

    RestTemplate에서받은 JSON 응답을 구문 분석 할 수 없습니다.

  25. 25

    Android에서 복잡한 JSON 응답을 구문 분석 할 수 없습니다.

  26. 26

    서블릿에 대한 요청 및 응답을 할 수 없습니다.

  27. 27

    iOS [Firebase]에서 알림을받을 수 없습니다.

  28. 28

    codeigniter 컨트롤러에서 이메일을 보낸 후 jquery에서 응답을받을 수 없습니다.

  29. 29

    클라이언트에서 PHP로 json을 보내고 PHP에서 json 응답을받을 수 없습니다.

뜨겁다태그

보관