Ankündigung

Einklappen
Keine Ankündigung bisher.

Geburtsdatum richtigkeit bei Monaten mit 30 Tagen

Einklappen

Neue Werbung 2019

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

  • Geburtsdatum richtigkeit bei Monaten mit 30 Tagen

    Hallo,
    ich weiß nicht genau ob dieser Beitrag hier reingehört aber ich habe ein Problem: Bei meiner Anmeldung für ein Loginbereich muss man sein Geburtsdatum angeben. Nun möchte ich, dass wenn man z.B den Monat April im Auswahlmenü auswählt, bei den Menü der Tage der 31 Tag verschwindet.
    geht so etwas?
    Wer es nicht verstanden hat, Facebook hat es z.B auch in der Anmeldung..

    lg

  • #2
    Nimm doch sowas hier: http://jqueryui.com/demos/datepicker/

    Diese Datumseingaben mit Drop-Down-Listen sind doch eh nur nervig für den User.

    Grüße.

    Kommentar


    • #3
      Danke für die Antwort
      aber diese Funktion ist eher ungeeignet, da die Geburtsdaten weit in der Vergangenheit liegen können
      lg

      Hat jemand eine Antwort auf die Frage?

      Kommentar


      • #4
        Hallo,

        und was machst du bei Schaltjahren? Vielleicht hilft dir ja date("t", $timestamp) weiter. Als $timestamp kannst du - wenn du Monat und Jahr kennst - einfach einen fixen Tag nehmen

        http://php.net/manual/de/function.date.php
        PHP-Code:
        <?php
        $timestamp 
        strtotime("$year-$month-01");
        echo 
        date("t"$timestamp);
        ?>

        Kommentar


        • #5
          Zitat von Chriz Beitrag anzeigen
          Hallo,

          und was machst du bei Schaltjahren? Vielleicht hilft dir ja date("t", $timestamp) weiter. Als $timestamp kannst du - wenn du Monat und Jahr kennst - einfach einen fixen Tag nehmen

          http://php.net/manual/de/function.date.php
          PHP-Code:
          <?php
          $timestamp 
          strtotime("$year-$month-01");
          echo 
          date("t"$timestamp);
          ?>
          Achso..
          Danke erstmal..
          aber ich habe eine Frage was heißt strtotime?
          werden da schon die Tage gezählt?
          und
          ich würde es gerne schon vor dem Abschicken so machen, dass es nur noch die möglichen Tage zur Auswahl gibt..geht das damit? Ich glaube nicht oder?

          Kommentar


          • #6
            Wenn dann musst Du es vor und nach dem Abschicken machen.

            Kommentar


            • #7
              Zitat von rob24 Beitrag anzeigen
              aber ich habe eine Frage was heißt strtotime?
              Das liest du bitte im Handbuch nach, wenn es dir nichts sagt!

              Bei weiteren Fragen, die derart mangelnde Eigeninitiative andeuten, wird der Thread geschlossen.

              Kommentar


              • #8
                Zitat von nikosch Beitrag anzeigen
                Wenn dann musst Du es vor und nach dem Abschicken machen.
                Warum denn? Also nach dem Abschicken muss ich das doch nicht mehr überprüfen. Ich möchte doch, dass es schon vor dem Abschicken naja eben keine Möglichkeit gibt, etwas falsch zu machen-Also braucht man das doch nur vor dem Abschicken

                lg

                Kommentar


                • #9
                  Man könnte zum Beispiel Javascript deaktivieren, dadurch bringt deine Prüfung vor dem Abschicken nichts mehr!
                  Außerdem könnte man den HTTP-Request manipulieren, sodass etwas ganz anderes auf dem Server ankommt, als der User im Formular angegeben hat!

                  Kommentar


                  • #10
                    Zitat von KarlEgon Beitrag anzeigen
                    Außerdem könnte man den HTTP-Request manipulieren, sodass etwas ganz anderes auf dem Server ankommt, als der User im Formular angegeben hat!
                    Geht auch einfacher:
                    Mit dem Firefox "Web-Developer"-Addon, kannst du Select-Felder in normale Text-Eingabefelder umwandeln lassen.

                    Gibt viel zu viele, die davon ausgehen, das bei nem Select-Feld auch nur Werte ankommen die sie zur Auswahl stellen.

                    Clientseitige Eingabeprüfung ist gut, weil du dem User sofort Feedback geben kannst. Er gibt zb einen Usernamen ein und bekommt sofort beim Verlassen des Eingabefeldes angezeigt ob dieser noch frei ist.

                    Auf eine serverseitige Prüfung sollte man aber nie verzichten.

                    Grüße.

                    Kommentar


                    • #11
                      Zitat von rob24 Beitrag anzeigen
                      Warum denn? Also nach dem Abschicken muss ich das doch nicht mehr überprüfen. Ich möchte doch, dass es schon vor dem Abschicken naja eben keine Möglichkeit gibt, etwas falsch zu machen-Also braucht man das doch nur vor dem Abschicken
                      Mach dir bitte augenblicklich - zumindest bevor du weiter programmierst - klar, dass es extrem naiv ist anzunehmen, ein Request an ein PHP-Script müsste überhaupt von so etwas wie einem „Browser“ kommen.

                      Kommentar


                      • #12
                        @php1704: Deine "client-seitige"-Prüfung ist eigentlich eine server-seitige Prüfung, oder woher soll der Client wissen welche Benutzernamen es gibt, wenn der Server die Eingabe nicht prüft ? ( Ajax-Request fragen hier den Server )

                        Bei egal welchen Eingaben validiert man die per Request übergebenen Werte und verhindert etwaige Exploits in seiner Anwendung respektiver ihrer Nutzung innerhalb der Anwendung.

                        Bei Datumseingaben kannst du viele Methoden der vorab-validierung nutzen, sei es drum das du ein Javascript-Callback als Event an die Eingabefelder hängst, oder eine Auswahlmatrix ( in Form von Select-Feldern oder Button-Grids ) bereitstellst, die das ganze DAU-patibel machen. Alles in allem ethablierst du damit aber keinerlei Sicherheit.

                        Warum ? Nun, ich beschreibe den Grund immer gerne mit dem Wort "DGH-Kaskade".

                        D - DAU-Level: die erste Stufe birgt keine Sicherheitsfeatures, eher einen Tolleranzbereich für die Eingabe die dort getätigt wird, es wird verhindert das beispielsweise Numerische Werte außerhalb einer sogenannten Range eingegeben werden können.

                        G - Geek-Level: die zweite Stufe birgt einen Sicherheitsaspekt, es wird hier verhindert das Werte als nicht-erwünschte Typen ans die Verarbeitungs-Methoden des Scripts gelangen. In der Regel passiert das beispielsweise bei Numerischen Eingabe-Werten wie bei Teilen eines Datums in dem die einzelnen Werte jeweils zu Integer "gecastet" werden. ( intval() oder (integer)$var ansehen! ).

                        H - Hacker-Level: die dritte und letzte Stufe birgt die kritischte Sicherheitsstufe, es soll hier verhindert werden, das bestimmte Sub-Scripts direkt aufgerufen werden, in denen Beispielsweise includierende Scripts vorbereitete Variablen "hineinreichen", wo sie im Endeffekt erst behandelt werden. Verhindert wird in diesem Fall die Möglichkeit diese Sub-Scripte direkt aufzurufen ( Prüfung auf Existenz einer bestimmten Konstante - also eines Datentyps innerhalb des Scripts, der in garkeinem Fall von außen gesetzt werden kann ). Bevor man jetzt mit dem gedanken Spielt, ja und ? Im Normal-Fall werden die Übergebenen Variablen doch in eigenen Variablen oder eigenen Arrays gespeichert, das mag sein das man davon ausgeht, aber viele Denken ebend nicht so und "überschreiben" gern auch mal Werte in Superglobals oder noch schlimmer leiden unter Registrus Superglobulus Variablus, einer Anfänger-Pandemie die die größten Sicherheitslücken der PHP-Menschheit aufreißt. ( Read @google: "PHP Register Globals" ).

                        Kaskade steht in diesem Fall für die Eskalationslinie die sich durch das Problem zieht ( von Kleines Problem zu großes Haufen Kacka ). Wo die DAU-Klamotten geradezu noch eher Bequemlichkeits-Features und mit unter kosmetische Features sind, steigt das Risiko der Unsicherheit immer mehr, je weiter man in der oben geschilderten Kaskade hinabfällt.

                        Kommentar

                        Lädt...
                        X