Taney: Dropdowns zusammenfügen / verschachteln

Ich habe eine kleine Community, bei der das Geburtstdatum nicht eingegeben wird. Sprich nur Mitgliedsname und Passwort.
Ein vordefiniertes Datum wird einfach übergeben.

<input type="hidden" size="60" maxlength="20" name="6" value="1980-02-02">

Sobald ich das hidden aber öffne und den Usern die Möglichkeit gebe, ein Geburtsdatum einzugeben, weiß ich nicht, ob die das Missbrauchen würden, da man in nen Textfeld alles mögliche reinschreiben könnte.

Wie mache ich das jetzt, dass ich drei Dropdowns mache und die dann als einen wert übergebe?
(kenne mich mit javascript leider überhaupt nicht aus)

  1. Hi,

    Wie mache ich das jetzt, dass ich drei Dropdowns mache und die dann als einen wert übergebe?
    (kenne mich mit javascript leider überhaupt nicht aus)

    Du musst dein Formular aufteilen :) Ein select Feld für Tag, eines für Monat und eines für Jahr ... Die fügst du dann bei der Verarbeitung wieder zusammen.

    Javascript braucht man dafür nicht ...

    1. Sorry, das habe ich nicht so ganz geblickt :I Wie füge ich das jetzt zusammen, dass am Ende bei der Anmeldung für name="6" ein value z.b. value="1980-02-02" übergeben wird?

      <select name="birthday">
      <option selected value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
      <option value="6">6</option>
      <option value="7">7</option>
      <option value="8">8</option>
      <option value="9">9</option>
      <option value="10">10</option>
      <option value="11">11</option>
      <option value="12">12</option>
      <option value="13">13</option>
      <option value="14">14</option>
      <option value="15">15</option>
      <option value="16">16</option>
      <option value="17">17</option>
      <option value="18">18</option>
      <option value="19">19</option>
      <option value="20">20</option>
      <option value="21">21</option>
      <option value="22">22</option>
      <option value="23">23</option>
      <option value="24">24</option>
      <option value="25">25</option>
      <option value="26">26</option>
      <option value="27">27</option>
      <option value="28">28</option>
      <option value="29">29</option>
      <option value="30">30</option>
      <option value="31">31</option>
      </select> <select name="birthmonth">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
      <option value="5">5</option>
      <option value="6">6</option>
      <option value="7">7</option>
      <option selected value="8">8</option>
      <option value="9">9</option>
      <option value="10">10</option>
      <option value="11">11</option>
      <option value="12">12</option>
      </select> <select name="birthyear">
      <option value="2006">2006</option>
      <option value="2005">2005</option>
      <option value="2004">2004</option>
      <option value="2003">2003</option>
      <option value="2002">2002</option>
      <option value="2001">2001</option>
      <option value="2000">2000</option>
      <option value="1999">1999</option>
      <option value="1998">1998</option>
      <option value="1997">1997</option>
      <option value="1996">1996</option>
      <option value="1995">1995</option>
      <option value="1994">1994</option>
      <option value="1993">1993</option>
      <option value="1992">1992</option>
      <option value="1991">1991</option>
      <option value="1990">1990</option>
      <option value="1989">1989</option>
      <option value="1988">1988</option>
      <option value="1987">1987</option>
      <option value="1986">1986</option>
      <option value="1985">1985</option>
      <option value="1984">1984</option>
      <option value="1983">1983</option>
      <option selected value="1982">1982</option>
      <option value="1981">1981</option>
      <option value="1980">1980</option>
      <option value="1979">1979</option>
      <option value="1978">1978</option>
      <option value="1977">1977</option>
      <option value="1976">1976</option>
      <option value="1975">1975</option>
      <option value="1974">1974</option>
      <option value="1973">1973</option>
      <option value="1972">1972</option>
      <option value="1971">1971</option>
      <option value="1970">1970</option>
      <option value="1969">1969</option>
      <option value="1968">1968</option>
      <option value="1967">1967</option>
      <option value="1966">1966</option>
      <option value="1965">1965</option>
      <option value="1964">1964</option>
      <option value="1963">1963</option>
      <option value="1962">1962</option>
      <option value="1961">1961</option>
      <option value="1960">1960</option>
      <option value="1959">1959</option>
      <option value="1958">1958</option>
      <option value="1957">1957</option>
      <option value="1956">1956</option>
      <option value="1955">1955</option>
      <option value="1954">1954</option>
      <option value="1953">1953</option>
      <option value="1952">1952</option>
      <option value="1951">1951</option>
      <option value="1950">1950</option>
      <option value="1949">1949</option>
      <option value="1948">1948</option>
      <option value="1947">1947</option>
      <option value="1946">1946</option>
      <option value="1945">1945</option>
      <option value="1944">1944</option>
      <option value="1943">1943</option>
      <option value="1942">1942</option>
      <option value="1941">1941</option>
      <option value="1940">1940</option>
      <option value="1939">1939</option>
      <option value="1938">1938</option>
      <option value="1937">1937</option>
      <option value="1936">1936</option>
      <option value="1935">1935</option>
      <option value="1934">1934</option>
      <option value="1933">1933</option>
      <option value="1932">1932</option>
      <option value="1931">1931</option>
      </select>

      1. Hi taney,

        <option selected value="1">1</option>

        wenn du das value weglässt, wird automatisch der wert zwischen <option>und</option> übermittelt, d.h.<option>1</option> reciht.

        <option value="2006">2006</option>
        <option value="2005">2005</option>

        wie soll ein nulljähriger die seite benutzen?

        das select rumgesuche nervt mich persönlich ziemlich. man kann die leute doch ihr geburtsdatum TT.MM.JJJJ eingeben lassen und dass dann per regex überprüfen.

        Gruß, Marian

        1. das war ja auch nur ein beispiel da oben. 2005, 2006 bringt natürlich nichts.
          Regex sagt mir jetzt nicht (zudem kann ich kein php auf dem server benutzer, wenn das php ist)

          Oki, sagen wir mal, ich lasse es den usern eingeben, dann habe ich da aber ein angabefeld, in der man das reinschreiben muss hintereinander und dazwischen ein bindestrich als abtrennung. kann man da dann 3 felder draus machen, eine für monat, tag und jahr und dann soll er das als als gesamtes dann losschicken name="6"

          1. Hi taney,

            Regex sagt mir jetzt nicht (zudem kann ich kein php auf dem server benutzer, wenn das php ist)

            Wie willst du dann die drei selects zu einem datum zusammenbasteln?

            Gruß, Marian

            1. genau das ist ja meine frage :D
              mit javascript müsste das doch irgendwie gehen, dass er das als einen wert abschickt

              1. Hi taney,

                mit javascript müsste das doch irgendwie gehen, dass er das als einen wert abschickt

                hidden feld <input type="hidden" name="birthdate">
                in den <form> onsubmit="this.form.birthdate = this.form.birthday + '.' + this.form.birthmonth + '.' + this.form.birthyear; return true"

                geht aber nur wenn js aktiviert ist. und man kann es manipulieren

                wie willst du überhaupt ein gästebuch(oder was war es) machen, wenn du kein php hast?

                Gruß, Marian

                1. Danke dir Marian, ich hoffe, dass ich dich nicht störe. Ich habe mir eine kleine fertige Community gekauft die ich nur anpasse, bis ich das ganze mal selber gelernt habe.
                  Habe mal den Anmeldebereich stark abgespeckt und mein Vorhaben zu verdeutlichen. Es sind noch ein paar andere name="zahl" vorhanden für andere Daten.

                  <form action="jfchat--sid--" name=COMLOGIN method="post">

                  <input name="0" type="text" id="0" style="width: 120pt;" size="30" maxlength="30" value="nickname">
                  <input name="1" type="password" id="1" style="width: 120pt;" size="30" maxlength="30" value="passwort">
                  <input type="text" size="30" style="width: 120pt;" maxlength="255" name="2" value="email">
                  <input type="text" size="30" style="width: 120pt;" maxlength="10" name="6" value="1980-02-02">

                  <input class="button" type="submit" name="submit" value="Registrieren" disabled>
                  </FORM>

                  Sobald ich jetzt so wie du beschrieben hast, den geburtstagsbereich auf hidden setze,hidden feld <input type="hidden" name="birthdate"> hat der user doch keine möglichkeit etwas einzugeben? oder bin ich total verpeilt ;)

                  Ist mein Ansatz richtig?
                  Ich teile name="6" auf:

                  <input type="text" size="2"  maxlength="2" name="birhtday" value="02">
                  <input type="text" size="2"  maxlength="2" name="birthmonth" value="02">
                  <input type="text" size="4"  maxlength="4" name="birthyear" value="1980">

                  jetzt muss ich das ganze da oben miteinander verknüpft reinkriegen.

                  1. Hi taney,

                    <input type="text" size="2"  maxlength="2" name="birhtday" value="02">
                    <input type="text" size="2"  maxlength="2" name="birthmonth" value="02">
                    <input type="text" size="4"  maxlength="4" name="birthyear" value="1980">

                    jetzt muss ich das ganze da oben miteinander verknüpft reinkriegen.

                    ich hab es doch hier hingeschrieben: wenn das formular abgeschickt wird (onsubmit),   wird der wert des hidden-feld 'birthday' (du kannst es auch 6 nennen) mit den werten aus den dropdown-menüs gefüllt. guck es dir nochmal an!
                    aber wenn du für die drei felder (tag, monat, jahr) inputs nimmst, kann man ja auch wieder alles mögliche reinschreiben (es ist begrenzt, wegen maxlength, aber prinzipiell), wenn du es sicher haben willst, nimm drei dropdownmenüs (siehe hier)

                    total sicher ist es aber trotzdem nicht: jemand kann den quelltext kopieren, in eine neue datei einfügen, aus dem 6-feld statt dem type="hidden" ein type="text" hinschreiben, irgendwelchen scheiß reinschreiben und das dann an deine seite schicken. aber "normale" user können dann nix mehr machen.

                    Gruß, Marian

  2. Hi Taney,

    Sobald ich das hidden aber öffne und den Usern die Möglichkeit gebe, ein Geburtsdatum einzugeben, weiß ich nicht, ob die das Missbrauchen würden, da man in nen Textfeld alles mögliche reinschreiben könnte.

    auch in ein hidden-field kann man was reinschreiben. wenn sich z.b. jemand deinen quelltext anguckt, und sieht, dass da ein hidden drin ist, kann er sich den quelltext kopieren, aus type="hidden" type="text" machen. oder mit javascript (document.geburtstag.value = '')

    du kannst das doch mit regex oder so überprüfen. Oder zumindest htmlentities().

    Gruß, Marian