david: fragen zu tabels in phpmyadmin

hallo

da ich im letzten php test kläglich versagt hab muss ich jetzt üben...
so.
ich will ein php file machen dass mir von einem formular die einträge
password, passwor_re, username in eine db eintragt.
und ein php file das diese abfragt und bei true dann auf ne andere site weiterleitet...

ich versteh nicht was die möglichkeiten bei der datenbank bringen:
null: null oder notnull
und
attribute: unsigned oder unsigned zerofill

bitte um hilfe
danke

  1. Hi,

    null: null oder notnull

    Nehmen wir als Beispiel mal eine String-Spalte, da ist das am besten zu erklären: Eine Datenbank unterscheidet gewissenmaßen zwischen 3 Zuständen:

    1. Feld enthält irgendeine Zeichenfolge, z.B. "qwertz"
    2. Feld enthält eine leere Zeichenfolge, wurde aber befüllt ("")
    3. Feld wurde überhaupt nicht befüllt (NULL)
      Sinnvoll ist das z.B. um Semantik dahinter zu legen: "" heißt, der Kunde hat kein Telefon, NULL hingegen heißt, wir haben ihn noch nicht danach gefragt.
      Mittels NULL und NOT NULL schreibst du vor, ob eine Spalte ein Pflichtfeld ist (NOT NULL, d.h. es MUSS was drinstehen) oder ob sie optional ist (NULL).

    attribute: unsigned oder unsigned zerofill

    das müsste ich selbst nachschlagen...
    MfG
    Rouven

    --
    -------------------
    ie:| fl:| br:> va:| ls:& fo:) rl:( n4:{ ss:) de:] js:| ch:? mo:} zu:|
    1. ...aber weil ich ja ein netter Mensch bin

      attribute: unsigned oder unsigned zerofill
      das müsste ich selbst nachschlagen...

      1. unsigned: der numerische Datentyp wird mit einem Vorzeichen versehen, vereinfacht ausgedrückt: Wenn deine Spalte vom Datentyp Int ist, dann ist mit Vorzeichen (signed) der Wertebereich -2147483648 bis 2147483647, bei unsigned hingegen 0 und 4294967295
      2. zerofill beschreibt die Eigenschaft, Zahlen nach vorne mit 0 aufzufüllen, bspw. wird eine Spalte Int(5) (fünfstellig Integerzahl), die der Wert 1 eingetragen wird, als 00001 ausgeliefert.

      Zerofill bedingt in MySQL automatisc unsigned.

      MfG
      Rouven

      --
      -------------------
      ie:| fl:| br:> va:| ls:& fo:) rl:( n4:{ ss:) de:] js:| ch:? mo:} zu:|
      1. ...aber weil ich ja ein netter Mensch bin

        :-)
        danke

    2. super danke

      Mittels NULL und NOT NULL schreibst du vor, ob eine Spalte ein Pflichtfeld ist (NOT NULL, d.h. es MUSS was drinstehen) oder ob sie optional ist (NULL).

      »»

      sowas hab ich mir auch gedacht...
      aber: ob ein pflichtfeld ausgefüllt wurde oder nicht frage ich doch mittels php ab oder? meine so.
      if(empty($pwd))...

      und nochwas würd ich gern fragen.
      in den tiefen meiner scripten hab ich das ausgegraben:
      z.B
      $username = $_POST['username'];
      was bringt das $_POST?

      vielen dank

      1. Hi,

        sowas hab ich mir auch gedacht...
        aber: ob ein pflichtfeld ausgefüllt wurde oder nicht frage ich doch mittels php ab oder? meine so.
        if(empty($pwd))...

        da gibt es verschiedene Konzepte und verschiedene Überzeugungen:

        1. Prüfe in DB UND Skript, die DB _muss_ unabhängig vom Skript eine korrekte Datenbasis enthalten, das Skript sitzt an der Quelle und kann den Fehler "mal eben schnell" feststellen
        2. Prüfe nur im Skript, wandert ja eh alles dadurch, der Fehler ist leicht und schnell zu prüfen.
        3. Prüfe nur in der Datenbank (Begründung siehe (1)) und interpretiere die Fehlermeldung der Datenbank mit dem Skript um zu gucken, was denn da schief gelaufen ist.

        $username = $_POST['username'];
        was bringt das $_POST?

        Das wird davon abhängen wie du deine Formulardaten verschickt hast, mittels method="get" oder method="post".

        MfG
        Rouven

        --
        -------------------
        ie:| fl:| br:> va:| ls:& fo:) rl:( n4:{ ss:) de:] js:| ch:? mo:} zu:|
        1. Das wird davon abhängen wie du deine Formulardaten verschickt hast, mittels method="get" oder method="post".

          aha!
          wenn man auch so 0 plan hat wie lese man sich doch

          http://de.selfhtml.org/servercgi/cgi/formularverarbeitung.htm

          durch.

          thx

          1. Hallo Freunde des gehobenen Forumsgenusses,

            wenn man auch so 0 plan hat wie lese man sich doch

            http://de.selfhtml.org/servercgi/cgi/formularverarbeitung.htm

            Das ist schonmal ein guter Einstieg, da es sich um PHP handelt empfehle ich Predefined Variables.

            Gruß
            Alexander Brock

            1. Das ist schonmal ein guter Einstieg, da es sich um PHP handelt empfehle ich Predefined Variables.

              ^^stimmt
              aber die basics sind auch auf php zu übertragen oder?
              wie z.B bei pwd übermittlungen immer method = "post"

              lg

              1. die daten sollten eigentlich eingetragen werden (mysql_connect,mysql_select_db sind ok).

                $insert_ok = mysql_querry("INSERT INTO zugangsdaten VALUES('$username','$pwd','')"); /// '' ==> id

                if($insert_ok == true)

                {
                trace("jjaaa");
                }

                geht aber nicht.schreibfehler?
                vielen dank

                1. Hallo Freunde des gehobenen Forumsgenusses,

                  $insert_ok = mysql_querry("INSERT INTO zugangsdaten VALUES('$username','$pwd','')"); /// '' ==> id

                  geht aber nicht.schreibfehler?

                  Nein, Sicherheitslücke weil nicht maskiert und Passwort nicht gehasht.

                  mysql_real_escape_string()

                  Außerdem null Informationen über den Fehler, verwende bitte
                  mysql_error() und error_reporting(E_ALL) und poste die Fehlermeldungen.

                  aber die basics sind auch auf php zu übertragen oder?

                  Wie bitte? Ich verlinke eine Seite des PHP-Handbuchs und du fragst mich ob das auf PHP übertragbar ist?

                  Gruß
                  Alexander Brock