2016-07-26 7 views
0

PHP 버전 7.0JSON_decode 또는 PHP 컨텐츠를 잘못 사용 했습니까?

그래서 기본적으로이 스크립트에 정보를 보내는 다른 웹 사이트가 있습니다. 이 스크립트는 웹 사이트의 다른 부분에 연결되어 있지 않습니다. 따라서이 페이지를 볼 수 없습니다. 정보가 인코딩 된 JSON으로 보내졌으며이 정보를 잘못 디코딩하려고하거나 정보를 제대로받지 못하고 있습니다.

코드

<?php 
ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1); 
error_reporting(E_ALL); 
include '../includes/connection.php'; 
$array = json_decode(file_get_contents("php://input"), true); 
$UserID = $array['UserID']; 
$CallerID = $array['CallerID']; 
$Report = $array['Report']; 
$Violator = $array['Violator']; 
$PlaceLink = $array['PlaceLink']; 

if($CallerID !=NULL and $Report != NULL and $PlaceLink != NULL){ 
    $query = $handler->prepare("INSERT INTO Calls (`ID`, `UserID`,`CallerID`, `Report`, `Violator`, `PlaceLink`, `Status`) VALUES (NULL, :userID, :CallerID, :Report, :Violator, :PlaceLink, '1')"); 
    $query->bindParam(':userID', $UserID); 
    $query->bindParam(':CallerID', $CallerID); 
    $query->bindParam(':Report', $Report); 
    $query->bindParam(':Violator', $Violator); 
    $query->bindParam(':PlaceLink', $PlaceLink); 
    $query->execute(); 
} 
?> 

예상 결과 : 다른 웹 사이트에서 전송 된 정보는 "호출"테이블 아래에 내 데이터베이스에 삽입됩니다.

결과 : 아무 일도 일어나지 않습니다.

페이지로 이동하면 아무 것도 표시되지 않습니다. 이는 이유가 있기 때문에 HTML이 전혀 없기 때문입니다. 나는 이것을 실제로 웹 페이지로 사용하지 않습니다. 나는 그것을 스크립트로 사용한다.

+0

왜 당신은 잘못된 생각합니까? 문제를 설명하십시오. –

+0

정보를 데이터베이스에 삽입해야하는 것을 볼 수 있습니다. 나는 그들이 다른 장소에서도 사용되기 때문에 연결과 처리기가 작동하고 있음을 안다. – Austin

+0

스택 오버플로에 오신 것을 환영합니다! 코드가 어떻게 작동하지 않는지 자세히 설명해 주시겠습니까? 당신은 무엇을 기대하고 있었고 실제로 무슨 일이 일어 났습니까? 예외/오류가있는 경우 발생한 행을 게시하고 예외/오류 세부 정보를 게시하십시오. 이 세부 정보를 입력하거나 편집하지 않으면 도움이되지 않을 수 있습니다. – FrankerZ

답변

0

코드

<?php 
ini_set('display_errors', 1); 
ini_set('display_startup_errors', 1); 
error_reporting(E_ALL); 
include '../includes/connection.php'; 
$array = json_decode(file_get_contents("php://input"), true); 
$UserID = $array['UserID']; 
$CallerID = $array['CallerID']; 
$Report = $array['Report']; 
$Violator = $array['Violator']; 
$PlaceLink = $array['PlaceLink']; 
echo "<script>alert(". $array .");</script>"; 

if($CallerID !=NULL and $Report != NULL and $PlaceLink != NULL){ 
    $query = $handler->prepare("INSERT INTO Calls (`ID`, `UserID`,`CallerID`, `Report`, `Violator`, `PlaceLink`, `Status`) VALUES (NULL, :userID, :CallerID, :Report, :Violator, :PlaceLink, '1')"); 
    $query->bindParam(':userID', $UserID); 
    $query->bindParam(':CallerID', $CallerID); 
    $query->bindParam(':Report', $Report); 
    $query->bindParam(':Violator', $Violator); 
    $query->bindParam(':PlaceLink', $PlaceLink); 
    $query->execute(); 
} 
?> 
+0

그래서 브라우저에서 스크립트로 이동하여 기다렸다가 정보를 보내야하는지, 경고가 표시되는지 확인해야합니까? – Austin

+0

PHP가 "folderpath/index.php"에 있으면 브라우저의 검색 상자에 넣으십시오. 그 json 데이터 준비. which is (php : // input), 필요하다면 샘플 데이터로 바꾼다 – PSo

+0

좋아, 근본적으로 이것이 작동하는 방식이다. 이 스크립트는 /scripts/addCall.php | 다른 웹 사이트에서 버튼을 누르면 클라이언트에서 수집 한 정보가 인코딩되어이 스크립트로 전송됩니다. 명확히하기 위해이 스크립트로 이동합니다. 페이지에서 데이터를 보내시겠습니까? – Austin