Formular mit php prüfen.

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

  • Formular mit php prüfen.

    Ich wollte meine eingaben mit php überprüfen lassen.
    Nun hab ich im www ein beispiel gefunden.
    PHP-Code:
    <?php
    $counter
    =0;
    //Firmenname check
    if ($Firmenname!=""){
    echo 
    "<p>$Firmenname</p>";}
    else{
    echo 
    "<p><b class=bad>Firmenname</b></p>";
    $counter++;}
    echo 
    "<!--Firma checked -->\n";
    ?>
    <?php
    if ($counter<1){echo "Keine Fehler";}
    else {echo 
    "Hier ist noch was faul";}
    ?>
    Hab es probiert, und er erkennt ja auch, ob was eingegeben wurde oder nicht. Aber ich möchte ja, wenn nichts eingegeben wurde, das er das formular mit den bisherrigen eingaben nochmal anzeigt.
    Und das verstehe ich noch nicht.
    Ich habe ein formular. Und die datei heißt bei mir inserieren.php und nach dem absenden wird es an nachanzeige.php geschickt, wo es in die mysql datenbank eingetragen wird. In welche datei trage ich denn den code ein, und wie erreiche ich das er mir die markiert, die leer sind?
    Zuletzt geändert von martinm79; 05.03.2004, 22:24.
    Gut geraten ist halb gewußt.

  • #2
    Re: Formular mit php prüfen.

    schau dir die erklärungen zum affenformular an.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Danke. Das ist genau das was ich gesucht hatte. Nun muß ich es nur noch begreifen
      Gut geraten ist halb gewußt.

      Kommentar


      • #4
        Ja hab nun das affenformular probiert und probiert.

        Er gibt mir aber jedesmal Fehlermeldungen aus.

        z.B. diese hier, die direkt in dem Eingabefeld steht!
        PHP-Code:
        <br><b>Warning</b>:  Undefined variable:  _REQUEST in <b>c:\www\form.php</bon line <b>37</b><br
        Und diese, die unterhalb des eingabeformulares steht.
        PHP-Code:
        WarningUndefined variableerror in c:\www\form.php on line 40 
        Warum?
        Gut geraten ist halb gewußt.

        Kommentar


        • #5
          Original geschrieben von martinm79
          Warum?
          vermutlich, weil die variablen nicht definiert sind ...?

          wenn du nicht weisst, ob eine var existiert, solltest du dies natürlich überprüfen, bevor du sie ansprichst - isset() oder empty() helfen dir hier weiter.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Ja. Das mit empty und isset weis ich, aber wenn ich
            PHP-Code:
            <? 
            echo $_SERVER['PHP_SELF'] 
            ?>
            schreibe, dann dürfte er doch keine Fehlermeldung schreiben. Ich hatte irgendwo gelesen, das es eine festgelegte Variable ist. Stimmt das nicht? Er gibt mir in diesem Fall aber die Fehlermeldung
            Warning: Undefined variable: _SERVER in c:\www\form.php on line 1

            aus.


            Ja und dann kann ich ja garnicht das Formular prüfen, wenn das schon nicht stimmt.
            Gut geraten ist halb gewußt.

            Kommentar


            • #7
              ähm, welche php-version setzt du denn ein?

              diese vordefinierten arrays gibt es "erst" ab php 4.1.0, siehe http://www.php.net/manual/de/languag...predefined.php
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                aha! Da ist also der Hacken! Ich habe php bei mir nicht selber installiert aber in der info.php steht oben "PHP Version 4.0.6". Mhh....
                Was mach ich jetzt da? Löschen? Und neu installieren? Muß ich denn beim instalieren schwerige einstelungen vornehmen? Ich hasse es doch....
                Aber da komm ich wohl jetzt nicht drum rum oder?
                Ohh man und da ich das nicht selber installiert habe, weis ich ja garnicht wo was ist, aber ich hab grad gelesen, das ich auch ein update machen kann, und das es auch php als installer gibt. Was empfielst du mir?
                (p.s. hab 2 linke hände )
                Zuletzt geändert von martinm79; 06.03.2004, 01:21.
                Gut geraten ist halb gewußt.

                Kommentar


                • #9
                  Original geschrieben von martinm79
                  Was empfielst du mir?
                  im zweifelsfalle, den tipp auf der von mir verlinkten seite zu berücksichtigen:

                  $_SERVER
                  Variablen, die vom Webserver gesetzt werden oder anderweitig direkt mit der ausführenden Umgebung des aktuellen Skripts zusammenhängen. Entspricht dem alten $HTTP_SERVER_VARS-Array, das zwar noch zur Verfügung steht, aber abzulehnen ist.


                  statt $_SERVER['PHP_SELF'] solltest du also $HTTP_SERVER_VARS['PHP_SELF'] verwenden können, und bei den anderen superglobalen arrays analog die älteren versionen.


                  allerdings wäre ein update deiner php-version evtl. doch angebracht, wenn du online eine neuere version einsetzt - dann wäre es eher unsinnig, lokal das script mit diesen veralteten zugriffen zu erstellen ...
                  I don't believe in rebirth. Actually, I never did in my whole lives.

                  Kommentar


                  • #10
                    Ja, das mit der neueren version hatte ich mir dann auch so gedacht. Ich hab mir vor 30 min. php installer 4.3.4 runtergeladen. Habe nichts deinstaliert sondern einfach installiert und törö..... Hat alles funktioniert.
                    Jetzt steht bei mir bei der test.php version 4.3.4 und das script läuft auch.

                    Haben den die meisten webhostanbieter auch immer die aktuelle version drauf?

                    Achso, etwas würde mich noch interessieren.
                    Ich habe den folgenden schnipsel auch von irgend einem Beispiel aus dem www. Es läuft und funkt auch alles auser das beim ersten aufruf $error nicht definiert ist und ich bekomm das irgendwie mit if und isset net weg.

                    PHP-Code:
                    <?php

                    // Funktion zum Drucken von Fehlermeldungen
                    function errmsg($msg) {
                       
                    ?>
                       <font color="#ff0000"><b><?php print nl2br($msg?></b></font>
                       <?php
                    }

                    // Überprüft Eingabewerte für $textfeld auf Korrektheit.
                    function validate_textfeld($val) {
                       
                    $msg "";
                       if (
                    strlen($val) < 3)
                          
                    $msg .= "Die Eingabe muss mindestens 3 Zeichen lang sein.\n";

                       if (
                    preg_match("/\s/"$val))
                          
                    $msg .= "Die Eingabe darf keine Leerzeichen "
                                 
                    ."oder Tabulatoren enthalten.\n";

                       return 
                    $msg;
                    }

                    // Für jedes Formularfeld werden nun ein oder mehrere
                    // Validatoren aufgerufen und das Ergebnis der Überprüfung
                    // gemerkt.
                    $valid true;
                    if (isset(
                    $_REQUEST["textfeld"])) {
                       
                    $error["textfeld"] = validate_textfeld($_REQUEST["textfeld"]);
                       if (
                    $error["textfeld"] != "")
                          
                    $valid false;
                    }

                    ?>

                    <?php 
                        
                    if (!($valid == "false")) {

                    ?>
                    <form action="<?php print $_SERVER["PHP_SELF"]; ?>">
                    <input type="text"
                           name="textfeld"
                           value="<?php print htmlspecialchars($_REQUEST["textfeld"]); ?>"><br>
                    <?php
                    // Ggf. Fehlermeldung ausdrucken.
                    if ($error["textfeld"] != "")
                       print 
                    errmsg($error["textfeld"]);
                    ?>
                    <input type="submit"
                           name="do_form_x"
                           value="Ausführen">
                    </form>
                    <?php
                    }
                    else {
                    echo 
                    "Ihre Eingabe wurde gespeichert.";
                    }
                    ?>
                    <hr>
                    <?php if ($valid and isset($_REQUEST["do_form_x"])) { ?>
                    <!-- Nutzlast -->
                    <?php ?>
                    Hab mir das formular noch einmal in einer extra datei gemacht und schicke es denn an diese datei, aber das ist ja nicht sinn der sache.
                    Wie bekomme ich diese Fehlermeldung (das es nicht definiert ist) von $error Weg?
                    Gut geraten ist halb gewußt.

                    Kommentar

                    Lädt...
                    X