1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

MySql Fehler!

Dieses Thema im Forum "PHP & Co." wurde erstellt von MACRASSI, 17.11.05.

  1. MACRASSI

    MACRASSI Gelbe Schleswiger Reinette

    Dabei seit:
    21.11.04
    Beiträge:
    1.754
    Hi!
    Ich habe eine Tabelle erstellt mit volgenden Feldern:

    fid | pollid | mid
    --------------------

    Das Feld "fid" ist der Key und auto_increment.
    Jetzt habe ich schon 127 Felder...
    Wenn ich dann noch eins hinzufügen möchte,
    dann bekomme ich immer diesen Fehler:
    #1062 - Duplicate entry '127' for key 1

    Weiß jemand was ich machen soll? Wieso kommt denn immer dieser Fehler?
    Gruß Rasmus
     
  2. MACRASSI

    MACRASSI Gelbe Schleswiger Reinette

    Dabei seit:
    21.11.04
    Beiträge:
    1.754
    Mhm auch google suchen hat nix gebraucht...
    Aber das Problem fängt immer von der fid 127 oder darüber an.
    Gruß Rasmus
     
    #2 MACRASSI, 17.11.05
    Zuletzt bearbeitet: 17.11.05
  3. MACRASSI

    MACRASSI Gelbe Schleswiger Reinette

    Dabei seit:
    21.11.04
    Beiträge:
    1.754
    So, der Fehler ist behomen...
    Ich hab einfach nochmal die Tabelle erstellt... Und siehe da, es geht...
    Gruß Rasmus

    Weiß jemand woran das lag?
     
  4. mullzk

    mullzk Linsenhofener Sämling

    Dabei seit:
    04.01.04
    Beiträge:
    2.529
    ist jetzt wahrscheinlich zu spät zum eruieren, aber ich kann mir dies fast nur so vorstellen, dass du das fid-feld als int der grösse 1 signed eingerichtet hast. und dann ist er halt beim hochzählen bei an die feld-grösse gestossen (1 byte geht bis 255, mit negativen zahlen bis 127). oder so irgendwie.
     
  5. MACRASSI

    MACRASSI Gelbe Schleswiger Reinette

    Dabei seit:
    21.11.04
    Beiträge:
    1.754
    So ich hab da doch noch mal 2 Fragen:

    1. Auf welche art muss ich denn das fid Feld stellen damit es so viele wie möglich speichert?

    2. Auf welche Art muss ich denn ein Feld stellen damit es ein Passwort verschlüsselt anzeigt?

    Gruß Rasmus
     
  6. zu 1. eine id sollte man immer mit INTEGER anlegen der sollte fürs erste reichen ;)

    zu2. Die Frage ist wie du dein Passwort verschlüsseln willst. Entweder du machst per php einen MD5 oder ähnliches draus und speicherst es ein einem VARCHAR oder du benutzt die CRYPT Funktion von MySQL. Diese Funktion habe ich aber noch nicht ausprobiert.
     
  7. mullzk

    mullzk Linsenhofener Sämling

    Dabei seit:
    04.01.04
    Beiträge:
    2.529
    eigentlich muss du da nichts einstellen, mit einem normalen int-feld kommst du da sehr weit. deshalb klappt es ja jetzt vermutlich auch, während - so meine aus-dem-handgelenk-geschüttelt-these - vorher etwas nicht sauber war und das ganze auf 8bit beschränkt war.
    die verschlüsselung würde ich nicht in der db machen, das kann zu einigen problemen führen. passwörter verschlüsselt man in der applikation, zB in einem php-skript:
    beim ablegen des passworts in die DB speicherst du nicht $_REQUEST['password'], sondern, sha1($_REQUEST['password']) . Beim Authentifizieren eines logins vergleichst du dann den Inhalt der DB auch nicht mit dem übermittelten passwort, sondern eben wieder mit sha1($_REQUEST['password'])


    oops, viel zu langsam...
     
  8. MACRASSI

    MACRASSI Gelbe Schleswiger Reinette

    Dabei seit:
    21.11.04
    Beiträge:
    1.754
    Ah... Ich hab auch schonmal in einer Datenbank gesehen das das Passwort Feld dann so eingestellt ist das man dann nur so viereckige Dinger sieht... und keine Buchstaben...

    Gruß Rasmus
     
  9. mullzk

    mullzk Linsenhofener Sämling

    Dabei seit:
    04.01.04
    Beiträge:
    2.529
    hmm, schon möglich, aber ich würde das in meiner arroganz mal als windows-sicherheits-mechanismus abtun - passwörter cleartext speichern und einfach im gui mit vierecken ersetzen :D

    wie mr anderson oben schon erwähnt hat, kennt mysql anscheinend auch einen CRYPT-'datentyp'. die bedeutung davon kannst du aber wohl auch aus dem umstand ersehen, dass mysql selber die rechte- und passwörter-datenbank nicht so abspeichert, sondern wie bisher den verschlüsselten string als normalen text in die db legt...

    Kleiner Hintergrund-Gedanke (ohne anspruch auf jegliche form von richtigkeit...): wenn php mit mysql-kommuniziert, geschieht dies ja zwischen den prozessen hin und her - damit ist eine solche kommunikation prinzipiell abfangbar, auch wenn ich noch nie von einem leak in diesem bereich gehört hätte - es ist aber sicher einfacher abfangbar als innerhalb eines einzelnen prozesses.
    wenn nun php den wert selber verschlüsselt, gelangt das unverschlüsselte passwort nur vom webserver zu php, von dort an ist es unverschlüsselt. überlässt man das verschlüsseln der datenbank, geht das passwort unverschlüsselt vom webserver zum php zur datenbank, also ein potentieller angriffspunkt mehr. und jeder eingespaarte angriffspunkt ist - so aus dem handgelenk gesagt - immer ein gewinn...
     
  10. master_p

    master_p Gast

    Also dann sollte man das Feld aber auch noch auf "UNSIGNED" stellen. Dann wird der INT-Wert nämlich in positiver Richtung verschoben, sodass keine Negativwerte gespeichert werden, aber das will man ja (normalerweise) bei einer ID nicht.

    Ich persönlich nutze immer int(11), unsigned als ID-Feld.
     

Diese Seite empfehlen