• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Formular auswerten

EMEUV

Neues Mitglied
Es soll ein Formular ausgewertet werden.

action="a.php"

Nachdem alle Felder geprüft sind, soll zu b.php verzeigt werden.

Wie kann dies mit PHP gelöst werden?
 
Bei welchem Teil deines Wunsches brauchst Du genau Unterstützung? Beim prüfen der Felder oder bei der Weiterleitung? Letzteres wäre mit der header()-Funktion realisierbar.
 
Entweder du machst einen link like
PHP:
if(/*sind alle Felder ueberprueft*/){
  echo '<a href="b.php">weiter</a>';
}else{
  echo 'nciht alle felder ueberprueft';
}
oder mittels header()
PHP:
header("location:b.php");

grüße
 
Das ist ein guter Hinweis.
Bekome aber die Meldung:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/user_web/investmentclub/a.php:4) in /var/www/user_web/investmentclub/a.php on line 6
 
Bevor die Funktion header() ausgeführt wird, darf es keine andere Ausgabe geben. Kein Doctype, kein anderer HTML-Code, nicht mal ein Leerzeichen oder Tabulator.
 
Das ist ein guter Hinweis.
Bekome aber die Meldung:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/user_web/investmentclub/a.php:4) in /var/www/user_web/investmentclub/a.php on line 6

dann musst du in der index.php vor dem <?php ein ob_start() und vor dem ?> ein ob_end_flush() setzten, denn dann wird die ausgabe gepuffert und die header-funktion funktioniert ;)

mfg Marcel
 
ich hatte mal für ein älteres Projekt, was noch nicht fertig is ^^ mal eine dynamische Funktion geschrieben, welche Formulare nach Pflichtefeldern überprüft;)
PHP:
/**
 * Zeige Fehler aus Formularen an
 * @param:  SQL-Query-Typ
 * @param:  Kategorie
 */
function form_error($type, $cat){
    $msg1 = "Fehler aufgetreten";
    $msg2 = "erfolgreich hinzugef&uuml;gt";
    $msg3 = "erfolgreich ge&auml;ndert";
    
    $cookie = new cookie();
    $cookie = $cookie->getCookie("PW");
    $db = new mysql();
    $felder = $db->select("SELECT `name`, `beschreibung` FROM `profilfelder` WHERE `pflichtfeld` = '1' AND `kategorie` = '" . $cat . "' AND `admin` = '0'");
    $anz = sizeof($felder);
    
    $info = array();
    for($i = 1; $i < $anz; $i++){
        if(empty($_POST[$felder[$i-1]["name"]])){
            $info[$i] =  $felder[0]["beschreibung"] . " fehlt";
        }
    }
    
    // Ausnahmebehandlung wegen Passwort aendern
    if($cat == 3){
        $i = 2;
        if(empty($_POST["a_pass"])){
            $info[$i] = "aktuelles Passwort fehlt";
            $i++;
        }
        
        if(empty($_POST["pass"])){
            $info[$i] = "Passwort fehlt";
            $i++;
        }
        
        if(empty($_POST["pass_1"])){
            $info[$i] = "Passwort wiederholen fehlt";
        }
        
        if($cookie !== md5(@$_POST["a_pass"]) && $i == 2){
            $info[$i] = "aktuelles Passwort stimmt nicht &uuml;berein";
            $i++;
        }
        
        if(@$_POST["pass"] !== @$_POST["pass_1"]){
            $info[$i] = "neues Passwort stimmt nicht &uuml;berein";
        }
    }
    
    if(sizeof($info) != 0){
        $info[0] = "-1";
        $info[1] = $msg1;
    }else{
        $info[0] = "1";
        switch($type){
            case 'update':        $info[1] = $msg3;
                                         $info[2] = "Daten wurden erfolgreich ge&auml;ndert";
                break;
            case 'insert':          $info[1] = $msg2;
                                         $info[2] = "Daten wurden erfolgreich hinzugef&uuml;gt";
                break;
        }
    }
    
    return $info;
}

Kannste ja bissl abändern, eine DB dahinter klemmen und schon gehts auch dynamisch ... musst eben nur noch deine seite b.php einbinden ;)
 
Zurück
Oben