Entwickler-Ecke

Programmiersprachen (Server) - Formularprüfung macht Probleme


DaKirsche - Di 27.01.09 20:52
Titel: Formularprüfung macht Probleme
Moin moin zusammen,

also ich habe ein Problem mit meinem PHP-Code...
ich habe ein Formular für die Dateneingabe.
Wenn nun das Formular abgeschickt wurde wird geprüft, ob Inhalt in der $_POST[ItemName] vorliegt...aber laut der Prüfung nein....erstmal ein wenig Code:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
[...]
//Testausgabe
echo '
Caption: '.$_POST[emCaption].'('.$this -> filled[$_POST[emCaption]].
') MenueType: '.$_POST[emMenutype].'('.$this -> filled[$_POST[emMenutype]].
') Parent: '.$_POST[emParent].'('.$this -> filled[$_POST[emParent]].
') DT: '.$_POST[emDisplayType].'('.$this -> filled[$_POST[emDisplayType]].')
';
[...]



Quelltext
1:
2:
3:
4:
[...]
//Die Überprüfung
  if ($this -> filled[$_POST[emCaption]] && (($_POST[emMenutype] == 1) || ($this -> filled[$_POST[emParent]])) && $this -> filled[$_POST[emDisplayType]]){
[...]


und die Funktion filled der Klasse:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
function filled($str_overgive){
    if ($str_overgive != "" && !empty($str_overgive) && isset($str_overgive) && $str_overgive != " "){
      return true;
    }
    else {
      return false;
    }
  }



So...die Funktion filled funktioniert komischerweise sonst die ganze Zeit...liefert immer true bzw. false zurück...
Nur hier nicht....
Und die Ausgabe, die ich oben angegeben habe liefert:

Quelltext
1:
Caption: Startseite() MenueType: 1() Parent: 0() DT: 1()                    


Sieht von euch jemand den Fehler? Ich suche den schon ewig und finde einfach nix.....zumal die Daten ja vorhanden sind, wie die Ausgabe zeigt...

MfG
DaKirsche


Delete - Di 27.01.09 22:05

Ich hab zwar lange kein PHP mehr geschrieben, aber müssen
1. nicht die Elemente des $_POST-Arrays in Hochkommata und
2. Funktionsaufrufe nicht in runden statt eckigen Klammern eingeschlossen werden?

Quelltext
1:
$this -> filled($_POST['emCaption'])                    


DaKirsche - Di 27.01.09 22:09

:autsch: :autsch: :autsch: :autsch: :autsch:
Danke ;)

Ne, die Hochkommata sind eigentlich egal, aber die runden Klammern warns ;)
Wird Zeit, dass ich Pause mache :P

Thx


Horschdware - Di 27.01.09 22:09

user profile iconDeddyH hat folgendes geschrieben Zum zitierten Posting springen:
Ich hab zwar lange kein PHP mehr geschrieben, aber müssen
1. nicht die Elemente des $_POST-Arrays in Hochkommata und
2. Funktionsaufrufe nicht in runden statt eckigen Klammern eingeschlossen werden?

Quelltext
1:
$this -> filled($_POST['emCaption'])                    


richtig!

Ausserdem muss beachtet werden, dass $_GET und $_POST in Methoden i.d.R. nicht sichtbar sind und per global $_GET; o.ä. verfügbar gemacht werden müssen.


Delete - Di 27.01.09 22:13

Das ist ja hier nicht der Fall, da sie als Parameter an die Methode übergeben werden.


Heiko - Mi 28.01.09 20:24

user profile iconHorschdware hat folgendes geschrieben Zum zitierten Posting springen:
Ausserdem muss beachtet werden, dass $_GET und $_POST in Methoden i.d.R. nicht sichtbar sind und per global $_GET; o.ä. verfügbar gemacht werden müssen.

Wäre mir neu. $_GET, $_COOKIES, ... sind imho Variablen, die immer erreichbar sind. Sie reagieren also genauso wie $GLOBALS. Alle anderen Variablen die global sind, müsste man mit global $var, alias $GLOBALS["var"], ansprechen.