2016-06-03 3 views
-1

Ich habe ein Problem, wenn ich den Code aktivieren unten, dass es verursacht, dass mein Code abstürzt. Ich kann nicht herausfinden, wo es abstürzt, aber ich weiß, wenn ich diesen Teil auskommentieren lasse, dass es den Code laufen lässt, einfach nicht die Überprüfungen auf den anderen Teilen des Formulars laufen lassen.Ein Problem mit PHP crashing Skript elseif Code

Jede Hilfe würde sehr geschätzt werden, ich habe alles Namen, und alles ist der richtige Fall.

+0

Überprüfen Sie die Fehlerprotokolle, um zu sehen, was es zum Absturz bringt. Was versuchst du in deinem elseif zu machen? 'elseif ($ SCreq =" Yes "; $ Email = False)' ergibt keinen Sinn – JimL

+0

Warum haben Sie '{{' und '}}'. Eine Reihe von geschweiften Klammern sollte genug sein: -P –

+0

Ich denke, test_input() ist unbekannt auf Ihrer Seite – Mojtaba

Antwort

0

Verwenden Sie eine IDE, um zu überprüfen, ob die Dinge korrekt verschachtelt sind. Schwer zu sagen, aber die Dinge kommentiert, aber ... {{. Auch Fehlerprotokolle!

Ich nehme an, Sie haben sich die Dokumentation angesehen? http://php.net/manual/en/control-structures.elseif.php

if ($a > $b) { 
    echo "a is bigger than b"; 
} elseif ($a == $b) { 
    echo "a is equal to b"; 
} else { 
    echo "a is smaller than b"; 
} 
-2
elseif($SCreq == "Yes" && $Email == False) 
    $EmailERR = "Email is required for SC"; 
    elseif ($SCreq == "Yes" && $emaildist1 == "") 
    $emaildist1ERR = "First Email Distrobution Group required with SC"; 
    else { 
     $emaildist1 = test_input($_POST["emaildist1"]);} 

Zustand Test ist ==

mehrere UND-Bedingung setzen & &.

Beenden Sie Ihre Aussagen mit;

1

Die doppelten Anführungszeichen beginnen grundsätzlich einen neuen Block in Ihrem "if" -Block. So könnte der Code wie folgt geschrieben werden:

if (empty($_POST["SCreq"])) { 
    { 
     $SCreqERR = "SC requires a Yes or No answer"; 
    } 
    else { 
     $SCreq = test_input($_POST["SCreq"]); 
    } 
}} 

Nicht nur die Klammern sind unausgeglichen (es gibt mehr als Schließbügel öffnen Klammern), die „anders“ auch in der „if“ Block beginnt. Entfernen des {} innerhalb des „if“, Sie

if (empty($_POST["SCreq"])) { 
    else { 
     $SCreq = test_input($_POST["SCreq"]); 
    } 
}} 

bekommen, die nicht gültig ist (die „else“ direkt nach dem „if“ Block zu kommen hat, nicht in sie).

Verwenden Sie die richtige Einrückung, um diese Fehler schnell zu erkennen. Nach jedem "{", beginnen Sie eine neue Zeile und fügen Sie Ihren Code mehr ein. Starten Sie nach jedem "}" eine neue Zeile, und ziehen Sie sie weniger ein. Nach jedem Block müssen Sie sich auf derselben Einrückungsebene wie zuvor befinden, ansonsten haben Sie zusätzliche "{" s oder "}". Sie können das entweder manuell tun oder einen guten Editor haben, der das für Sie erledigt. Diese Art von Code verwendet ordnungsgemäße Einrückung und wäre gültig:

if (empty($_POST["SCreq"])) { 
    $SCreqERR = "SC requires a Yes or No answer"; 
} 
else { 
    $SCreq = test_input($_POST["SCreq"]); 
}