2013-11-01 2 views
1

API 기반 응용 프로그램을 슬림하게 작성했습니다. 내 로컬 컴퓨터에서 테스트를하고 있으며 문제가 해결되었습니다.params 전달되지 않음

디버깅하는 동안, 나는 다음과 같은

  1. POST 요청이 잘

  2. 작업하는 관찰 I는 서버에 밀려 난 내가 GET 요청을 통해 전달 된 매개 변수를 검색하지 못할 것으로 나타났습니다

    $_GET['param']을 사용하려고하면 정의되지 않은 색인 오류가 발생하므로 실패합니다.

, 내가 왜 이런 일이 될 수도에 관한

$app->request()->get('param'); 

URL request : {api}/hospital/get_locations?hospital_id=1 
var_dump($_GET): array(1) { ["/hospital/get_locations"]=> string(0) "" } 

모든 포인터를 쓰기 슬림의 매개 변수 값을 얻으려면? htaccess로 파일

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 
+0

htaccess로 또는 다른 INI 설정 allowin 출력하지 g GET ?? – charlietfl

+0

@ User016 코드의 어떤 부분을 게시하겠습니까? 사방에 내가 사용 했어? 질문의 일부가 있으면 일부 코드를 게시하면 명확히하는 데 도움이 될 것이라고 생각되면 알려 주시기 바랍니다. Thanx – kayfun

+0

@charlietfl는 가능성을보기 위해 그 점을 들여다 볼 것입니다. – kayfun

답변

0

편집의

콘텐츠

get 요청이 $_SERVER['REQUEST_URI']를 사용하여 PARAMS 얻기의 방법이있을 수 있습니다. 나는 내 localhost에 대한 간단한 테스트를 수행하고 다음을 생각해 내었다. 그것을 밖으로 시도하십시오, 당신을 위해 일할 수도 있습니다.

PHP

<?php 

// Function 
function getParams() { 
    $params = array(); 
    $urlParts = parse_url($_SERVER['REQUEST_URI']); 
    if (isset($urlParts['query'])) { 
     $query = $urlParts['query']; 
     if (-1 !== strpos($query, '&')) { 
      $query = explode('&', $query); 
     } else { 
      $query = array($query); 
     } 
     foreach ($query as $queryStr) { 
      list($key, $val) = explode('=', $queryStr); 
      $params[$key] = $val; 
     } 
    } 
    return $params; 
} 

// Usage 
$params = getParams(); 

// Debug 
echo "<pre>"; 
print_r($params); 
echo "</pre>"; 

?> 

Array 
(
    [hospital_id] => 1 
) 

의 .htaccess (너의 유사)

<IfModule mod_rewrite.c> 

    Options +FollowSymLinks 
    RewriteEngine on 

    RewriteBase/
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-l 

    RewriteRule .* index.php [L] 

</IfModule>