2013-11-01 35 views
1

我有一個基於API的應用程序寫入slim。我一直在我的本地計算機上進行測試,並且一切正常。獲取參數不被傳遞

我推到了服務器,我發現我不能取回通過GET請求傳遞的參數

調試時,我觀察到以下

  1. POST請求做工精細

  2. 嘗試使用$_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您希望我發佈哪些代碼?我在哪裏用GET?如果有問題的一部分,您認爲發佈一些代碼將有助於澄清,請讓我知道。 Thanx – kayfun

+0

@charlietfl將研究,看看可能性。謝謝 – kayfun

回答

0

編輯

內容

有可能會得到使用$_SERVER['REQUEST_URI']get請求參數的方式。我在我的本地主機上做了一個快速測試,結果如下。試試看,可能適合你。

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>