PIN (4-stelliger Zahlencode) anstatt Passwort

  • Hallo zusammen, ich versuch jetzt mal hier mein Glück. Also folgendes:

    Wie kann man das password-feld bei einer MySQL-DB so einstellen das dort über das dazugehörige forum nur noch vierstellige zahlencodes eingeben werden können???

    Danke schonmal im voraus :)

    Byebye Sammy

  • Indem du dem Feld die Art INT mit der Länge 4 zuweist :

    Code
    `pin` INT( 4 )

    Jeder hat das Recht dumm zu sein. Einige mißbrauchen dieses Recht leider ständig!
    Weder meine ICQ-Nummer noch meine MSN-Adresse oder meine eMailadresse sind für Bestellungen, Sponsoringanfragen oder Support !

    ploppGROUP Internetservices - IT-Partner für Geschäfts-/Großkunden
    mit Rechenzentren in Berlin, Hannover und bald auch FFM

  • Ich würde lieber trotzdem mit md5 verschlüsseln und bei der eingabe nur entsprechende Bedingungen stellen, sonst könnte das böse enden.

    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.
    [Blockierte Grafik: http://www.snippr.de/social/img/logo.png]
    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

  • Du kannst nicht mit MySQL prüfen ob ein MD5 Hash zu einer 4stelligen Zahl gehört.
    Das musst du mit PHP oder der Scriptsprache deiner Wahl machen.

    In der DB musst du ein Varchar Feld machen ;)

    phpBeispiel

    Code
    if($pin<=9999 && $pin>=0)...
    oder
    if(is_numeric($pin) && strlen($pin)<5)
  • wieso varchar ? o0

    int bietet sich dafür ja an

    und ausserdem: int ist int und hat immer die selbe größe von

    Zitat

    int
    32 Bits / 4 Bytes
    -2147483648 bis 2147483647
    -(2 hoch 31) bis (2 hoch 31) - 1
    bzw
    0 bis 4294967295


    Zitat

    Another extension is supported by MySQL for optionally specifying the display width of integer data types in parentheses following the base keyword for the type (for example, INT(4)). This optional display width is used to display integer values having a width less than the width specified for the column by left-padding them with spaces.

    The display width does not constrain the range of values that can be stored in the column, nor the number of digits that are displayed for values having a width exceeding that specified for the column. For example, a column specified as SMALLINT(3) has the usual SMALLINT range of -32768 to 32767, and values outside the range allowed by three characters are displayed using more than three characters.

    When used in conjunction with the optional extension attribute ZEROFILL, the default padding of spaces is replaced with zeros. For example, for a column declared as INT(5) ZEROFILL, a value of 4 is retrieved as 00004. Note that if you store larger values than the display width in an integer column, you may experience problems when MySQL generates temporary tables for some complicated joins, because in these cases MySQL assumes that the data fits into the original column width.

    wollte ich nur mal loswerden

    also, sry isaBERLIN, aber das mit der 'Länge 4' stimmt nicht

    man kann also auch in ein int(2) eine 5-stellige zahl stecken und in ein int(404038) ne 3-stellige

    nur um etwaige probleme vorzubeugen & den armen starkicker nicht auf ne flasche fährte zu bringen ^^

    Sei immer du selbst. Außer du kannst Batman sein. Sei immer Batman!