skript nach 30 minuten beenden

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

  • skript nach 30 minuten beenden

    Hallo Forenuser!

    Ich stehe zur Zeit vor einem Problem, wessen Lösung mir nicht einfallen will. Ich möchte, dass wenn ein User auf meine Seite kommt, er genau 30 Minuten hat Aktionen zu tätigen (welche sind hinfällig). Nach diesen 30 Minuten soll sein Ergebnis abgespeichert werden und das Skript ist beendet. Ich realisiere es zur zeit so:

    Ich gebe beim "registrieren" des Users die Zeit als datetime in die Datenbank und berechne bei jeder Aktion dann ob die vergangene Zeit < 30 Minuten ist.

    Soweit so gut, aber nun das Problem: Ich möchte, dass eine Uhr herunterläuft und die 30 Minuten zählt und sobald 30 Minuten rum sind, soll das Fenster neu geladen werden (so dass die Daten / Ergebnisse die bisher getätigt wurden in der DB landen).

    Muss ich dazu zwingend JS benutzen? Da ich nicht will, dass man hier "bescheissen" soll, ist JS ja eher schlecht, aber gibt keinen anderen weg.

    Ich hoffe ihr könnt mir sagen, wie IHR das lösen würdet.

    LG,
    SteKoe
    Liebe Grüße,
    SteKoe!

    PHP Tutorials
    Peter Kropff | Quakenet | Schattenbaum.net

  • #2
    hast du mal an Flash gedacht?

    Wenn deine Anwendung nicht greade höchsten Anforderungen gerecht werden muss, ist nichts gegen JS zu sagen.

    php-Entwicklung | ebiz-consult.de
    PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
    die PHP Marktplatz-Software | ebiz-trader.de

    Kommentar


    • #3
      Da du die eigentliche Prüfung ja bereits im Hintergrund vornimmst, spricht nichts gegen Javascript. Es ist in dem Fall ja nur "hübsch".
      Wenn der Benutzer sein Javascript deaktiviert, oder sogar sich einen Bot schreibt, welcher dein PHP-Skript nur noch aufruft, bringt ihm das ja nichts, weil im Hintergrund dein PHP-Skript auch merkt "30 Minuten sind rum" und nichts mehr macht.

      Das mit dem "Ergebnis speichern" verstehe ich jetzt ehrlich gesagt nicht so ganz, aber in der heutigen Welt kannst du einwandfrei davon ausgehen, dass jeder deiner Benutzer Javascript aktiviert hat. Du kannst also ggf. nach 28 Minuten einfach das Ergebnis via AJAX/POST submitten (oder auch einfach generell ein Formular submitten), und die Daten landen dann in der Datenbank. (Bedenken sollte man dann natürlich: Was ist, wenn der Benutzer gerade keine Internetverbindung hat? Was ist, wenn die Übertragung zum Server vielleicht mal etwas länger dauert? ... Ich weiß ja nicht, ob deine Anwendung nur ein "Spiel" ist, oder ob es schon etwas wichtiger ist. Je nachdem sollte man darüber auch einen Moment innehalten.)
      Zuletzt geändert von ghostgambler; 21.05.2009, 10:34.

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        Danke, manche Gegebenheiten habe ich gar nicht bedacht.

        Ja, es ist ein Spiel, eine Art Brwosergame, jedoch auf wissenschaftlich-experimenteller Ebene. Das senden nach 30 Minuten via AJAX find ich gut und werd ich wohl implementieren - Danke soweit!
        Liebe Grüße,
        SteKoe!

        PHP Tutorials
        Peter Kropff | Quakenet | Schattenbaum.net

        Kommentar


        • #5
          Also wenn du das Senden per 30 Minuten auf AJAX-Basis enbindest, musst du im Backend auf jeden Fall weiterhin prüfen, denn alles was auf dem Client basiert kann der Benutzer auch manipulieren. Mit Firebug ist es ja ein leichtes, die 30 Minute in 60 umzusetzen.

          Ich habe vor kurzem in einem Projekt einen "Countdown" umgesetzt, bei dem der Benutzer 30 Minuten Zeit hatte die Seite beliebig zu nutzen, danach wurde er dann auf eine andere Seite umgeleitet. Die Zeitkontrolle und die Umleitung wurde primär im Backend erledigt. Die Uhr wurde in JS gebaut und war technisch gesehen nur eine optische Spielerei.

          Ich würde das - mit den Info die ich zu deinem Projekt habe - genauso auch so implementieren, dass JS nur eine optische Spielerei darstellt. Das AJAX bietet dir hier imho keinen Mehrwert. Und Benutzer ohne JS können dein Spiel auch nutzen... halt eben ohne Uhr.

          Kommentar


          • #6
            klingt ein wenig nach "Prüfungssoftware". Ich denke, dass es ohne was Clientseitiges nicht funktioniert. Also als Webgeschichte wird man um Javascript nicht rumkommen. Allerdings würde ich auch ne Serverseitige Prüfung einbauen ob es weniger als 30min sind. Nicht, dass jemand JS ausschaltet und sich dann 100h zeitlässt.

            Kommentar


            • #7
              Moodle macht Online-Prüfungen mit Zeitlimit. Schau mal rein!

              Edit: Sorry, ich meinte Blackboard. Und ich hab eben selbst mal nachgesehen - das ist eine einfache JS-Lösung. Die taugt nichts.
              Zuletzt geändert von onemorenerd; 26.05.2009, 11:36.

              Kommentar


              • #8
                Hallo,

                ähnliches habe ich mal mit AJAX und Javascript gemacht.
                Da ja sowohl JS als auch die Uhr manipuliert werden kann,
                muss als erstes mal bei Start, die Session und die Startzeit gespeichert werden, dann erzeuge ich Serverseitig mit md5 und Systemzeit Hashes,
                die per JS/Ajax wieder zurückgegeben müssen, dabei wird die Zeitdifferenz wiederum protokolliert, nach abgelaufener Zeit wir dann das Formular woanders hin übertragen, und dann natürlich übertragende Eingangzeit mit der Startzeit verglichen und geprüft

                Kommentar

                Lädt...
                X