Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem bei if mit } else {

Einklappen

Neue Werbung 2019

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

  • Problem bei if mit } else {

    Hi,
    ich habe gerade ein Problem
    ich will in einer Registrieren Seite einen Schutz einbauen das es jeden Benutzernamen nur 1 mal gibt.
    PHP-Code:
    while ($zeile mysql_fetch_array$db_ergMYSQL_ASSOC))
        {
    $usernamenzeile  =  $zeile['SM-S_User'];
        if (
    $username == $usernamenzeile)
        {
            echo 
    "FEHLER User existiert schon";
        } else {
        
        
    //Code zum einfügen in die Datenbank 
    Das Problem ist jetzt das die Fehlermeldung (echo "FEHLER User existiert schon"; )
    Angezeigt wird UND es in die Datenbank eingefügt wird.
    also ignoriert der mein else


  • #2
    Wie sieht den dein Query aus, da ist ja nur die Hälfte an Code dabei ...

    Kommentar


    • #3
      http://www.php.de/php-einsteiger/464...verwenden.html
      http://hallophp.de

      Kommentar


      • #4
        PHP-Code:
        $username trim($_POST['username']);
        $box trim($_POST['checkbox']);
        $pw trim($_POST['PW']);
        $email trim($_POST['email']);
        if(
        strlen($username) == 0){ //Überprüfung ob username forhanden
        } else {
            if(
        strlen($username) > 50){ //Überprüfung ob username zu lang
                
        echo "Benutzername zu lang <br>";
            } else {
                if(
        strlen($username) < 3){ //Überprüfung ob username zu kurtz
                    
        echo "Benutzername zu kurtz <br>";
                } else {
                    if(
        strlen ($box) < 1) {
                        echo 
        "Checkbox nicht aktiv <br>";
                    } else {
                        if(
        strlen ($pw) < 6) {
                            echo 
        "Passwort zu kurtz mindestens 6 Zeichen <br>";
                        } else {
                            require_once (
        'konfiguration.php');
                            
        $db_link mysql_connect (MYSQL_HOSTMYSQL_BENUTZERMYSQL_KENNWORT);
                            
                            
        // Nutzen von Datenbank - Name ist hinterlegt in
                            // Konstante MYSQL_DATENBANK
                            
        $db_sel mysql_select_dbMYSQL_DATENBANK )
                               or die(
        "Auswahl der Datenbank fehlgeschlagen");
                            
                            
        $sql "SELECT * FROM `SM-Styles`";
                            
        $db_erg mysql_query$sql );
                            if ( ! 
        $db_erg )
                            {
                              die(
        'Ungültige Abfrage: ' mysql_error());
                            }
                            while (
        $zeile mysql_fetch_array$db_ergMYSQL_ASSOC))
                            {
                                
        $usernamenzeile  =  $zeile['SM-S_User'];
                                if (
        $username == $usernamenzeile)
                                {
                                    echo 
        "FEHLER User existiert schon";
                                } else {
                                    
        $datei "indexdata/email.txt";
                                    
        $fp fopen($datei"r+");
                                    
        $old fread($fp,filesize($datei));
                                    
        rewind($fp);
                                    
        fputs($fp"$email \n $old");
                                    
        fclose($fp);
                                    
        $eintrag "INSERT INTO `SM-Styles` ( `SM-S_User` , `SM-S_PW` , `SM-S_Box` ) VALUES ('$username', '$pw', '$box')";
                                    
        $eintragen mysql_query($eintrag);
                                    
        $mailtext 'MAILTEXT';
                                    
                                    
        $empfaenger "$email"//Mailadresse
                                    
        $absender   "E-MAIL ADRESSE";
                                    
        $betreff    "BETREFF";
                                    
        $antwortan  "E-MAIL ADRESSE";
                                    
        mail$empfaenger,
                                          
        $betreff,
                                          
        $mailtext,
                                          
        "From: $absender\nReply-To: $antwortan");
                                    echo 
        "Mail wurde gesendet!";
                                }
                            }
                        }
                    }
                }
            }
        }
        ?> 
        Das ist er ist sogar in anderen Teilen aufgetreten
        bei der einlogg Seite

        PHP-Code:
        <?php
        $username 
        trim($_POST['username']);
        $pw trim($_POST['PW']);
        require_once (
        'konfiguration.php');
        $db_link mysql_connect (MYSQL_HOSTMYSQL_BENUTZERMYSQL_KENNWORT);

        // Nutzen von Datenbank - Name ist hinterlegt in
        // Konstante MYSQL_DATENBANK
        $db_sel mysql_select_dbMYSQL_DATENBANK )
           or die(
        "Auswahl der Datenbank fehlgeschlagen");

        $sql "SELECT * FROM `SM-Styles`";

        $db_erg mysql_query$sql );
        if ( ! 
        $db_erg )
        {
          die(
        'Ungültige Abfrage: ' mysql_error());
        }

        while (
        $zeile mysql_fetch_array$db_ergMYSQL_ASSOC))
        {
          if (
        $username == $zeile['SM-S_User'])
          {
              if (
        $pw == $zeile['SM-S_PW'])
            {
                echo 
        "<script type='text/javascript'>".
                    
        "window.location.replace('ZIELADRESSE');".
                    
        "</script>";
            } else {
                echo 
        "Passwort ist FALSCH";
            }
          } else {
              if (
        $username == 0)
            {
            } else {
                  echo 
        "User Existiert Nicht";
            }
          }
        }

        mysql_free_result$db_erg );
        ?>

        Kommentar


        • #5
          Irgendwie hat das Konzept einen Fehler...

          PHP-Code:
          $sql "SELECT * FROM `SM-Styles`";
                              
          $db_erg mysql_query$sql );
                              if ( ! 
          $db_erg )
                              {
                                die(
          'Ungültige Abfrage: ' mysql_error());
                              }
                              while (
          $zeile mysql_fetch_array$db_ergMYSQL_ASSOC))
                              {
                                  
          $usernamenzeile  =  $zeile['SM-S_User'];
                                  if (
          $username == $usernamenzeile)
                                  {
                                      echo 
          "FEHLER User existiert schon";
                                  } else { 
          Hier werden alle (ich nehme an User) aus der Tabelle SM-Styles gelesen und in der Schleife wird jeder extra durchgegangen.

          Wenn der Name aus der Datenbank nicht der aktuelle ist, wird der User eingetragen und eine E-Mail versendet.
          Wenn doch, wird der Fehler geschrieben.

          Das ganze passiert aber für jeden Eintrag in der Datenbank und deshalb treten beide Fälle ein.

          Offtopic: kurtz schaut etwas komisch aus
          [B]Kostenlose Domain inkl. E-Mail Adressen?[/B]
          [URL="http://domain4free.net"]http://domain4free.net[/URL]

          Kommentar


          • #6
            Es ist absolut unsinnig, alle Datensätze abzufragen, wenn du lediglich wissen willst, ob ein bestimmter Wert schon in der Datenbank steht.
            Mache eine Abfrage, die gezielt nach einem Datensatz sucht, in dem die entsprechende Spalte diesen Wert hat - und ziehe aus der Anzahl der Ergebniszeilen den logischen Schluss.
            (Wenn du jetzt gleich fragen willst, „und wie geht das?“ - dann schau bitte in ein Grundlagen-Tutorial.)


            Darüber hinaus ist dieses Abfragen-dann-Einfügen auch eher schlecht. Da kann dir nämlich ein anderer Prozess dazwischen kommen, und dann ist der gerade noch als nicht vergeben ermittelte Name doch schon vergeben, wenn du dann deinen neuen Datensatz einfügen willst.
            Deshalb macht man das sinnvoller so, dass man einen Unique Index auf die betreffende Spalte legt - der sorgt dafür, dass die Datenbank jeden Wert nur genau ein mal akzeptiert.
            Und dann macht man das INSERT einfach, ohne vorher groß zu prüfen; und wenn das einen Fehler gibt, dann fragt man ab, welchen - und kann dann, wenn es sich um eine Verletzung dieses Unique Index handelte, dem Nutzer eine entsprechende Fehlermeldung präsentieren.


            Und insgesamt sieht dein Code noch reichlich chaotisch aus - alle möglichen Bedingungen wild zusammengewürfelt und abenteuerlich verschachtelt, so als hättest du jede einzelne dann eingebaut, wenn sie dir eingefallen ist.
            Du solltest dir angewöhnen, erst mal den Ablauf eines Scriptes zu planen, bevor du anfängst wirklich Code zu schreiben. Das kann man auch bspw. erst mal auf einem Blatt Papier machen.

            Kommentar


            • #7
              Ok werds mal versuchen

              Kommentar


              • #8
                Im Query eine Bedingung einbauen dass er nur den User mit dem gewünschten Usernamen ausliest. Kommt nen Ergebnis zurück, existiert der User mit so einem Namen schon, kommt kein Ergebnis ist der Name frei ...

                Kommentar

                Lädt...
                X