Merkwürdiger Fehler!!!

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

  • Merkwürdiger Fehler!!!

    Ich habe ein Script das die Forumlardaten nach absenden prüft und gegebenenfalls sich noch mal aufruft und die fehlenden Daten auffordert einzutragen. Zusätzlich habe ich in der Datenbank die Felder die Wichtig sind auf not NULL gesetzt.

    Dennoch ist es jetzt ein zweites mal vorgekommen das Datensätze eingetragen wurden wo einige Wichtige Angaben fehlen. Wie kommt es dazu?
    Angehängte Dateien
    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

  • #2
    <script language=JavaScript type=text/javascript>

    <!--

    function test()

    {

    var str = document.anmeldung.email.value

    if (document.anmeldung.email.value.indexOf ('@', 0) == -1 || str.length < 6

    || document.anmeldung.email.value.indexOf ('.',0) == -1)

    {

    alert("\nBitte geben Sie eine gueltige e-Mail-Adresse ein!");

    document.anmeldung.email.select();

    document.anmeldung.email.focus();

    return false;

    }

    }



    function openWin( windowURL, windowName, windowFeatures )

    {

    return window.open( windowURL, windowName, windowFeatures ) ;

    }

    //-->

    </script>


    Versuchs mal mit der Version

    Kommentar


    • #3
      JavaScript wollte ich aber eigentlich vermeiden.
      Zuletzt geändert von Wotan; 02.07.2002, 14:06.
      *winks*
      Gilbert
      ------------------------------------------------
      Hilfe für eine Vielzahl von Problemen!!!
      http://www.1st-rootserver.de/

      Kommentar


      • #4
        das ist JavaScript....

        Kommentar


        • #5
          reminder: ein leerzeichen ist auch NOT NULL...
          am einfachsten überprüfst du dat mit
          if(strlen(trim($deinString))<1)
          eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùû䶳Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

          Kommentar


          • #6
            Wie jetzt?

            Ich nehme an du meinst diese Zeile:
            PHP-Code:
            if (strlen($Vorname) > 0
              
            && strlen($Nachname) > 0
              
            && strlen($Strasse) > 0
              
            && strlen($PLZ) > 0
              
            && strlen($Ort) > 0
              
            && strlen($beMail) > 0

            Wie muss ich die jetzt ändern?

            edit: Zeilenumbrüche
            Zuletzt geändert von Titus; 03.07.2002, 14:15.
            *winks*
            Gilbert
            ------------------------------------------------
            Hilfe für eine Vielzahl von Problemen!!!
            http://www.1st-rootserver.de/

            Kommentar


            • #7
              ...bei deinem code dann:

              if (strlen(trim($Vorname)) > 0 && strl...

              ps:
              dat 'trim()' macht nich mehr als führende und abschliessende leerzeichen, tabulatoren etc. zu entfernen, und wenn dein superschlauer user dann einfach nur solche eingegeben hat, um die nervigen "...es sind nicht alle felder ausgefüllt" -sachen zu umgehen, wirst du es damit merken (bzw. dein script)
              Zuletzt geändert von slarti; 03.07.2002, 13:39.
              eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùû䶳Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

              Kommentar


              • #8
                Hab die Zeile jetzt so angepasst:
                PHP-Code:
                if (strlen(trim($Vorname)) > 1
                  
                && strlen(trim($Nachname)) > 1
                  
                && strlen(trim($Strasse)) > 1
                  
                && strlen(trim($PLZ)) > 4
                  
                && strlen(trim($Ort)) > 2
                  
                && strlen(trim($beMail)) > 4

                Und jetzt sind ein paar mehr Leerzeichen oder andere Zeichen von nöten um das Script zum Weiter zubewegen.

                edit: Zeilenumbrüche
                Zuletzt geändert von Titus; 03.07.2002, 14:14.
                *winks*
                Gilbert
                ------------------------------------------------
                Hilfe für eine Vielzahl von Problemen!!!
                http://www.1st-rootserver.de/

                Kommentar


                • #9
                  Re: Merkwürdiger Fehler!!!

                  Mal zurück zur ursprünglichen Frage ...
                  Original geschrieben von Wotan
                  Dennoch ist es jetzt ein zweites mal vorgekommen das Datensätze eingetragen wurden wo einige Wichtige Angaben fehlen. Wie kommt es dazu?
                  Jede Spalte einer Tabelle (Ausnahmen: auto_increment-Felder, Timestamps) hat einen Default-Wert (und sei es ein Leerstring, eine 0 bzw. NULL). Wird bei einem INSERT für diese Spalte kein Wert angegeben, so wird der Default-Wert benutzt.

                  Vor dem Eintragen in die Datenbank musst du also in PHP überprüfen, ob etwas in deine "wichtigen" Felder eingetragen wurde; wenn nicht zeigst du das Forumlar einfach noch mal an - und füllst die Felder in denen schon etwas eingegeben war, schon mal aus.

                  Beispiel:

                  PHP-Code:
                  <?php
                  if (count($_POST))
                  {
                    if (
                  $fehler = !$_POST['name'])
                      echo 
                  'Kein Name angegeben!<br>';
                    else
                      
                  mysql_query ("insert into Leute (name, email) values('"
                        
                  mysql_escape_string($_POST['name']. "','"
                        
                  mysql_escape_string($_POST['email']. "')"
                      
                  );
                        
                  }
                  if (
                  $fehler || !count($_POST))
                  {
                  ?>
                  <form method="post" action="<?=basename($PHPSELF)?>">
                  Name*: <input type="text" name="name"
                    value="<?=htmlentities($_POST['name'])?>"><br>
                  eMail: <input type="text" name="email"
                    value="<?=htmlentities($_POST['email'])?>">
                  <?php ?>
                  Zuletzt geändert von Titus; 03.07.2002, 14:15.
                  mein Sport: mein Frühstück: meine Arbeit:

                  Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                  Kommentar


                  • #10
                    An dieser Stelle des Script werden ja noch keine Eintragungen in die Datenbank gemacht.
                    Die Eintragungen werden erst viel später gemacht. Das ist die erste Seite von 4 Seiten.
                    *winks*
                    Gilbert
                    ------------------------------------------------
                    Hilfe für eine Vielzahl von Problemen!!!
                    http://www.1st-rootserver.de/

                    Kommentar


                    • #11
                      ...für die e-mail adresse kannst auch das nehmen:

                      &&!ereg( "^([0-9,a-z,A-Z,.,_,-]+)[@]([0-9,a-z,A-Z,.,_,-]+)[.]([0-9,a-z,A-Z]{2,})$", $beMail)

                      ...dat ganze ohne gewähr
                      eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùû䶳Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

                      Kommentar


                      • #12
                        Wie mach ich aber jetzt das:
                        PHP-Code:
                        if (ereg($beMail)) // Zeile 40
                            
                        {
                            
                        $error6 "<$ffa color='red'>
                                        Sie haben Ihre eMail-Adresse nicht angegeben!<
                        $ffe>";
                            } 
                        habe jetzt schon folgendes probiert

                        if (ereg($beMail) < 0) geht nicht
                        if (ereg($beMail) < 1) geht nicht
                        kommt immer folgende Fehlermeldung:
                        Warning: Wrong parameter count for ereg() in /httpd/www.otterzentrum.de/www/ottershop/text/daten.php on line 40
                        *winks*
                        Gilbert
                        ------------------------------------------------
                        Hilfe für eine Vielzahl von Problemen!!!
                        http://www.1st-rootserver.de/

                        Kommentar


                        • #13
                          das hab ich mir gedacht...
                          dann probier mal den, der sollte funzen:

                          &&ereg( "^([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_\,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $user[emailabs])

                          anstelle von:

                          && strlen(trim($beMail)) > 4

                          ...in deiner gigantischen if-anweisung.
                          aber wie immer: ohne gewähr...
                          eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùû䶳Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

                          Kommentar


                          • #14
                            Es geht jetzt nicht um die Fehlerprüfung, sondern um die Fehlerausgabe.

                            PHP-Code:
                            if (ereg($beMail) == FALSE// Zeile 40
                                
                            {
                                
                            $error6 "<$ffa color='red'>
                                            Sie haben Ihre eMail-Adresse nicht angegeben!<
                            $ffe>";
                                } 
                            Bringt immer noch die Fehlermeldung:
                            Wrong parameter count for ereg()
                            Zuletzt geändert von Wotan; 03.07.2002, 15:30.
                            *winks*
                            Gilbert
                            ------------------------------------------------
                            Hilfe für eine Vielzahl von Problemen!!!
                            http://www.1st-rootserver.de/

                            Kommentar


                            • #15
                              ...gibt ja bloß zwei möglichkeiten:
                              entweder if(ereg("...",$beMail)) oder if(!ereg("...",$beMail)), könnte man mal drüber abstimmen,
                              aber ich würde sagen, 2. variante

                              dieses superübersichtliche ereg(...) gibt true zurück, falls es halbwegs sowas wie ne e-mail adresse gefunden hat.

                              also:

                              PHP-Code:
                              if(!ereg"^([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_\,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$"$beMail))
                              {
                              ...
                              fehlermeldung

                              ...jetzt deutlich?
                              eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùû䶳Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

                              Kommentar

                              Lädt...
                              X