Daten

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

  • Daten

    Hi!!

    Beim Versenden eines Formulars wird gecheckt ob der username schon vorhanden ist.
    -> wenn ja wird der User aufgefordert ein anderes einzugeben u. die Daten werden nochmals gecheckt u. dann sollten diese an die DB geschickt werden..

    Problem 1:
    Es wird nur eine leere Seite ausgegeben beim 2 Versuch.
    Kann mir jemand sagen warum u. hat vielleicht ne Lösung!?

    Problem 2:
    Problem die daten werden versteckt übergeben wobei die Varibable $birthday beim erstenmal die Werte aus 3 Dropdown-Feldern erhält. Beim zweiten Durchlauf des Checks wo die Daten dann versteckt übergeben werden besteht der Wert der $birthday Varibalen allerdings nur noch aus einem Wert des versteckten Felds "user_date_of_birth". In die DB wird folglich nur " - - " eingetragen.

    Wer kann weiterhelfen (besonders bei Problem 1)!?

    VIELEN DANK
    Jens


    --------------------------------------------------------------------------------
    Dieser Post wurde am 01.04.2006 um
    [/PHP]
    Zuletzt geändert von Clubingman78; 02.04.2006, 13:28.

  • #2
    http://php-resource.de/forum/showthr...threadid=50454

    Kommentar


    • #3
      Das heißt, dass du den Code umbrechen sollst!

      Gruß
      icecream
      icedcream.de Webdesign Regensburg

      Kommentar


      • #4
        Sorry, hier nochmal die kompaktere Form:
        Nochmals DANKE

        Dieses file (register_check.php) soll so oft durchlaufen werden bis ein Usernamen eingetragen wurde der noch nicht in der DB vorhanden ist.

        PHP-Code:
        ...
        <?
        if (isset($_POST['submit']))      //prüft ob auf submit geklickt wurde    
           {    
              //deklarieren der Variablen
                $username=$_POS['user_username_id'];                                              
                $birthday=$_POST['ageyear'] .'-'. $_POST['agemonth'] .'-'. $_POST['ageday'];
                $sql=pg_query("SELECT user_username_id FROM tbl_users WHERE user_username_id='".$username."'");
                  
                if (pg_fetch_object($sql)!=0) //überprüft ob der Username bereits in der DB vorhanden ist            
                     {
                        ?>
          //wenn ja Aufforderung zur Eingabe eines anderen Usernamen      
                        <table width="59%">
          //bei click auf "Register" wird wieder dieses file hier aufgerufen zur Datenüberprüfung
                        <form name="registration2" action ="register_check.php" method="post">
                        <tr>
                            <td width="32%">This username does already exist!              
                            </td>
                            <td width="68%">
                            <input name="user_username_id" type="text" id="user_username_id" value="" size="50"></td>
                        </tr>
          //Bereits eingegebenes Geburtsdatum wird versteck ausgegeben
                        <input name="user_date_of_birth" type="hidden" id="user_date_of_birth" value="<? echo $birthday ?>" size="50">
                         <tr>
                         <td><input name="submit" type="submit" id="submit" value="Register"></td>
                        </tr>
                        </form>
                        <?
                    }
                
            else         //wenn Username noch nicht in DB vorhanden werden die Daten an die DB geschickt
                {
                    pg_query("INSERT INTO tbl_users (user_username_id, user_date_of_birth) 
                    VALUES ( '$username', '$birthday')");        
                    
                    echo "Data sent";
                }
            }
        ?>
        ...
        Zuletzt geändert von Clubingman78; 02.04.2006, 13:51.

        Kommentar


        • #5
          Hat jemand ne Idee wie ich das Problem lösen kann???

          Kommentar


          • #6
            Code umbrechen, alten und neuen!

            Kommentar


            • #7
              So habe jetzt nochmal versucht den Code soweit wie möglich zu reduzieren..

              Hat jetzt jemand einen Vorschlag!?

              Kommentar


              • #8
                PHP-Code:
                $username=$_POS['user_username_id']; 
                Da fehlt ein T.
                Außerdem ist dein Formular anfällig für SQL-Injection. Benutze pg_escape_string().
                Zuletzt geändert von onemorenerd; 02.04.2006, 14:22.

                Kommentar


                • #9
                  Ok, sorry das T muss ich wohl bei der Umbrechaktion versehentlich gelöscht haben.

                  Das mit der SQL-Injection werde ich noch angehen sobald die Daten übermittlung generell funktioniert.

                  Kommentar


                  • #10
                    Setze var_dump($_POST); vor das allererste if, um festzustellen, was das Formular übergibt.

                    Baue die SQL-Queries zunächst als String zusammen (inkl. der variablen Teile) und lass dir diesen zur Kontrolle ausgeben.

                    Benutze pg_last_error().

                    Kommentar


                    • #11
                      Ok, das mit var_dump() hab ich ausprobiert. Funktioniert beim ersten u. zweiten druchlauf.

                      Was ich allerdings noch festgestellt habe ist, wenn beim ALLERERSTEN Versuch ein falscher username eingegeben wurde u. ich dann einen anderen Usernamen eintrage werden die daten meistens an die DB geschickt. Folglich klappt die query oder!?

                      Wie gesagt das funzt nur beim aller erstenmal. Bei weiteren Durchläufen nich mehr.


                      Will das dennoch checken weiss aber nich wie diese andere query aussehen soll!?

                      Kommentar


                      • #12
                        HI!

                        Also das Formular wird definitiv übergeben. Es wird ein array ausgegeben mit den eingegebenen Werten

                        Allerdings reagiert es nicht auf die Anweisung else!?

                        Habe einfach mal die INSERT query gelöscht u. nur mal einen echo Befehl eingetragen siehe hier

                        PHP-Code:
                        else         
                                {
                                    echo 
                        ' DATA send'
                        }



                        Trotzdem wird dieses nicht angezeigt, das array aber schon.

                        Versteh ich echt nich??? - VERZWEIFLUNG -

                        Kommentar

                        Lädt...
                        X