2016-04-01 7 views
0

Kann dies getan werden?Überprüfen Sie, ob die Variable leer ist. Wenn ja, setzen Sie den Wert. sonst Funktion ausführen

Ich habe ein Formular erstellt, das die Funktion giveReaction ausführt. Kann mir jemand sagen, was ich falsch mache?

Dies ist mein Code so weit:

function giveReaction(){ 
    global $firstname; 
    if (empty($firstname)) { 
     $firstname = 'fill in your name, and get a response.'; 
     echo "$firstname"; 
    } 
    else { 
     $firstname = $_GET['firstname']; 
     echo "hello, $firstname"; 
    } 
} 

echo "<form action=\"index.php?func_name=giveReaction()\" method=\"GET\"> 
     <input type=\"text\" name=\"firstname\"> 
     <input type=\"submit\" value=\"send\"> 
     </form>"; 

giveReaction(); 
+0

Ich wette, du fällst in die andere Zeit, richtig? Sagen Sie, was das Problem ist, wenn nicht. –

+1

Sie setzen niemals '$ firstname'. Sehen Sie sich die [php forms tutorial] (http://www.google.com/search?q=php+forms+tutorial) an. – fusion3k

Antwort

1

Es gibt zwei unmittelbare Probleme mit Ihrem Code:

  1. Sie $firstname nie vor definieren, um die Überprüfung es
  2. Die Aktion leer ist in Ihrem Formular macht nichts, wie Sie nie behandeln func_name - das ist kein eingebautes Merkmal der Sprache

So starten Sie Ihren Code zur Festsetzung, benötigen Sie den firstname Eingang richtig zu handhaben, wenn das Formular zum Beispiel vorgelegt wurde:

$firstname = isset($_GET['firstname']) ? $_GET['firstname'] : ''; 

Dies stellt sicher, dass $firstname wird der übermittelte Wert oder eine leere Zeichenfolge, wenn es wurde noch nicht bereitgestellt.

So können Sie Ihre Funktion wie folgt definieren:

function giveReaction(){ 
    $firstname = isset($_GET['firstname']) ? $_GET['firstname'] : ''; 
    if (empty($firstname)) { 
     echo 'fill in your name, and get a response.'; 
    } else { 
     echo "hello, $firstname"; 
    } 
} 

Zweitens Formular stellen Sie die unnötige Aktion zu entfernen, wie durch Standardformulare werden auf der aktuellen Seite einreichen, und die func_name Parameter nicht verwendet wird .

echo "<form method=\"GET\"> 
    <input type=\"text\" name=\"firstname\"> 
    <input type=\"submit\" value=\"send\"> 
    </form>"; 

Dann können Sie beenden, wie Sie haben, indem Sie Ihre Funktion aufrufen.

giveReaction(); 
Verwandte Themen