Affenformular / PHP /MySQL

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Affenformular / PHP /MySQL

    Hallo,

    folgendes kniffliges Problem,

    ich habe nach Kristian Köhntopp (Formularverarbeitung in Normalform)
    ein Formular entwickelt.

    Darin weise ich jedem Feld eine Variable zu, die ich entsprechend
    abfrage, Bsp:


    ...
    function validate_university_year1($val) {
    $msg = "";
    if ((empty($val)) OR ($val=="1960"))
    $msg .= "Bitte geben Sie im Feld DURATION ein gültiges Jahr ein !\n";
    return $msg;
    }
    ...

    $valid = TRUE;

    ....
    danach folgt :
    ...
    if (isset($university_year1)) {
    $error["university_year1"] = validate_university_year1($university_year1);
    if ($error["university_year1"] != "")
    $valid = FALSE;
    }
    ...

    und kurz vor Schluß dann auch noch

    if ($error["university_year1"] != "")
    print errmsg($error["university_year1"]);

    Jetzt möchte ich erreichen, daß in gewissen Feldern Pflichteingaben
    gemacht werden. Erst wenn diese erfolgreich sind, soll eine neue
    Seite aufgerufen werden usw...

    Vorher werden dem Benutzer solange Fehlermeldungen gezeigt, bis alle
    Daten eingetragen sind.

    <?php if ($valid=1) and isset($_REQUEST["zulassungform_do"])) {
    include ("student_insert.php");
    $redirectURL .= "/anmeldung_einfuegen.php?studentID=$ID";
    header("Location: $redirectURL");
    }

    In "student_insert.php" steht mein MySQL Insert drin.

    Wenn ich nun diesen Code ans Ende stelle (Kristian Köhntopp) hat
    diesen Bereich vielleicht als Nutzlast bezeichnet, bekomme ich bereits nach dem ersten wiederholten Aufruf des Formulars die Meldung :

    Cannot add header information - headers already
    sent by (output started at /srv/www/htdocs/zulassungform.php:7) bla bla bla

    Verstehe ich, da vorher bereits HTML Code aufgerufen wird.

    Setze ich den o.g. Code an den Anfang wird nach dem wiederholten Aufruf des Formulars der Link "/anmeldung_einfuegen.php?studentIFD=$ID" ausgeführt.

    zulassungsform hat dabei den Wert gedrückt = SUBMIT = TRUE
    und value hat ebenfalls den Wert TRUE, da eine Änderung auf FALSE erst NACH der Kopfzeile im Bauch des Formulars geschieht =>
    Ich habe beim ersten Aufruf einige Werte eingegeben, leider was vergessen drücke auf SUBMIT, und VALUE wird erst im Laufe des Quelltextes FALSE.

    Frage also: Ich möchte ein Affenformular so gestalten, daß ein Benutzer solange auf den SUBMIT - Button drücken muß, bis alle Pflichtfelder ausgefüllt sind und erst DANN soll ein Eintrag in die Datenbank erfolgen & eine neue andere Seite aufgerufen werden.

    Gruß

    Stefan

  • #2
    habs nicht ganz gelesen - bin ich ja morgen noch dran (goth weiß warum- PISA)

    Aber du hast einen fehler mit dem Header und verwendest die funktion header();

    Der Fehler liegt auf der hand. bevor du die Weiterleitung machst, hast du schon etwas im HTML ausgegeben. Das darf man vor header aber nicht. Entferne alles was dir irgendwas ausgibt vor dem header und es klappt.

    Kommentar

    Lädt...
    X