Merkwürdiger Fehler!!!

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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?
    Attached Files
    *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

    Comment


    • #3
      JavaScript wollte ich aber eigentlich vermeiden.
      Last edited by Wotan; 02-07-2002, 14:06.
      *winks*
      Gilbert
      ------------------------------------------------
      Hilfe für eine Vielzahl von Problemen!!!
      http://www.1st-rootserver.de/

      Comment


      • #4
        das ist JavaScript....

        Comment


        • #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\";");

          Comment


          • #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
            Last edited by Titus; 03-07-2002, 14:15.
            *winks*
            Gilbert
            ------------------------------------------------
            Hilfe für eine Vielzahl von Problemen!!!
            http://www.1st-rootserver.de/

            Comment


            • #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)
              Last edited by slarti; 03-07-2002, 13:39.
              eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùûä¶³Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

              Comment


              • #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
                Last edited by Titus; 03-07-2002, 14:14.
                *winks*
                Gilbert
                ------------------------------------------------
                Hilfe für eine Vielzahl von Problemen!!!
                http://www.1st-rootserver.de/

                Comment


                • #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 ?>
                  Last edited by 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.

                  Comment


                  • #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/

                    Comment


                    • #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\";");

                      Comment


                      • #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/

                        Comment


                        • #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\";");

                          Comment


                          • #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()
                            Last edited by Wotan; 03-07-2002, 15:30.
                            *winks*
                            Gilbert
                            ------------------------------------------------
                            Hilfe für eine Vielzahl von Problemen!!!
                            http://www.1st-rootserver.de/

                            Comment


                            • #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\";");

                              Comment

                              Working...
                              X