Ich habe ein PHP-Projekt, in dem ich eine index.html mit einer einfachen Form habe:Warum verarbeitet PHP meine Anfrage nicht?
<p>Test connection</p>
<form action="Servicios.php" method="post">
<input type='submit' name='Test' value='Test'>
</form>
in Servicios.php Im Versuch, es wie diese nicht, aber es macht
<?php
echo "can you print this";
if($_SERVER["REQUEST_METHOD"]=="POST")
{
if(!empty($_POST["Test"]))
{
echo "Hello world";
}
}
zu verarbeiten funktioniert, das ist, weil es nie das erste if wie "wahr" auswertet. Das erste Echo an der Spitze funktioniert, aber wenn ich ein Echo zu $ _SERVER ["REQUEST_METHOD"] mache, gibt es mir nichts. Ich habe versucht mit isset ($ _ POST ['Hola']), aber ich hatte das gleiche Ergebnis.
Dies geschieht nur in dem Projekt, das ich in einem Internet-Host habe. Ich habe diesen exakt gleichen Code in meinem lokalen Computer mit netbeans und xampp geschrieben und es funktioniert perfekt. Ich habe keine Idee warum.
Ich habe das Gefühl, dass ich einen dummen Fehler mache, aber ich kann es nicht finden.
Mein Host ist ein Ubuntu-Server von den ec2 Amazon Web Services.
bearbeiten dies ist die Ausgabe von <?=print_r($_SERVER);?>
in Servicios.php ich die Teile ersetzt, wo meine ip mit [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
Dies ist in der Anordnung zeigte er mit <?=var_dump($_SERVER); ?>
kehrt
Eine wichtigere Bearbeitung Zuerst sagte ich dass eine einfache echo "can you print this";
im Host funktioniert, jetzt sehe ich, dass es auch nicht. Wenn ich zu servicios.php gehe, indem ich auf meine Schaltfläche in index.html klicke, wechselt der Browser zu Servicios.php (er zeigt es in der URL an), aber es zeigt einfach nichts. Es zeigt nur etwas, wenn ich den ganzen Code lösche und eine Anweisung wie <?=print_r($_SERVER);?>
, die ich oben bereits gesetzt habe.
Run 'print_r ($ _ SERVER) zu überprüfen,' zu sehen, was da drin ist. –
Zeigt das Web-Server-Protokoll für diese Anforderung an. –
Ok, print_r ($ _ SERVER) gibt mir ein langes Array, was genau soll ich suchen? – Quique