kostenloser Webspace werbefrei: lima-city


Countdown mit Php

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    jonas0999

    jonas0999 hat kostenlosen Webspace.

    Ich habe eine Frage:
    Wie programmiert man einen tag/countdown">Countdown mit Php ???:confused::confused::confused:
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. c*********c

    <?

    $countdown = 10; // Countdown in Sekunden

    for($i =0; $ i <= $countdown; $i++)
    {
    echo $i ."<br>";
    sleep(1); // Das Script wartet 1 Sekunde
    }

    ?>


    So funktioniert das!


  4. Autor dieses Themas

    jonas0999

    jonas0999 hat kostenlosen Webspace.

    Thank you compactdisc !!!

    Edit jacr
    Zweiter Beitrag:

    Der Code von compactdisc funktioniert nich !!!:slant::slant::slant:
  5. m*********1

    ok eine frage, soll der code immer wieder neu anfangen, wenn zum beispiel auf eine seite gehst oder soll er wie bei einem online game anfnagen wennman klickt und dann 3 stunden laufen. aber er f?ngt nicht jedes mal neu an sondern l?uft durch. was f?r einen willst du haben
  6. Autor dieses Themas

    jonas0999

    jonas0999 hat kostenlosen Webspace.

    Ich meine das mit dem Anklicken !!!:blah::blah::blah:
  7. m*********1

    also brauchst du es f?r ein Browsergame oder willst du einst, das man zumbeispiel 15 sekunden warten muss bevor man weiter kann, zum beispiel wenn man sicher sein will das die Regeln gelesen werden?
  8. Autor dieses Themas

    jonas0999

    jonas0999 hat kostenlosen Webspace.

    Ich meinte ein Game !!!
    W?hre cool wenn ich nen Beispielcode kriegen k?nnt
  9. Wieso wollen es die Leute nicht verstehen...
    Es n?tzt nichts ein Browser Game proggen zu wollen, wenn man nicht PHP beherscht!
    Wohlgemerkt beherscht!
    Also h?rt auf mit dem Schwachsinn!
  10. Autor dieses Themas

    jonas0999

    jonas0999 hat kostenlosen Webspace.

    Das sollte nich wirklich ein Game werden !!!
    Ich frag f?r nen Freund (Lima City Name:samson)!!!
  11. m*********1

    jo bekommst du jetzt hier der code, den musst du einbinden auf der seite wo du ihn anzeigen lassen willst, was wichtig ist, das du eine DB hast, weil du timestamps setzten musst:

    hier der code, der gebraucht wird, umd den aktuellen countdown anzuzeigen, also wenn der Zocker zum beispiel sehen will wie lange ein geb?ude noch braucht:

    $zeit_beim_besuch = time();
    	
    		$dbName = "ghostsoldier";
    		$dbHost = "localhost";
    		$dbUser = "root";
    		$dbPW = "";
    		if (!(($dblink = mysql_connect($dbHost,$dbUser,$dbPW)) && (mysql_select_db($dbName,$dblink)))) die(mysql_error());
    
    $sql ="UPDATE  bauen
                         SET
                                  ak_datum = '".$zeit_beim_besuch."'
    
                         WHERE
                                     username like '".$_SESSION['user_username']."' AND 
                             		 password = '".$_SESSION['user_password']."'";
    						    $result = mysql_query($sql) or die(mysql_error().'<br />Query: '.$sql);


    ok hier kommt jetzt der eigentliche Countdown:

    //Abfrage der DB nach den Timestamps
    <?php
    		$dbName = "ghostsoldier";
    		$dbHost = "localhost";
    		$dbUser = "root";
    		$dbPW = "";
    
    		if (!(($dblink = mysql_connect($dbHost,$dbUser,$dbPW)) && (mysql_select_db($dbName,$dblink)))) die(mysql_error());
    
    		
    		if ($query = mysql_query("SELECT datum, ak_datum FROM bauen WHERE username like '".$_SESSION["user_username"]."'")) {
    			while ($zeit = mysql_fetch_array($query)) {
    				$time_beim_bau = $zeit["datum"];
    				$time_beim_besuch = $zeit["ak_datum"];
    
    			}
    		} else die(mysql_error());
    		//43200 sind 3 tage glaube ich musst du also anpassen wie du es brauchst
    		$bauzeit_baracken = $time_beim_bau + 43200;
    				
    		$dauer = $bauzeit_baracken - $time_beim_besuch;
    		
    		?> 
    
    //der Coundtdown
        <script type="text/javascript">
         <!--
          var countdown = <?=$dauer?>;;
         
          function doCount()
           {
            if (countdown > 0)
             {
              countdown--;
              document.forms['counter'].elements['counter'].value = formatTime(countdown) + ' Weiter';
              window.setTimeout('doCount()', 1000);
             }
             else
             {
              document.forms['counter'].elements['counter'].value = 'Zur n?chsten Seite';
              document.forms['counter'].elements['counter'].disabled = false;
             }
           }
         
          function formatTime(time)
           {
            var h = Math.floor(time / 3600);
            var m = Math.floor(time % 3600 / 60);
            var s = time - (h*3600 + m*60);
           
            s = ( (s < 10) ? '0' : '' ) + s;
            h = ( (h < 10) ? '0' : '' ) + h;
            m = ( (m < 10) ? '0' : '' ) + m;
           
            return h + ':' + m + ':' + s;
           }
         
         //-->
        </script>


    auch ganz wichtig, ich habe es so gemacht, das der Countdown auf einem Button angezeigt wird, und wenn der Button fertig ist, kann der User auf die n?chste Seite gehen:

    <input type="button" name="counter" value="" onClick="document.location.href='fertig_kraftwerk.php';" disabled class="login">


    Er wird also sichtbar, wenn der Countdown abgelaufen ist, und jetzt noch was wichtiges, wenn der User auf bauen klickt, wird auch ein Timestamp gespeichertz, ist ja klat um zu sehen wie lange es noch braucht:

    $setzten_des_datums_beim_bau_kraftwerk = time();
    	
    		$dbName = "ghostsoldier";
    		$dbHost = "localhost";
    		$dbUser = "root";
    		$dbPW = "";
    		if (!(($dblink = mysql_connect($dbHost,$dbUser,$dbPW)) && (mysql_select_db($dbName,$dblink)))) die(mysql_error());
    
    $sql ="UPDATE  bauen
                         SET
                                  datum = '".$setzten_des_datums_beim_bau_kraftwerk."'
    
                         WHERE
                                     username like '".$_SESSION['user_username']."' AND 
                             		 password = '".$_SESSION['user_password']."'";
    						    $result = mysql_query($sql) or die(mysql_error().'<br />Query: '.$sql);


    und fertig ist der Timer, denk an die DB
  12. Autor dieses Themas

    jonas0999

    jonas0999 hat kostenlosen Webspace.

    Danke !!!:angel::angel::angel:
  13. @mastermoul1:
    hast du das eben mal schnell geproggt oder hattest du das schon fertig, sieht n?mlich schon etwas aufwendiger aus!
  14. Jonas0999 k?nntest du deine Privaten Nachrichten mal anschauen!
  15. m*********1

    ich habe ihn schon vorher geschrieben, ich habe auch versucht ein og zu machen, daher der coe warum fragst du?
  16. m*********1

    und Jonas klappt es oder brauchst du noch Hilfe?
  17. f*******c

    boa crass genau sowas brauch ich auch gerade ^^
    also den java skript teil...das sind doch nur funktionen oder? wie benutzt man die denn nun? *keine ahnung von java skript habe -.-* und was macht er am ende vom countdown?
  18. m*********1

    Also hier nochmal eine erkl?rung vom Countdown.
    Du hast z.B. eine Seite wo du H?user bauen kannst, da hast du dann zum beispiel einen Button f?r ein Haus zubauen:

    <form action="<?php $_SERVER["PHP_SELF"] ?>" method="post">
    <input type="submit" name="bauen" value="Haus Bauen">


    Dann l?sst du im gleichen Script oder die Seite wieder annehmen:

    <?
    //erster Timestamp, von da ab l?uft der Countdown
    
    $setzten_des_datums_beim_bau_des_hauses = time();
    
        
    
            $dbName = "ghostsoldier";
    
            $dbHost = "localhost";
    
            $dbUser = "root";
    
            $dbPW = "";
    
            if (!(($dblink = mysql_connect($dbHost,$dbUser,$dbPW)) && (mysql_select_db($dbName,$dblink)))) die(mysql_error());
    
    //Speichern des Timestamps in einer DB
    
    $sql ="UPDATE  bauen
    
                         SET
    
                                  datum = '".$setzten_des_datums_beim_bau_des_Hauses."'
    
    
    
                         WHERE
    
                                     username like '".$_SESSION['user_username']."' AND
    
                                      password = '".$_SESSION['user_password']."'";
    
                                $result = mysql_query($sql) or die(mysql_error().'<br />Query: '.$sql);
    ?>


    So jetzt haben wir alles gespeichert, was ich auch noch rate ist, das du in der DB zum Beispiel hingehst und sagts, eine 1 soll er setzten wenn am bauen ist, und eine Abfrage am Anfang des Dokuments machen, so das er dann auf die Seite umgeleitet wird wo der Countdown ist wenn eine 1 dort steht.
    Jetzt ist es wichtig, das du auf der Seite wo sp?ter der Countdown stehen soll folgendes am Anfang machst, er soll einen Timestamp setzten um die Zeit auszurechen die der bnau noch ben?tigt:

    <?
    $zeit_beim_besuch = time();
    
        
    
            $dbName = "ghostsoldier";
    
            $dbHost = "localhost";
    
            $dbUser = "root";
    
            $dbPW = "";
    
            if (!(($dblink = mysql_connect($dbHost,$dbUser,$dbPW)) && (mysql_select_db($dbName,$dblink)))) die(mysql_error());
    
    
    
    $sql ="UPDATE  bauen
    
                         SET
    
                                  ak_datum = '".$zeit_beim_besuch."'
    
    
    
                         WHERE
    
                                     username like '".$_SESSION['user_username']."' AND
    
                                      password = '".$_SESSION['user_password']."'";
    
                                $result = mysql_query($sql) or die(mysql_error().'<br />Query: '.$sql);
    ?>


    Nun folgt noch der Countdown der die Zeit jetzt ausrechnet und so wei? wie lange es noch braucht. Dieser teil geh?rt in den Head bereich also so:

    <html>
    <head>
    <title>Meine Seite</title>
    <?
    //Abfrage der DB nach den Timestamps
    
    <?php
    
            $dbName = "ghostsoldier";
    
            $dbHost = "localhost";
    
            $dbUser = "root";
    
            $dbPW = "";
    
    
    
            if (!(($dblink = mysql_connect($dbHost,$dbUser,$dbPW)) && (mysql_select_db($dbName,$dblink)))) die(mysql_error());
    
    
    
            
    
            if ($query = mysql_query("SELECT datum, ak_datum FROM bauen WHERE username like '".$_SESSION["user_username"]."'")) {
    
                while ($zeit = mysql_fetch_array($query)) {
    
                    $time_beim_bau = $zeit["datum"];
    
                    $time_beim_besuch = $zeit["ak_datum"];
    
    
    
                }
    
            } else die(mysql_error());
    
            //43200 sind 3 tage glaube ich musst du also anpassen wie du es brauchst
    
            $bauzeit_baracken = $time_beim_bau + 43200;
    
                    
    
            $dauer = $bauzeit_baracken - $time_beim_besuch;
    
            
    
            ?>
    
    
    
    //der Coundtdown
    
        <script type="text/javascript">
    
         <!--
    
          var countdown = <?=$dauer?>;;
    
         
    
          function doCount()
    
           {
    
            if (countdown > 0)
    
             {
    
              countdown--;
    
              document.forms['counter'].elements['counter'].value = formatTime(countdown) + ' Weiter';
    
              window.setTimeout('doCount()', 1000);
    
             }
    
             else
    
             {
    
              document.forms['counter'].elements['counter'].value = 'Zur n?chsten Seite';
    
              document.forms['counter'].elements['counter'].disabled = false;
    
             }
    
           }
    
         
    
          function formatTime(time)
    
           {
    
            var h = Math.floor(time / 3600);
    
            var m = Math.floor(time % 3600 / 60);
    
            var s = time - (h*3600 + m*60);
    
           
    
            s = ( (s < 10) ? '0' : '' ) + s;
    
            h = ( (h < 10) ? '0' : '' ) + h;
    
            m = ( (m < 10) ? '0' : '' ) + m;
    
           
    
            return h + ':' + m + ':' + s;
    
           }
    
         
    
         //-->
    
        </script>
    ?>

    </head>

    So und wenn du das hast, muss der Countdwn ja noch irgendwo angezeigt werden, das passiert dann auf den Button, wo vorher z.B. Haus bauen stand:

    <?
    <input type="button" name="counter" value="" onClick="document.location.href='fertig_kraftwerk.php';" disabled class="login">
    ?>


    wo ich jetzt fertig_kraftwerk.php stehen hab, musst du deinen Link einbauen
  19. f*******c

    also ich hab das mal versucht... aber bei mir steht auf dem Button einfach gar nichts -.-

    http://elektranox.el.funpic.de/countdown.php

    ich hab den oberen teil erstmal weggelassen und $dauer direkt ?bergeben.
  20. m*********1

    ja ok, dann kannst du die Dauer auch so ausgeben Lassen, aber bei mir klappt es, hast du dir auch eine Datenbank eingerichtet.

    Achja, ich wei? was du falsch gemacht hast. Wenn du den Code genau liest wirst du das hier finden:

    WHERE
                                     username like ".$_SESSION['user_username']."' AND
    
                                     password = '".$_SESSION['user_password']."'";


    Wie man sieht wurde dort eine Session ge?ffnet. Das hei?t du musst auch eine Session ?ffnen
  21. f*******c

    ?hm um den ganzen kram geht es mir doch gar nich ^^
    also der button da soll doch der countdown draufstehen oder? die dauer hab ich ja schon :P dann brauh ich den restlichen php krams nichmehr aber der countdown selbst geht irgendwie nich :slant:
  22. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!