2017-05-08 1 views
0

Ich bin wirklich neu zu PHP, aber ich habe Vorkenntnisse in asp.net. Ich habe viel gelesen und versucht durch https://www.w3schools.com Das Problem besteht darin, Formulare zu verschicken und sie als E-Mails zu senden. so als erster Schritt habe ich versucht, den folgenden Code auf dem folgenden Link: https://www.w3schools.com/php/php_superglobals.asp

<html> 
<body> 

<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> 
    Name: <input type="text" name="fname"> 
    <input type="submit"> 
</form> 

<?php 
if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    // collect value of input field 
    $name = $_POST['fname']; 
    if (empty($name)) { 
     echo "Name is empty"; 
    } else { 
     echo $name; 
    } 
} 
?> 

ich es in phpDesigner8 kopiert, aber ich bekam die folgende Fehlermeldung, wenn ich jage Lauf: Notice: Undefined index: REQUEST_METHOD in c : \ Benutzer \ Benutzer \ AppData \ Local \ Temp \ Ohne Titel 1 in Zeile 10

Kann mir bitte jemand helfen und mir erklären, was los ist? Vielen Dank im Voraus!

Aktualisierte Version:

<html> 
<body> 

<form method="post" action=""> 
    Name: <input type="text" name="fname"> 

    <input type="submit"> 
</form> 

<?php 



if(isset($_POST['fname'])) { 
    // collect value of input field 
    $name = $_POST['fname']; 
    if (empty($name)) { 
     echo "Name is empty"; 
    } else { 
     echo $name; 
    } 
} 


?> 

jetzt gibt es keine mehr Fehler, aber nichts auf dem Bildschirm mit Echo

+1

Warum überprüfen Sie die Anfrage-Methode? Sie können einfach überprüfen, ob das Feld selbst gepostet wird oder nicht, zum Beispiel: 'if (isset ($ _ POST ['fname']))' btw, überprüfen Sie diese http://stackoverflow.com/questions/12754388/serverrequest- method-does-not-exist – Mohammad

+0

das entfernte den Fehler, jetzt bekomme ich diese Seite kann nicht angezeigt werden, wenn ich auf "submit" drücke –

+0

ok das wurde durch Aktion verursacht, entfernt diese –

Antwort

1

Versuchen Sie dies mit ausgegeben:

$var = $GLOBALS["_SERVER"]; 
print_r($var); 

Götten aus einer Antwort on stackoverflow ,

$request_method = strtoupper(getenv('REQUEST_METHOD')); 
$http_methods = array('GET', 'POST', 'PUT', 'DELETE', 'HEAD', 'OPTIONS'); 

    if (in_array($request_method, $http_methods)) { 
    //this would only allow the above methods. 
    if ($request_method == 'POST') { 
     //proceed 
     $name = $_POST['fname']; 
    if (empty($name)) { 
     echo "Name is empty"; 
    } else { 
     echo $name; 
    } 
    } 
} else { 
    die('invalid request'); 
} 
+0

das ist ein bisschen kompliziert für mich verstehe auf dieser Ebene ... kann ich bitte eine ausführlichere Erklärung haben? –

+0

gib mir eine Minute. Ich werde Kommentare hinzufügen – Akintunde007

+0

Vielen Dank –

Verwandte Themen