2017-03-02 5 views
1

にURI値を変換し私は次のパスのリンクをクリックしてアクセス可能GET変数

function getCurrentUri() 
{ 
    $basepath = implode('/', array_slice(explode('/', $_SERVER['SCRIPT_NAME']), 0, 0)) . '/'; 
    $uri = substr($_SERVER['REQUEST_URI'], strlen($basepath)); 
    if (strstr($uri, '?')) $uri = substr($uri, 0, strpos($uri, '?')); 
    $uri = '/' . trim($uri, '/'); 
    $uri = filter_var($uri, FILTER_SANITIZE_URL); 
    return $uri; 
} 

$uri = getCurrentUri(); 
$routes = array(); 
$routes = explode('/', $uri); 
if ($routes[1] == "book") { 
    ... 
    require('../views/books.php?id=$routes[2]'); 
    break; 
    ... 
} 
:私のindex.phpにリダイレクト

# Enable URI Routing 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [QSA,L] 

500の内部サーバーエラーが発生しました。 ?id=$routes[2]がなければ、ページは正常に読み込まれます。

私の目的は、$_GET['id'];というIDをbooks.phpファイルで参照できるようにすることです。

+0

私は、変数を渡すことで、これを解決しました。 '' if($ routes [1] == "book"){ $ book_id = $ routes [2]; require( '../ views/books.php'); 休憩。 } '' これは、 ''/views/books.php''のスクリプトが '' $ book_id''の変数を見ることができるためです。 –

答えて

0

このようにすることはできません。 PHP require関数は "URLのような"ファイルではなく、ファイルを要求します。あなたはこのハックを試すことができます。

$_GET['id'] = $routes[2]; 
require('../views/books.php'); 
+0

ヘッダリダイレクトをここに適用できますか? –

+0

正確に何をしたいですか? –

+0

Xを実行するルートを作成します。この例では、IDタグ付きブックを表示します。#45 '' View this Book '' –

関連する問題