Post - Variablen & Vergleich

schrenzor

Mitglied
Hallo!

Das klingt jetzt wirklich sehr merkwürdig und es macht mich auch verrückt, aber ich würde wirklich gerne wissen wie sowas möglich ist.

Ich schicke ein Formular mit method="post" ab. Darin ist ein Hidden-Feld "action" mit dem Wert "NewEvent".

Die nächste Seite sieht so aus:

echo $_POST[action];
if($_POST[action] == "NewEvent") echo "funktioniert";

Als Ausgabe bekomme ich:

NewEvent

Jetzt frage ich mich natürlich wie sowas möglich ist? Ich bekomme als Ausgabe genau das was ich überprüfe, aber trotzdem geht er nicht in die Verzweigung rein

Sind auch keine Leerzeichen oder so am Schluss/Anfang, es funktioniert einfach nicht.

mfg,
schrenz0r
 
Hallo!

PHP:
<?php
if(($_POST['NewEvent']) == "NewEvent") {
echo "funtktioniert";
} else {
echo "funktioniert nicht";
}
?>
ungetestet.

Gruss Dr Dau
 
Fehler beim Ansprechen von Array-Elementen:
http://www.tutorials.de/forum/showpost.php?p=1104581&postcount=2 hat gesagt.:
Erklärung: Wenn du keine Anführungszeichen verwendest, wird der Teil zwischen den eckigen Klammern als Name einer Konstante ausgewertet. Da eine derartige Konstante aber nur in den seltensten Fällen definiert ist, nimmt der PHP-Parser kulanterweise an, dass der Programmierer eigentlich einen String mit dem Namen der Konstante als Inhalt meinte. Existiert allerdings eine derartige Konstante, kann sie einen komplett anderen Wert enthalten und so zu unerwartetem Verhalten führen. Von daher ist man auf der sicheren Seite, wenn man gleich einen String verwendet – also mit Anführungszeichen arbeitet.
Bist Du Dir auch sicher, dass kein Zeilenumbruch oder ähnliches am String dran ist?

Außerdem solltest Du vor der Ausgabe mit [phpf]isset[/phpf] prüfen, damit Server, die auch Warnings ausgeben, keine Fehlermeldungen produzieren.

Ich persönlich bevorzuge auch immer geschweifte Klammern zur Abgrenzung von Code-Blöcken zu verwenden, auch wenn es bei einer einzelnen bedingten Anweisung nicht zwingend ist.

Gruß hpvw

PS: Bitte nutze die Code Tags, [ php ]code[ /php ] für PHP-Quelltexte, [ html ]code[ /html ] für HTML-Quelltexte und [ code ]code[ /code ] für sonstige Quelltexte, natürlich ohne die Leerzeichen. Das macht die Quelltexte übersichtlicher. Für kurze Code-Teile im Fließtext (z.B. Variablen- oder Funktionsnamen) kannst Du [ mono ]kurzer Code fetzen[ /mono ] verwenden.
 
Zurück