2016-07-24 4 views
0

(この質問は、私が見つけた回答とその他の情報のため2回修正されました)

私はREQUESTからURLを取得する必要があります。以下はindex.phpの例です。要求、投稿、取得を印刷しようとしていますが、すべてが空です。 私はBitnami WAMPとリモートサーバー(Arvixe)で自分のコンピュータでこれを試しました。リモートサーバーでは動作しないため、おそらく理由は.htaccessにありますか? REQUEST ['url']が機能していない理由は他にありますか?

C:Bitnami \ wampstack-5.6.20-0 \ apache2の\ htdocsに\ WWW \ Plan2own公共の\ index.phpを\

<?php 
error_reporting(E_ALL); 
//phpinfo(); 
echo'<br> index.php _GET = **', var_dump($_GET ), '**'; 
echo'<br> index.php _POST = **', var_dump($_POST ), '**'; 
echo'<br> index.php GLOBALS[_REQUEST] = **', var_dump($GLOBALS['_REQUEST']) , '**'; 
echo'<br> index.php _REQUEST = **', var_dump($_REQUEST ), '**'; 
echo'<br> index.php _REQUEST[url] = **', var_dump($_REQUEST['url'] ), '**'; 
echo'<br> index.php _GET[url] = **', var_dump($_GET['url'] ), '**'; 
echo'<br> index.php _POST[url] = **', var_dump($_POST['url'] ), '**'; 

C:\ Bitnami \ \ wampstack-5.6.20-0 \ apache2の\ htdocsに\ WWW Plan2own \ \のpublic.htaccess例えば

Options -MultiViews 
Options -Indexes 
RewriteEngine on 
RewriteBase C:\Bitnami\wampstack-5.6.20-0/apache2/htdocs/www/Plan2own/public 
RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
RewriteCond %{ENV:REQUEST_FILENAME} !-d 
RewriteCond %{ENV:REQUEST_FILENAME} !-f 
RewriteCond %{ENV:REQUEST_FILENAME} !-l 
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

、私は次のような結果と空のURLを取得していますURL http://plan2own/index.php/homeを使用。例えば

index.php _GET = **array(0) { } ** 
index.php _POST = **array(0) { } ** 
index.php GLOBALS[_REQUEST] = **array(0) { } ** 
index.php _REQUEST = **array(0) { } ** 
index.php _REQUEST[url] = **NULL ** 
index.php _GET[url] = **NULL ** 
index.php _POST[url] = **NULL ** 

、URL http://plan2own/index.php?a=bを使用して、私はアイデアは、私はつまり、私は、コントローラとメソッドを取得する必要があり、http://plan2own/index.php/homeから家に帰るべきであるということです空のURLに

index.php _GET = **array(1) { ["a"]=> string(1) "b" } ** 
index.php _POST = **array(0) { } ** 
index.php GLOBALS[_REQUEST] = **array(1) { ["a"]=> string(1) "b" } ** 
index.php _REQUEST = **array(1) { ["a"]=> string(1) "b" } ** 
index.php _REQUEST[url] = **NULL ** 
index.php _GET[url] = **NULL ** 
index.php _POST[url] = **NULL ** 

を取得しています。

私はhttp://stackoverflow.com/questions/5701588/why-is-request-emptyを読みました。(a)php.iniのauto_globals_jitをコメントアウトして、Apacheを再起動すると助けになりませんでした。私の場合、(b)php.iniのrequest_oderとvariable_orderは正しいです。

私は正しいphp.iniファイルをチェックしていますが、これはphpinfor()を使って見ることができます。 「Loaded Configuration File」行に入力します。

答えて

1

あなたの質問はauto_globals_jitrequire_orderです。そのライン上でこのテキストのほかに何があってはならない

variables_order = "GPCS"; 

php.inivariables_orderていることを確認してくださいは、のようなものに設定されています。あなたはphp.iniに変更を加えて、PHP/webserverを再起動してください。

正しいphp.iniファイルを編集していることを再度確認してください。しばしばそれらのいくつかがあります。あなたがphpinfo();exit;を実行し、Loaded configuration fileでパスの出力を見に、それはあなたのphp.ini

+0

'request_order'と' variables_order'が有効で正しいです。私は正しい '\ C:\ Bitnami \ wampstack-5.6.20-0 \ php \ php.ini'をチェックしています。これは' index.php'に 'phpinfo();'をアンコメントするとロードされます。エラーがどこにあるのか理解していない。それは '.htaccess'でもかまいませんか? – olga

+0

私はBeetleJuiceの答えを試した後に質問を更新しています – olga

0

Finalyのパスと一致する必要があります場合は、

http://code.tutsplus.com/tutorials/using-htaccess-files-for-pretty-urls--net-6049

からの例を使用して、コントローラとメソッドのパラメータを抽出するために、URLを取得するために管理Cにおいて

1):\ Bitnami \ wampstack-5.6.20-0 \のapache2 \ htdocsに\ WWW \ Plan2own \のpublic.htaccess 変化RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

RewriteRule ^(.*)$ index.php?/$1 [L] 

2)URLをindex.phpにリダイレクトし、以下のコードを使用してURLを解析できる場合。

// C:\ Bitnami \ wampstack-5.6.20-0 \ apache2 \ htdocs \ www \ Plan2own \ public \ index。$ _SERVER ['REQUEST_URI']); $ _SERVER( '/ Plan2own/public/index.php/"、"、$ _SERVER [' REQUEST_URI ']); $ request = str_replace; echo '
index.php request = '、var_dump($ request)、 '';

URL http://www.domain.com/public/index.php/home/someのために結果がindex.php request = **string(9) "home/some" **

P.S.です何らかの理由で.htaccessコマンドRewriteRule ^(.+)$ index.php?url=$1 [QSA,L](Linuxで動作していた)がArvixeとBitnami WAMPで動作していないため、$_REQUEST['url']を取得できませんでした。

関連する問題