• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Timer für Weiterleitung

Status
Für weitere Antworten geschlossen.

Timmer

Mitglied
Hallo,

ich hab hier diesen Code gefunden:
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 ( "/salinas/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)
        }
    }
}

Und für die Stelle des Aufrufs im HTML-Dokument den Code:

Code:
<?php if($_SESSION['timer'] == "test")
    {
         echo ('<body onLoad="showCountDown();">');
          }
      else
          {
         echo ('<body onLoad="startTimer();">');
         }
?>

Doch ich will den oberen Code für eine Weiterleitung nutzen, damit z.B. da steht "Du wirst in XY Sekunden weitergeleitet"...

Kann mir einer erklären, wie das geht?
 
ich würde behaupten für deinen Zweck ist das Script viel zu aufwendig.

Code:
var to, timer, show, intval
function go(t,ti,s) {
  to = t
  timer = ti
  show = s
  intval = window.setInterval("countdown()",1000)
}
function countdown() {
  if(timer == 0)
    document.location.href = to
  document.getElementById(show).innerHTML = 'Sie werden in '+timer+' Sekunden weitergeleitet.'
  timer--
}
und dann im HTML so aufrufen:
Code:
<body onload="go('http://www.google.de',8,'anzeige')">
<div id="anzeige"></div>
 
Danke, funktioniert einwandfrei, aber hier nochmal für die Allgemeinheit:

Code:
<body onload="go('Link',Sekunden,'[COLOR=seagreen]Name[/COLOR]')">
<div id="[COLOR=seagreen]Name[/COLOR]"></div>

Also Link ist der Link, wo die Seite hinleiten soll, Sekunden die Anzahl von Sekunden, die vergehen soll, bis man weitergeleitet wird und der Name ist wichtig, damit das ganze Ding angezeigt werden kann, aber drauf achten, dass auch beides gleich ist, wenn ein Fehler drinnen ist, gehts nicht...
 

Kleine Erweiterung der Frage:
Wie kann ich das ganze zu einer unabhängigen URL machen (also mit PHP)?

Also: http://www.domain.de/pfad/name.php?url=to&from=from&name=name&sec=timer

to = URL, also wohin die Seite weiterleiten soll
from = von WO man weitergeleitet wird (Name oder URL)
name = Name der URL (URL selbst ist Variable to)
timer = in wievielen Sekunden weitergeleitet werden soll


Das ganze soll dann in fertiger Form so aussehen
Beispiel: http://www.domain.de/pfad/name.php?url=http://www.google.de&from=HTML.de&name=Google&sec=8
Beispiel 2: http://www.domain.de/pfad/name.php?url=http://www.html.de&form=Google&name=HTML.de&sec=643543764867

Also egal was man bei to oder timer eingibt, die Seite öffnet sich dann immer, versteht ihr mich?

Ich hab den obrigen Code mal umgeschrieben, dass im Text, der erscheinen soll, die Adresse steht.
Code:
<SCRIPT language="JavaScript">var to, timer, show, intval[/COLOR]
[COLOR=black]function go(t,f,n,ti,s) {[/COLOR]
[COLOR=black]  to = t[/COLOR]
[COLOR=black]  from = f[/COLOR]
[COLOR=black]  name = n[/COLOR]
[COLOR=black]  timer = ti[/COLOR]
[COLOR=black]  show = s[/COLOR]
[COLOR=black]  intval = window.setInterval("countdown()",1000)[/COLOR]
[COLOR=black]}[/COLOR]
[COLOR=black]function countdown() {[/COLOR]
[COLOR=black]  if(timer == 0)[/COLOR]
[COLOR=black]    document.location.href = to[/COLOR]
[COLOR=black]document.getElementById(show).innerHTML = 'Du wirst in '+timer+' Sekunden von '+from+' zu [B]'+name+'[/B] weitergeleitet!'[/COLOR]
[COLOR=black]  timer--[/COLOR]
[COLOR=black]}</SCRIPT>[/COLOR]
[COLOR=black]

Hierbei hab ich einfach nur die Variable '+name+' als Name hinzugefügt!
Der andere Code bleibt gleich (ich hab ein kleines Beispiel hinzugefügt):
Code:
<body onload="go('http://www.google.de','HTML.de','Google',8,'anzeige')">[/COLOR]
[COLOR=black]<div id="anzeige"></div>


Was dann rauskommt ist: Du wirst in 8 Sekunden von HTML.de zu Google weitergeleitet!

Ich habs schon getestet, es geht...
 
Zuletzt bearbeitet:
klar, das geht so lange dein Webspace PHP unterstützt:

PHP:
<html>
<head>
<script>
var to,timer,show
to = '<?php echo $_GET["to"]; ?>'
timer = <?php echo $_GET["sekunden"]; ?>
show = 'anzeige'
window.onload = go

function go() {
  intval = window.setInterval("countdown()",1000)
}
function countdown() {
  if(timer == 0)
    document.location.href = to
  document.getElementById(show).innerHTML = 'Du wirst in '+timer+' Sekunden zu '+to+' weitergeleitet!'
  timer--
}
</script>
</head>
<body>
<div id="anzeige"></div>
</body>
</html>

So lange in der Url kein ' vorkommt kannst du das teil dann so aufrufen
name_der_Seite.php?go=Zieladress&sekunden=wartezeit
 
Dann ist das doch aber auch in folgendem Code-Teil auch to oder?
Code:
[FONT=Courier New]window.onload = go[/FONT]

Ich teste das ganze mal mit to...
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben