私はシンプルなフォームでのindex.htmlを持っているPHPプロジェクトがあります。このPHPでリクエストが処理されないのはなぜですか?
<?php
echo "can you print this";
if($_SERVER["REQUEST_METHOD"]=="POST")
{
if(!empty($_POST["Test"]))
{
echo "Hello world";
}
}
のようにそれを処理しようとしている。しかし、それはないServicios.phpイムに
<p>Test connection</p>
<form action="Servicios.php" method="post">
<input type='submit' name='Test' value='Test'>
</form>
を"true"のように最初のものを評価することはないからです。一番上の最初のエコーは機能しますが、$ _SERVER ["REQUEST_METHOD"]にエコーすると何も出ません。私はisset($ _ POST ['Hola'])で試しましたが、同じ結果が出ました。
これは私がインターネットホストにあるプロジェクトでのみ発生します。私はnetbeansとxamppを使用して私のローカルコンピュータでこの全く同じコードを書いて、それは完全に動作します。なぜ私は考えていない。
私は愚かな間違いをしている気がしますが、私はそれを見つけることができません。
私のホストはec2 Amazon Web ServicesのUbuntuサーバーです。
編集 は、これは私が私のIPが
Array (
[HTTP_HOST] => [ip]
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:57.0) Gecko/20100101 Firefox/57.0
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[HTTP_ACCEPT_LANGUAGE] => es-MX,es-ES;q=0.9,es;q=0.7,es-AR;q=0.6,es-CL;q=0.4,en-US;q=0.3,en;q=0.1
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_REFERER] => http://[ip]/ProyectoPM/
[CONTENT_TYPE] => application/x-www-form-urlencoded
[CONTENT_LENGTH] => 11
[HTTP_CONNECTION] => keep-alive
[HTTP_UPGRADE_INSECURE_REQUESTS] => 1
[PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
[SERVER_SIGNATURE] => Apache/2.4.18 (Ubuntu) Server at [ip] Port 80
[SERVER_SOFTWARE] => Apache/2.4.18 (Ubuntu)
[SERVER_NAME] => [ip]
[SERVER_ADDR] => 172.31.43.105
[SERVER_PORT] => 80
[REMOTE_ADDR] => 189.208.87.127
[DOCUMENT_ROOT] => /var/www/html
[REQUEST_SCHEME] => http
[CONTEXT_PREFIX] =>
[CONTEXT_DOCUMENT_ROOT] => /var/www/html
[SERVER_ADMIN] => [email protected]
[SCRIPT_FILENAME] => /var/www/html/ProyectoPM/Servicios.php
[REMOTE_PORT] => 5672
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => POST
[QUERY_STRING] =>
[REQUEST_URI] => /ProyectoPM/Servicios.php
[SCRIPT_NAME] => /ProyectoPM/Servicios.php
[PHP_SELF] => /ProyectoPM/Servicios.php
[REQUEST_TIME_FLOAT] => 1510846404.812
[REQUEST_TIME] => 1510846404) 1
これは、それが<?=var_dump($_SERVER); ?>
<?=print_r($_SERVER);?>
の出力であります
["SERVER_PROTOCOL"]=> string(8) "HTTP/1.1"
["REQUEST_METHOD"]=> string(4) "POST"
["QUERY_STRING"]=> string(0) ""
["REQUEST_URI"]=> string(25) "/ProyectoPM/Servicios.php"
["SCRIPT_NAME"]=> string(25) "/ProyectoPM/Servicios.php"
["PHP_SELF"]=> string(25) "/ProyectoPM/Servicios.php"
["REQUEST_TIME_FLOAT"]=> float(1510847672.582)
["REQUEST_TIME"]=> int(1510847672) }
さらに重要な編集 最初に私は言った単純なecho "can you print this";
がホストで働いていたのですが、今でもそうは見えません。私がindex.htmlのMyボタンをクリックしてServicios.phpに移動すると、ブラウザはServicios.php(URLに表示されます)に移動しますが、何も表示しません。すべてのコードを削除した場合は、<?=print_r($_SERVER);?>
のようなインストラクションを私がすでに上に置いたものにするだけです。
を実行し 'ますprint_r($ _ SERVER)'そこに何があるかを確認するかどうかをチェックするために、これを試すことができます。 –
その要求のWebサーバーログを表示します。 –
Ok、print_r($ _ SERVER)は長い配列を返します。正確に何を検索するのですか? – Quique