Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] problem keine ausgabe

Einklappen

Neue Werbung 2019

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

  • [Erledigt] problem keine ausgabe

    jops und da bin ich schon wieder .... ich muss sagen nachdem ich mir alles zum hundersten mal durchgelesen hab hat auch endlich mal alles so funktioniert wie ich es wollte ... danke nochmal an alle die hier so fleißig antwort geben die muss man wirklich mal loben ... so ich hab aber wieder ein problem ich hab euch hier mal nen code vorbereitet :
    PHP-Code:
      else if(isset($_GET['registriert']))
       {
     
    $u_rname    $_POST['u_rname'];
     
    $u_pass     $_POST['u_pass'];
     
    $e_mail     $_POST['e_mail'];
     
    $u_plz      $_POST['u_plz'];
     
    $u_ort      $_POST['u_ort'];
     
    $u_land     $_POST['u_land'];
     
    $u_geschlecht     $_POST['u_geschlecht'];
     
    $u_gtag     $_POST['u_gtag'];
     
    $u_gmonat     $_POST['u_gmonat'];
     
    $u_gjahr     $_POST['u_gjahr'];
     
    $u_str     $_POST['u_str'];
     
    $u_name     $_POST['u_name'];
     

        
        
    $wasfehlt "";
        
    $allesda 0;
        if(isset(
    $u_name) or isset($e_mail) or isset($e_mail))
    {
         if(empty(
    $u_rname))
        {
         
    $wasfehlt "<div class='content'>Bitte gebe deinen richtigen Namen ein.<a href='index.php?reg_next'>zur&uuml;ck</a></div>";
        }
         if(empty(
    $e_mail))
        {
        
    $wasfehlt "<div class='content'>Bitte gebe deine E-Mail Adresse ein.<a href='index.php?reg_next'>zur&uuml;ck</a></div>";
        }
         if(empty(
    $u_plz))
        {
        
    $wasfehlt "<div class='content'>Bitte gebe deine PLZ an.<a href='index.php?reg_next'>zur&uuml;ck</a></div>";
        }
         if(empty(
    $u_ort))
        {
        
    $wasfehlt "<div class='content'>Bitte gebe deinen Wohnort an.<a href='index.php?reg_next'>zur&uuml;ck</a>".$u_rname."<br>".$_POST['u_name']."<br>".$e_mail."<br>".$u_str."<br>".$u_plz." ".$u_ort."<br>".$u_land."<br>".$u_geschlecht."<br>".$u_gtag.".".$u_gmonat.".".$u_gjahr."<br>".$u_pass."</div>";
        }
         if(empty(
    $u_str))
        {
        
    $wasfehlt "<div class='content'>Bitte gebe deine Stra&szlig;e an.<a href='index.php?reg_next'>zur&uuml;ck</a></div>";
        }
    }
         if(
    $allesda)
        {
         
    $sql    "SELECT count(u_name) as num FROM u_users WHERE u_name = '".$u_name."';";
         
    $erg    mysql_query($sql) or die("Es trat folgender Fehler auf: ".mysql_error());
         
    $num    mysql_result($ergnum);
         if(
    $num == $u_name)
          {
           echo 
    '<div class="content">Der Username existiert bereits. W&auml;hle bitte einen anderen Usernamen. <a href="index.php?reg_next">zur&uuml;ck</a></div>';
          }
         else
          {
           
    $sql "INSERT INTO u_users(u_id, u_name, u_pass, e_mail, u_plz, u_ort, u_land, u_geschlecht, u_gtag, u_gmonat, u_gjahr, u_str, u_rnam) VALUES ('', '$u_name', md5('$u_pass'), '$e_mail', '$u_plz', '$u_ort', '$u_land', '$u_geschlecht', '$u_gtag', '$u_gmonat', '$u_gjahr', '$u_str', '$u_rname')";
           
    $erg mysql_query($sql) or die("Es trat folgender Fehler auf: ".mysql_error());
           echo 
    "<div class='content'>Registrierung wurde erfolgreich durchgef&uuml;hrt<br><br>
           
    $u_name, wurde erfolgreich registriert!<br>Du kannst dich nun einloggen.<br>
           <a href='index.php'>zur&uuml;ck zur Startseite</a><br></div>"
    ;

           
    $to        $e_mail;
           
    $subject    "Registrierung auf www.cora-planet.de";
           
    $msg        "Herzlich Willkommen ".$u_name." auf www.cora-planet.de \nDu erh&auml;st in dieser Mail deine pers&ouml;nlichen Zugangsdaten.\n Username: ".$u_name."\nPasswort: ".$u_pass."\n\n Bitte hebe die Zugangsdaten gut auf und gebe diese niemals an Dritte weiter. Die Mitarbeiter von www.cora-planet.de und www.flychat.de werden dich niemals nach deinem Passwort frage.\n\nBitte beachte, dass es sich hierbei um eine vom System automatisch generierte E-Mail handelt. Bitte Antworte nicht auf diese Mail.";
           
    $headers    "From: system@cora-planet.de\nReply-To: sendolight@aol.com";
           
    $config    "-fkontakt@cora-planet.de";
           
    mail("$to""$subject""$msg""$headers""$config");

           
    $to        "kontakt@cora-planet.de";
           
    $subject    "Registrierung von ".$u_name." auf www.cora-planet.de";
           
    $msg        $u_name." hat isch auf www.cora-planet.de registriert.\n Diese Person hat bereits die Welcome Mail mit den pers&ouml;nlichen Zugangsdaten erhalten.\n\nBitte beachte, dass es sich hierbei um eine vom System automatisch generierte E-Mail handelt. Bitte antworte nicht auf diese Mail.";
           
    $headers    "From: ".$e_mail;
           
    $config    "-fkontakt@cora-planet.de";
           
    mail("$to""$subject""$msg""$headers""$config");
          }
        }
        else { echo 
    $wasfehlt; }
       } 
    da soll geprüft werden ob der nickname mit dem man sich registrieren will schon vergeben is oder net wenn net soll kommen dat der username schon besetzt ist und er sich nen anderen wählen soll ansonsten soll kommen dat die registrierung erfolgreich war und eine mail wird gleichzeitig auch versendet... bis gerade eben hatte ich ein problem mit der übergabe der post variablen was aber schon gelöst ist ... aber jetzt bekomme ich irgendwie null ausgaben .... obwohl alle variablen richtig übergeben werden ... hatte mir dazu schon für jede variable ne extra ausgabe gemacht ... und da hat er mir brav alles reingeschrieben nur so gehts iwie net ich komm aber net dahinter warum?? auf meiner homepage gehts komischerweise ... bitte helft mir bin hier schon am verzweifeln .... greets to all


  • #2
    Hi Coraplanet,

    geh das ganze doch mal Schritt für Schritt an: in welchem if-Zweig landest du wann? (einfach mal ein paar echos als Debug-Ausgaben reinmachen).

    Ich hab's jetzt nur kurz überflogen und mir ist schleierhaft wie du da jemals an die Stelle kommst an der dann der Username überprüft wird - $allesda wird mit 0 initialisiert und dabei bleibts dann auch.

    Die Zeile if($num == $u_name) ist auch komisch - in $num steht eine Zahl in $u_name ein String... das kann nur wahr werden wenn sich einer deiner User z.B. "1" nennt

    Als Tipp: lehn dich mal zurück und denk das nochmal logisch durch. Was willst du prüfen und wie muss dann der Code dafür aussehen.


    Und: Satzzeichen sind eine der tollsten Erfindungen unserer Zivilisation
    Create your own quiz show.

    Kommentar


    • #3
      $allesda=0; ersatzlos streichen.
      Alle $wasfehlt = "<div... in $wasfehlt .= "<div... umwandeln.
      Aus if($allesda) if(empty($wasfehlt)) machen.
      PHP-Code:
      $sql    "SELECT count(u_name) as num FROM u_users WHERE u_name = '".mysql_real_escape_string($u_name)."'"
      Kein Semi-Colon am Ende des SQL Statements.
      mysql_real_escape_string ist wichtig, über sql injections nachlesen und dann auch das zweite $sql = berichtigen.
      Abfragen und dann INSERT ist nicht atomar, das Verfahren ist also anfällig gegen race-conditions. Besser ist es, einen unique index für das Feld zu erstellen. Dann trägt MySQL keine zwei gleichen Datensätze ein.



      Kommentar


      • #4
        Das ist falsch !
        $num = true oder false,
        $u_name = string oder leer, die können also nicht gleich sein,

        PHP-Code:
             $sql    "SELECT count(u_name) as num FROM u_users WHERE u_name = '".$u_name."';"
             
        $erg    mysql_query($sql) or die("Es trat folgender Fehler auf: ".mysql_error()); 
             
        $num    mysql_result($ergnum); 
             if(
        $num == $u_name
              { 
               echo 
        '<div class="content">Der Username existiert bereits. W&auml;hle bitte einen anderen Usernamen. <a href="index.php?reg_next">zur&uuml;ck</a></div>'
              } 
        PHP-Code:
             $sql    "SELECT count(u_name) as num FROM u_users WHERE u_name = '".$u_name."';"
             
        $erg    mysql_query($sql) or die("Es trat folgender Fehler auf: ".mysql_error()); 
             
        $daten  mysql_fetch_assoc($erg);   // DATEN HOLEN 
             
        if($daten['u_name'] == $u_name)  // USEREINGABE MIT DATENBANK VERGLEICHEN
              

               echo 
        '<div class="content">Der Username existiert bereits. W&auml;hle bitte einen anderen Usernamen. <a href="index.php?reg_next">zur&uuml;ck</a></div>'
              } 
        so musste es funtionieren !

        Kommentar


        • #5
          ja ok die abfage $num == $u_name is klar ich hab da wohl net ganz aufgepasst sorry aber ich werde mir eure lösungsvorschläge nochmals durchlesen und das ganze nochmals komplett neu durchdenken .... ich glaube ich weiß schon was falsch ist ich probiers nur eben schnell aus und melde mich wieder danke schonmal ...

          mfg

          Kommentar


          • #6
            so problem ist gelöst ich habs mir nochmal neu überlegt und den code ganz neu aufgebaus der sieht jetzt so aus

            PHP-Code:
             $u_rname    $_POST['u_rname'];
             
            $u_pass     $_POST['u_pass'];
             
            $e_mail     $_POST['e_mail'];
             
            $u_plz      $_POST['u_plz'];
             
            $u_ort      $_POST['u_ort'];
             
            $u_land     $_POST['u_land'];
             
            $u_geschlecht     $_POST['u_geschlecht'];
             
            $u_gtag     $_POST['u_gtag'];
             
            $u_gmonat     $_POST['u_gmonat'];
             
            $u_gjahr     $_POST['u_gjahr'];
             
            $u_str     $_POST['u_str'];
             
            $u_name     $_POST['u_name'];
             
             
            $sql "SELECT u_name FROM u_users WHERE u_name = '".$u_name."';";
             
            $erg mysql_query($sql) or die("Es trat folgender Fehler auf: ".mysql_error());
             
            $row mysql_fetch_object($erg);

              if(empty(
            $u_rname))
                {
                 echo 
            "<div class='content'>Bitte gebe deinen Nciknamen an.</div>";
                }
               else if(
            $row->u_name == $u_name)
                {
                 echo 
            "<div class='content'>Der Username ".$u_name." existiert bereits.</div>";
                }
               else{

                
            $sql "INSERT INTO u_users (u_id, u_name, u_pass, e_mail, u_plz, u_ort, u_land, u_geschlecht, u_gtag, u_gmonat, u_gjahr, u_str, u_rname) VALUES ('', '$u_name', md5('$u_pass'), '$e_mail', '$u_plz', '$u_ort', '$u_land', '$u_geschlecht', '$u_gtag', '$u_gmonat', '$u_gjahr', '$u_str', '$u_rname')";
                
            $erg mysql_query($sql) or die("Es trat folgender Fehler auf: ".mysql_error());}
            //       $to        = $e_mail;
            //       $subject    = "Registrierung auf www.cora-planet.de";
            //       $msg        = "Herzlich Willkommen ".$u_name." auf www.cora-planet.de \nDu erh&auml;st in dieser Mail deine pers&ouml;nlichen Zugangsdaten.\n Username: ".$u_name."\nPasswort: ".$u_pass."\n\n Bitte hebe die Zugangsdaten gut auf und gebe diese niemals an Dritte weiter. Die Mitarbeiter von www.cora-planet.de und www.flychat.de werden dich niemals nach deinem Passwort frage.\n\nBitte beachte, dass es sich hierbei um eine vom System automatisch generierte E-Mail handelt. Bitte Antworte nicht auf diese Mail.";
            //       $headers    = "From: system@cora-planet.de\nReply-To: sendolight@aol.com";
            //       $config    = "-fkontakt@cora-planet.de";
            //       mail("$to", "$subject", "$msg", "$headers", "$config");
            //
            //       $to        = "kontakt@cora-planet.de";
            //       $subject    = "Registrierung von ".$u_name." auf www.cora-planet.de";
            //       $msg        = $u_name." hat isch auf www.cora-planet.de registriert.\n Diese Person hat bereits die Welcome Mail mit den pers&ouml;nlichen Zugangsdaten erhalten.\n\nBitte beachte, dass es sich hierbei um eine vom System automatisch generierte E-Mail handelt. Bitte antworte nicht auf diese Mail.";
            //       $headers    = "From: ".$e_mail;
            //       $config    = "-fkontakt@cora-planet.de";
            //       mail("$to", "$subject", "$msg", "$headers", "$config");}

            die mail funktion ist auskommentiert da diese bei mir lokal nur fehlermeldungen gibt ... die bekomm ich lokal net zum laufen (was aber weiter nicht so schlimm ist da sie ja auf dem hosting-server läuft) so jetzt muss ich nur noch die abfragen für die anderen felder machen wenn einer die versucht leer zu lassen und dann läuft das skript wie es soll

            trotzdem nochmals danke für eure hilfe und noch ein schönes wochenende euch allen

            mfg

            Kommentar


            • #7
              Kannst du bitte sagen,
              Wieso du die daten als Object holst staat Array!

              das ist eine neugierfrage, da ich lernen möchte !

              Kommentar


              • #8
                ich hatte vor kurzem auch erst erfahrungen mit php und mysql gesammelt und da ich nicht wusste wie ich daten aus einer mysql datenbank wieder ausgeben lasse hab ich mir was durchgelesen (wo und was kann ich dir jetzt leider nicht mehr sagen) aber da wurde beschrieben mit

                PHP-Code:
                $row mysql_fetch_object(...) 
                und die ausgabe dann mit

                PHP-Code:
                $row->[spaltenname
                und da es bis jetzt eigentlich immer so funktioniert hat ... hab ich mich dadran gewöhnt ...hab aber auch schon mit arrays probiert ist meines erachtens der selbe aufwand ... aber funktioniert (mit ner anderen schreibweise) genauso gut

                mfg

                Kommentar


                • #9
                  Danke !

                  weil ich das vorher nie im einstatz gesehen habe,
                  es ist für OOP-Progremmirer gedacht glaube ich !

                  Kommentar


                  • #10
                    Ja richtig im Prinzip ist das für die OOP gedacht. Aber ich habe das auch schon früher gesehen als OOP in PHP noch nicht so stark vertreten war! Falsch ist es nicht aber normalerweise mysql_fetch_array oder mysql_fetch_assoc
                    Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                    http://www.lit-web.de

                    Kommentar


                    • #11
                      wenn wir schonmal gerade bei mysql_fetch_... sind ... wann verwende ich denn am besten was??

                      bin ja auch noch "neuling"

                      Kommentar


                      • #12
                        So wie ich es mir angeeignet habe nimmst du mysql_fetch_array wenn du mehrere Datensätze aus einer Tabelle raus lesen willst und mysql_fetch_assoc wenn du nur einen haben willst!
                        Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                        http://www.lit-web.de

                        Kommentar


                        • #13
                          Ob fetch_array oder fetch_assoc hat doch nichts mit der Anzahl an Datensätzen zu tun.
                          Wenn Du
                          Code:
                          SELECT x,y,z FROM tbl
                          hast,
                          liefert mysql_fetch_row() Felder der Art (1=>'...', 2=>'...', 3=>'...')
                          liefert mysql_fetch_assoc() Felder der Art('x'=>'...', 'y'=>'...', 'z'=>'...')
                          liefert mysql_fetch_array() Felder der Art(1=>'...','x'=>'...', 2=>'...', 'y'=>'...', 3=>'...', 'z'=>'...')
                          liefert mysql_fetch_array(, MYSQL_BOTH) das gleiche wie mysql_fetch_array()
                          liefert mysql_fetch_array(, MYSQL_ASSOC) das gleiche wie mysql_fetch_assoc()
                          liefert mysql_fetch_array(, MYSQL_NUM) das gleiche wie mysql_fetch_row()

                          Persönlich bevorzuge ich mysql_fetch_array($result, MYSQL_ASSOC)

                          Kommentar

                          Lädt...
                          X