phpbuddy.eu
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 08.07.2006, 14:48   #1
TP-Senior
 
Registriert seit: Oct 2005
tobias82 macht alles soweit korrekt

zeitbegrenzung in online quiz


hi leude,

ich habe mit php und mysql ein sehr umfangreiches online-quiz samt admin-bereich zur eingabe von fragen/antworten/bilder-hochladen usw. erstellt. nun soll es einer der letzten schritte sein, dem user die möglichkeit zu geben, die dauer der zeit, die er für die beantwortung der fragen hat selbst zu bestimmen. 20, 30, 40 min usw...

habe schon fleissig gegoogelt, bin aber noch auf keine lösung gestoßen. immer nur so ansätze drum herum aber nicht genau in meine richtung.

habe auch bereits ein countdown-script, welches funktioniert, nur leider mit body onload (allet javascript). das geht wiederum nicht mit meinem bisherigen konzept konform, da ich nicht mit frames arbeite, sondern alles mit css gestaltet habe. also wird jedesmal (wenn der user auf "nächste frage" klickt) die zeit von vorne geladen. nicht sinn der sache ;-)

ich bin dankbar für alle tipps!

wenn jemand das script mal sehen möchte, da es da evtl. auch andre möglichkeiten ausser frames einzubauen gäbe...kann ich auch mal posten.
tobias82 ist offline   Mit Zitat antworten


Alt 08.07.2006, 18:11   #2
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Wenn du es mit JS machen willst, könnte man über cookies arbeiten.
Also kein cookie da, einen schreiben und startzeit rein.
Bei Seitenaufruf schauen ob cookie da, wenn ja startzeit aufnehmen und aktuelle Zeit abziehen. Zeit auf Null > cookie löschen.

Wenn es dir reicht, das die Restzeit immer nur beim Seitenaufruf angezeigt wird, dann geht das auch via PHP.
Ist dann aber halt lein Live Countdown.
PHP-Code:
<?
session_start
();

function 
timer(){
    global 
$dauer;
    if(!isset(
$_SESSION['timerstart'])) $_SESSION['timerstart'] = mktime(date('H'),date('i')+$dauer+1,date('s'), date('m'), date('d'),  date('Y'));
    return 
$foo date("i",$_SESSION['timerstart'] - time());
}

if(isset(
$_GET['dauer'])&&$_GET['dauer']!="")$dauer $_GET['dauer'];
$rest timer();

if(isset(
$_SESSION['timerstart'])){
    if(
$rest 0){
        echo isset(
$_GET['dauer']) ? "Ihre Restzeit: ".($rest-1)." Minuten<br>" "Ihre Restzeit: ".intval($rest)." Minuten<br>";
        echo 
"hier kommt dann die Frage<br> 
        mit Fomular, oder wie auch immer.<br>
        <a href=\"$_SERVER[PHP_SELF]\">weiter</a>"
;
    }
    else{
        echo 
"Ihre Zeit ist leider abgelaufen<br>
        <a href=\"$_SERVER[PHP_SELF]?dauer=3\">timer neustarten</a>"
;
        unset(
$_SESSION['timerstart']);
    }
}
else echo
"<a href=\"$_SERVER[PHP_SELF]?dauer=3\">timer starten</a>";
?>
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE
emCalculator 1.0

webcreate IT SOLUTIONS
www.webcreate-nrw.de

>>> der code ist so scheisse, soweit hab ich nicht gelesen <<<
webcreate ist offline   Mit Zitat antworten
Alt 08.07.2006, 18:59   #3
TP-Senior
 
Registriert seit: Oct 2005
tobias82 macht alles soweit korrekt
erstmal danke.

ich denke ich werde es mit cookies machen, da das ganze "live" schon schöner aussieht und auch für den getesteten eine bessere übersicht gibt, wieviel zeit er jetzt im moment noch hat.

wie man cookies erstellt und ausliest weiss ich (self html). aber wo ich das im script einbauen soll erschließt sich mir noch nicht ganz. habe es auch nur kopiert und minimal angepasst...

hier das bisherige script (an dem es noch einiges zu basteln gibt, für den fall, dass die zeit abläuft, aber das ist ein andres problem):

HTML-Code:
<script type="text/javascript">

var running = false
var endTime = null
var timerID = null
var totalMinutes = "<?php echo $_SESSION["dauer"]; ?>";

function startTimer() {
    running = true
    now = new Date()
    now = now.getTime()
    endTime = now + (1000 * 60 * totalMinutes);
    showCountDown()
}

function showCountDown() {
    var now = new Date()
    now = now.getTime()
    if (endTime - now <= 0) {
       clearTimeout(timerID)
       running = false
//       alert("Ihre Zeit ist abgelaufen")
//       window.location.replace ( "/auswertung.php" ) ;
    } else {
        var delta = new Date(endTime - now)
        var theMin = delta.getMinutes()
        var theSec = delta.getSeconds()
        var theTime = theMin
        theTime += ((theSec < 10) ? ":0" : ":") + theSec
        document.getElementById('SessionTimeCount').innerHTML = "Verbleibende Zeit " + theTime
        if (running) {
            timerID = setTimeout("showCountDown()",900)
        }
    }
}
</script>
tobias82 ist offline   Mit Zitat antworten
Alt 08.07.2006, 19:17   #4
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Na einfach in den head Bereich.
Bei onload einfach showCountDown() aufrufen und via PHP prüfen ob schon Cookie gesetzt ist,wenn nicht, startTimer() aufrufen.
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE
emCalculator 1.0

webcreate IT SOLUTIONS
www.webcreate-nrw.de

>>> der code ist so scheisse, soweit hab ich nicht gelesen <<<
webcreate ist offline   Mit Zitat antworten
Alt 08.07.2006, 20:00   #5
TP-Senior
 
Registriert seit: Oct 2005
tobias82 macht alles soweit korrekt
okay ich hab mal n bisschen was gemacht und denke das passt soweit erstmal. hier also die if-clause:


HTML-Code:
<script type="text/javascript">

var running = false
var endTime = null
var timerID = null
var totalMinutes = "<?php echo $_SESSION["dauer"]; ?>";

<?php if(isset($_COOKIE['endTime']))
	{
         echo ('showCountDown()');
         }
      else
      	{
         echo ('function startTimer()');
         echo ('{ ');
         echo (' running = true ');
         echo (' now = new Date() ');
         echo (' now = now.getTime() ');
         echo (' endTime = now + (1000 * 60 * totalMinutes); ');
         echo (' showCountDown() ');
         echo (' } ');
         }
?>

function showCountDown() {
...
nun meine frage: wenn also das cookie endTime noch nicht gesetzt wurde, muss das ja noch erfolgen und darin soll ja die jeweilige "neue" zeit gespeichert werden, um die beim laden der nächsten frage wieder aufzunehmen. wie mache ich das? wo also setze ich das cookie endTime? der rest des scripts ist unverändert geblieben und liegt oben vor.
tobias82 ist offline   Mit Zitat antworten
Alt 08.07.2006, 20:06   #6
TP-Senior
 
Registriert seit: Oct 2005
tobias82 macht alles soweit korrekt
oups. denkfehler.

nach dem head bereich sollte das ganze wohl so aussehn:

HTML-Code:
<?php if(isset($_COOKIE['endTime']))
	{
         echo ('<body onLoad="showCountDown();">');
      	}
      else
      	{
         echo ('<body onLoad="startTimer();">');
         }
?>
und die if-clause im script ist überflüssig. (also das was ich eben gepostet habe.

meine frage bleibt dennoch
tobias82 ist offline   Mit Zitat antworten
Alt 08.07.2006, 20:13   #7
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts
Warum überhaupt mit der endTime arbeiten?
EndTime einfach als value setzen und dieses immer mit der akt. Zeit vergleichen, also die Dif. bilden, dann hast doch die Restzeit ...
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE
emCalculator 1.0

webcreate IT SOLUTIONS
www.webcreate-nrw.de

>>> der code ist so scheisse, soweit hab ich nicht gelesen <<<
webcreate ist offline   Mit Zitat antworten
Alt 08.07.2006, 20:18   #8
TP-Senior
 
Registriert seit: Oct 2005
tobias82 macht alles soweit korrekt
als value eines hidden-form-felds? und dort dann time() verwenden? müsste ich das formatieren?
tobias82 ist offline   Mit Zitat antworten
Alt 08.07.2006, 20:21   #9
TP-Urgestein
 
Benutzerbild von webcreate
 
Registriert seit: Nov 2003
Ort: NRW
webcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichtswebcreate ist einer der Eckpfeiler des TP - ohne ihn geht nichts

textfeld? hidden?
Als value von dem Cookie!!!
__________________
Gruß Mark
Mein Blog zum TP || XING Profil || grafiker.de Profil || How to use GOOGLE
emCalculator 1.0

webcreate IT SOLUTIONS
www.webcreate-nrw.de

>>> der code ist so scheisse, soweit hab ich nicht gelesen <<<
webcreate ist offline   Mit Zitat antworten
Alt 08.07.2006, 20:27   #10
TP-Senior
 
Registriert seit: Oct 2005
tobias82 macht alles soweit korrekt
okay irgendwie reden wir aneinander vorbei.

um ein cookie mit php zu setzen würde ich wie folgt vorgehen:

setcookie("Name", $Wert, $Gueltigkeit);

mein problem ist aber nicht WO speicher ich ab, sondern WAS?

ich komme also mit dem script, das ich kopiert habe nicht so wirklich klar.

mein gedanke ist, dass ich endTime speichern müsste um in showCountDown richtig weiterzumachen (endTime - now würde ja sonst falsch berechnet).
tobias82 ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Traum-Talk > Webdesign & Co.
zeitbegrenzung in online quiz zeitbegrenzung in online quiz
« Eure Design-Favoriten | Design Problem! »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:11 Uhr.

Powered by: vBulletin Version 3.7 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd. / Search Engine Friendly URLs by vBSEO 3.2.0 ©2008, Crawlability, Inc.
Traum-Projekt.com | Suchen | Archiv | Impressum | Kontakt | | | Nach oben |



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67