Kati: Datei öffnen

Guten Morgen miteinander,

Ich hab ein Formular gemacht, bei dem die Pflichfelder mit PHP geprüft werden. Der aufbau ist wiefolgt.

formular.php
User gibt daten ein
Daten werden an mailer.php geschikt
Daten werden im mailer.php geprüft (pflichfelder etc)
!! Wenn etwas nicht stimmt, wird formular.php aufgerufen und ein status weitergegeben ($status=error)

in formular.php wird dann ausgegeben, was man noch ausfüllen muss:

if($status=='error'&&$_GET['Addr1_R']=='')
      echo '<tr><td color=#ff0000>Sie m&uuml;ssen eine Adresse angeben</td></tr>';

<input name="Addr1_R" type="text" style="width:200px;<?php  if($status=='error'&&$_GET['Addr1_R']=='') echo 'background:#F0C2DC;';?>"  onfocus="this.value = ''" value="<?php  if($status=='error'&&$_GET['Addr1_R']!='') echo $_GET['Addr1_R']; else echo 'Adresszeile 1';?>

Dann nochmals von vorne, bis alles ok ist.

Mein Problem liegt jetzt da, dass ich nicht genau weiss, wie ich im mailer.php machen kann, dass formular.php geöffnet wird.

logisch ist ja

if($name&&$Addr1_R==''){
...
$status=error;
...
}

Aber wie schon gesagt, feht mir der rest in der Schleife. Weiss jemand wie man das am besten macht?
Und achja: beim ersten beispiel funktionierts nicht, dass der text rot ist, woran liegt das?

Danke schon im vorraus!!

  1. Moin Kati,

    ich würde das Problem umgehen, indem ich Überprüfung und Fehlerausgabe in einem Script ablaufen lasse. D.H. alles in einer .php, inklusive des Formulars selbst (das lädt sich dann halt selbst immer wieder neu). Das Stichwort lautet hier: Affenformular

    Zur error-Schriftarbe: <td style="color:#ff0000">

    Gruß
    Antipitch

  2. Mahlzeit,

    Ich hab ein Formular gemacht, bei dem die Pflichfelder mit PHP geprüft werden. Der aufbau ist wiefolgt.
    [...]

    Such mal im Forenarchiv nach dem Stichwort "Affenformular" - das sollte dir die Arbeit prinzipiell erheblich erleichtern.

    Mein Problem liegt jetzt da, dass ich nicht genau weiss, wie ich im mailer.php machen kann, dass formular.php geöffnet wird.

    header("Location: formular.php");

    Oder was meinst du?

    logisch ist ja

    if($name&&$Addr1_R==''){
    ...
    $status=error;
    ...
    }

    Was genau willst du in dieser Bedingung prüfen? Irgendwie erschließt sich mir das nicht so genau ...

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. morgn

      Such mal im Forenarchiv nach dem Stichwort "Affenformular" - das sollte dir die Arbeit prinzipiell erheblich erleichtern.

      Das Affenformular hat mir bei meinem problem nicht weitergeholfen...

      header("Location: formular.php");

      Oder was meinst du?

      kann header("Location: formular.php) auch sachen mitgeben, wie ZB status=error??

      Was genau willst du in dieser Bedingung prüfen? Irgendwie erschließt sich mir das nicht so genau ...

      wenn name (ein pflichfeld) und addr1_r leer ist, dann den status auf error setzen und formular.php aufrufen.

      1. Mahlzeit,

        Such mal im Forenarchiv nach dem Stichwort "Affenformular" - das sollte dir die Arbeit prinzipiell erheblich erleichtern.

        Das Affenformular hat mir bei meinem problem nicht weitergeholfen...

        Normalerweise ist ein Affenformular aber für genau die Aufgabe, die du anscheinend zu bewältigen hast - nämlich das wiederholte Anzeigen eines Formulars samt der bisher getätigten Eingaben, bis alle Eingaben korrekt sind und die Verarbeitung losgehen kann - bestens geeignet. Vor allem, da es sich nur um eine Datei handelt, an der man herumwerkeln muss, keine wilden Redirects, keine Parameterübergaben, kein Hin-und-her-springen.

        header("Location: formular.php");

        Oder was meinst du?

        kann header("Location: formular.php) auch sachen mitgeben, wie ZB status=error??

        header("Location: formular.php?status=error");

        Du sagst damit dem Browser ja nichts anderes als dass er sich von einem anderen Ort was holen soll. Klar kannst du da GET-Parameter mit angeben.

        if($name&&$Addr1_R==''){

        Was genau willst du in dieser Bedingung prüfen? Irgendwie erschließt sich mir das nicht so genau ...

        wenn name (ein pflichfeld) und addr1_r leer ist, dann den status auf error setzen und formular.php aufrufen.

        Das dürfte aber so nicht funktionieren. "$name && $Addr1_R" ergibt nämlich entweder TRUE oder FALSE - und wenn du das mit '' vergleichst, sollte eigentlich immer FALSE dabei herauskommen.

        Würde mich jedenfalls wundern, wenn diese if-Anweisung wie beabsichtigt funktioniert - vielleicht solltest du da nochmal drüber nachdenken. :-)

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Das dürfte aber so nicht funktionieren. "$name && $Addr1_R" ergibt nämlich entweder TRUE oder FALSE - und wenn du das mit '' vergleichst, sollte eigentlich immer FALSE dabei herauskommen.

          Würde mich jedenfalls wundern, wenn diese if-Anweisung wie beabsichtigt funktioniert - vielleicht solltest du da nochmal drüber nachdenken.

          hm, oke.. komm ich nich ganz draus.. du sagts doch selber "ergibt nämlich entweder TRUE oder FALSE"...
          wenn in name und in adr1_r etwas steht, sollte es doch TRUE ergeben... und wenn eines davon leer ist, dan FALSE.. und wenn ich 10 variabeln vergleiche und eines falsch ist, sollte es FALSE ergeben..nicht?

          1. Mahlzeit,

            wenn in name und in adr1_r etwas steht, sollte es doch TRUE ergeben... und wenn eines davon leer ist, dan FALSE.. und wenn ich 10 variabeln vergleiche und eines falsch ist, sollte es FALSE ergeben..nicht?

            Soll ich ehrlich sein? Mir klappen sich die Fußnägel hoch, wenn ich daran denke, String-Variablen wie Boolean-Variablen direkt durch boolsche Operatoren miteinander zu verknüpfen oder zu vergleichen. Um zu überprüfen, ob eine String-Variable gesetzt, leer oder sonstwas ist, gibt es entsprechende Funktionen (die dann entweder TRUE oder FALSE zurückgeben).

            Vielleicht bin ich da zu altmodisch - aber ich bin der Meinung, es erhöht die Lesbar- und Wiederverwendbarkeit von Code ganz erheblich, wenn man einerseits Variablen vernünftig behandelt (auch wenn PHP leider keine echten Variablentypen kennt) und andererseits den Code selbst besser strukturiert (Stichwort EVA). Schleifen, Verschachtelungen, Abfragen und ähnliches mitten HTML-Output sind IMMER "quick'n'dirty" - und spätestens in nem Vierteljahr verstehst du deinen eigenen Code nicht mehr.

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|