3 Fragen bezüglich PHP + MySQL

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

  • #16
    Hallo,

    ja logisch betrachtet - wie hättest du es sonst getan - ich meine wo willst du den bereits vorhandenen namen herbekommen?

    gruß
    Robert

    Kommentar


    • #17
      Zu der ersten Sache

      Für das überprüfen auf Inhalt kannst du auch ruhig empty() benutzen. Wie du es benutzt kannst du hier sehen

      --> http://de2.php.net/empty

      Zu der Sache mit den doppelten Namen würde ich einfach mal nen query schreiben wie "Select name from table" und würde das ganze dann einfach mit einem mysql_affected_rows abfragen. Das liefert die die menge der betroffenen Datensätze.

      Verwende aber bei der Select Abfrage niemals * aus Performence Gründen!

      --> http://www.selfphp.info/funktionsref...ected_rows.php


      Die switch sache würde ich vieleicht überdenken und einfach abfragen ob das Formular abgeschickt wurde.

      Gruss Sebastian

      Kommentar


      • #18
        Okay danke.

        Kommentar


        • #19
          Also ich habe das jetzt mal alles geändert. Das einzigste was noch nicht richtig klappt ist wenn ein
          Nickname oder eMail-Adresse existiert.
          Wenn der Nickname schon existiert erscheinen folgende Meldungen:
          Nickname existiert bereits!
          eMail-Adresse existiert bereits!


          Wenn die eMail-Adresse existiert erscheint folgende Meldung:
          eMail-Adresse existiert bereits!

          Zusätzlich wird der User registriert wenn nur die eMail-Adresse falsch ist, was natürlich nicht sein sollte.

          Hier mal der Code:
          PHP-Code:
          <?php
          if (!isset ($_SESSION["user_id"]))
          {
            if (
          == $_GET['action'])
            {

          $Datum date("d.m.Y");
          $Uhrzeit date("H:i:s");

          // Member
          $benutzer[0]["Nickname"] = $_POST['nickname'];
          $benutzer[0]["Member_Passwort"] = $_POST['passwort'];

          // Profil
          $benutzer[0]["eMail"] = $_POST['email'];
          $benutzer[0]["Homepage"] = $_POST['homepage'];

          // Nachrichten
          $benutzer[0]["Titel"] = "Willkommen";
          $benutzer[0]["Inhalt"] = "test";

          # Datenbankverbindung

          if($scode_form == $scode_ses)
            {
            while (list (
          $key$value) = each ($benutzer))
            {
            
          // SQL-Anweisung erstellen
            
          $sql "INSERT INTO ".
              
          "Member (Nickname, Passwort) ".
            
          "VALUES ('".$value["Nickname"]."', '".
                                 
          $value["Passwort"]."')";
            
          mysql_query ($sql);

            if (
          mysql_affected_rows ($connectionid) < 0)
            {
              echo 
          '<div class="content_error">
              <div class="ü_text_black" align="left">Nickname existiert bereits!</div></div>'
          ;
            }

            
          $sql "INSERT INTO ".
              
          "Profil (eMail, Homepage) ".
            
          "VALUES ('".$value["eMail"]."', '".
                                 
          $value["Homepage"]."')";
            
          mysql_query ($sql);

            if (
          mysql_affected_rows ($connectionid) < 0)
            {
              echo 
          '<div class="content_error">
              <div class="ü_text_black" align="left">eMail-Adresse existiert bereits!</div></div>'
          ;
            }

            
          $sql "INSERT INTO ".
              
          "Nachrichten (Titel, Inhalt) ".
            
          "VALUES ('".$value["Titel"]."', '".
                                 
          $value["Inhalt"]."')";
            
          mysql_query ($sql);
            }

            if (
          mysql_affected_rows ($connectionid) > 0)
            {
              echo 
          "<div class=\"content_okay\"><div class=\"ü_text_black\" align=\"center\">
              Danke für deine Registrierung.</div></div>"
          ;
            }
          }
          }
          ?>
          # Formular

          Kommentar


          • #20
            if (...) {
            echo "Nickname existiert bereits!";
            } else {
            // ...
            if (...) {
            echo "Emailadresse existiert bereits!";
            } else {
            // Daten speichern
            }
            }


            Grundwissen.

            Kommentar


            • #21
              Original geschrieben von onemorenerd
              if (...) {
              echo "Nickname existiert bereits!";
              } else {
              // ...
              if (...) {
              echo "Emailadresse existiert bereits!";
              } else {
              // Daten speichern
              }
              }
              Das habe ich schon versucht, aber dann erscheint immer diese Meldung (egal ob der Nick existiert oder nicht):
              Nickname existiert bereits!
              PHP-Code:
                // SQL-Anweisung erstellen
                
              $sql1 "INSERT INTO ".
                  
              "Member (Nickname, Passwort) ".
                
              "VALUES ('".$value["Nickname"]."', '".
                                     
              $value["Member_Passwort"]."')";


                if (
              mysql_affected_rows ($connectionid) < 0)
                {
                  echo 
              '<div class="content_error"><div class="ü_text_black" align="left">
              Nickname existiert bereits!</div></div>'
              ;
                } else {

                
              $sql2 "INSERT INTO ".
                  
              "Profil (eMail, Homepage) ".
                
              "VALUES ('".$value["eMail"]."', '".
                                     
              $value["Homepage"]."')";


                if (
              mysql_affected_rows ($connectionid) < 0)
                {
                  echo 
              '<div class="content_error"><div class="ü_text_black" align="left">
              eMail-Adresse existiert bereits!</div></div>'
              ;
                } else {

                
              $sql3 "INSERT INTO ".
                  
              "Nachrichten (Titel, Inhalt) ".
                
              "VALUES ('".$value["Titel"]."', '".
                                     
              $value["Inhalt"]."')";
                
              mysql_query ($sql1);
                
              mysql_query ($sql2);
                
              mysql_query ($sql3); } }
                }

                if (
              mysql_affected_rows ($connectionid) > 0)
                {
                  echo 
              "<div class=\"content_okay\"><div class=\"ü_text_black\" align=\"center\">
              Danke für deine Registrierung.</div></div>"
              ;
                } 

              Kommentar


              • #22
                Du prüfst eigentlich nicht, ob ein Nickname schon vorhanden ist sondern versuchst einfach ein INSERT.
                Ob das fehlschlägt, prüfst du mit mysql_affected_rows(). Allerdings kann das nur fehlschlagen, wenn die Spalte für den Nickname unique ist. Ist sie das?
                Woher kommt $connectionid?
                Funktioniert die Query überhaupt (echo $sql; und mysql_error())?

                Und mach dich mal mit mysql_real_escape_string() vertraut!

                Kommentar

                Lädt...
                X