Anmeldungen pro Tag einschränken?

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

  • Anmeldungen pro Tag einschränken?

    HI@all,

    ist es irgendwie möglich, das nur eine bestimme Anzahl an Usern sich täglich anmelden darf?

    Bei jeder Anmeldung lasse ich mittels NOW(); das Datum mit in die Datenbank speichern.

    Könnte man jetzt eine if-abrage starten, die checkt wieviele sich schon am heutigen datum angemeldet haben? Und wenn eine bestimmte anzahl überschritten wurde, eine fehlermeldung ausgibt?

    Wie kann man aus dem datum, welches NOW(); speichert nur den Tag auslesen ? Und diesen Tag zählen?

    MfG
    Dominikoo

  • #2
    schreib in ne Datenbank die Anzahl der Leutz die sich am Tag angemeldet haben, und wenn diese Zahl = X ist gehts ned mehr... Aber ich weiss nicht für was man sowas gebrauchen kann? Wo beschränkt man die Anmeldungen pro Tag?

    Wenn kannste besser mit time() das Datum speichern. Mache dann
    PHP-Code:
    if($anzahl_der_der_spalten_größer_als_10 == 10) {
      echo 
    "nix da"
    }
    else {
      echo 
    "funzt";

    Admin of RealScripts

    Kommentar


    • #3
      NEE!

      Datum bleibt mal schön als Datetime gespeichert!!!

      Dann guckst du dir mal DATE_FORMAT() und COUNT() an, und gut ist.

      *verschieb* weil man sowas sicher nicht mit PHP macht!

      Kommentar


      • #4
        Man koennte es ganz simpel halten. Du hast eine Tabelle deren Records die User repraesentieren, die sich anmelden koennen. Dort gibt es ein Feld, dass als UNIX-Timestamp (in PHP mit time() erzeugt) das Datum der letzten Anmeldung hatte und noch ein Feld, in dem jeweils die bisherigen Logins gezaehlt wurden.

        Wird eine bestimmte Anzahl vn Logins ueberschritten und ist das Datum der letzten Anmeldung von heute, so wird der Zugriff verwehrt. Ob das Datum von heute ist kannst du pruefen in dem du vergleichst ob der Timestamp in der Tabelle kleiner ist als ein Timestamp der mit mktime() erzeugt wurde und den heutigen Tag um 00:00 Uhr anzeigt. Ist das der Fall ist der Timestamp in der Tabelle von gestern und die bisherigen Login-Counts koennen wieder auf 0 beziehungsweise auf 1 gesetzt werden.

        Kommentar


        • #5
          @Dominikoo: Du könntest mir übrigens mal sagen, wo man diese Nervensäge von Merlin im IE ausschalten kann. Kann einem echt auf die Eier gehen.

          Kommentar


          • #6
            @Max: Was sollt ihr alle mit dem unixtimestamp??? in Mysql ist datetime um längen vorteilhafter!!!

            Kommentar


            • #7
              Original geschrieben von TobiaZ
              @Dominikoo: Du könntest mir übrigens mal sagen, wo man diese Nervensäge von Merlin im IE ausschalten kann. Kann einem echt auf die Eier gehen.
              schalt doch dein active-x ab
              Kissolino.com

              Kommentar


              • #8
                und ich dachte, das wäre aus...

                Kommentar


                • #9
                  @TobiaZ: einfach angewoehnt und liebgewonnen Außerden glaube ich, dass es fuer MySQL mehr Arbeit macht die DATETIME-Records umzurechnen und richtig auszugeben als einfach eine 11-12stellige Zahl auszugeben. Ob ich die Arbeit nun auf MySQL schiebe oder es dem Praeprozessor ueberlasse nimmt sich doch nicht viel, oder?

                  Ich meine man koennte auch SELECT (1+56.6) aus MySQL holen anstatt $res = (1+56.6); zu schreiben *g*

                  Kommentar


                  • #10
                    hi,

                    danke für eure zahlreichen antworten

                    habe jetzt einfach zwei neue tabellen und mit date(d) speichert er immer den aktuellen tag und zählt dort einfach durch: select anzahl ... + 1 ... update anzahl


                    das problem jetzt ist nur, das er immer nur den tag des monats anzeigt ... wenn also wieder der 25. kommt (also in einem monat) wird die zeile schon ein paar zahlen haben.

                    naja, ich werd die zeilen dann irgendwie löschen lassen ... auf jedenfall danke für eure hilfe

                    Kommentar


                    • #11
                      habe jetzt einfach zwei neue tabellen und mit date(d) speichert er immer den aktuellen tag und zählt dort einfach durch: select anzahl ... + 1 ... update anzahl
                      Klasse idee! Wenn du es schon so machst, solltest du aber noch mindestens zwei Weitere Tabellen anlegen. Eine für die Namen der Bundeskanzler der BRD (evtl mit Regierung der DDR) und eine für die Regierung der USA. Wenn du Zeit hast, kannst du auch alle Königshäuser in eine dritte Tabelle speichern!!!

                      Kommentar


                      • #12
                        Original geschrieben von MaxPayne
                        Außerden glaube ich, dass es fuer MySQL mehr Arbeit macht die DATETIME-Records umzurechnen und richtig auszugeben als einfach eine 11-12stellige Zahl auszugeben. Ob ich die Arbeit nun auf MySQL schiebe oder es dem Praeprozessor ueberlasse nimmt sich doch nicht viel, oder?
                        der aufwand, den mysql damit hat, dürfte zu vernachlässigen sein.

                        nicht zu vernachlässigen ist aber der aufwand, den du hast, wenn du jetzt mal irgendwann eine abfrage machen willst, die beispielsweise alle einträge aus dem monat april auslesen willst, egal welchen jahres (geburtstagstabelle z.b.)

                        bei einem datentime-feld nehme ich dafür einfach MONTH() - und du?
                        (klar, du schachtelst wahrscheinlich noch ein FROM_UNIXTIMESTAMP da rein - aber das ist dann unter performanz-gesichtspunkten ziemlicher overhead ...)
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar

                        Lädt...
                        X