Visualizzazione risultati 1 fino 7 di 7

Discussione: problema con countdown

  1. #1
    Guest

    Predefinito problema con countdown

    Allora, in un'esercizio sto cercando di fare un sistema di spedizioni, in cui devo usarer un countdown.
    Però mi viene sempre giorni -1.
    Ecco le pagine:
    spedizioni.php
    Codice PHP:
    <?php
    include("../../url.php");
    if(
    file_exists("sessione.txt")) {
    $d = fopen("sessione.txt", "a+");
    $f = fread($d, filesize("sessione.txt"));
    if(
    $f == "ok") {
    ?>
    <html>
    <head>
    <title><?php fopen_r("prova.txt") ?>: TGM -- Mercato</title>
    </head>
    <?php creamenu("prova","TGM: Spedizioni"); ?>
    <form name="spedizioni" action="sped-a.php" method="post">
    Invia una spedizione:<br>
    Uomini Posseduti: <?php
    $var
    = risorse("uomini");
    echo
    $var."<br><br>";
    if(
    $var < 100) {
    echo
    "Non hai sufficienti uomini per intraprendere una missione. Devi averne almeno 100<br>
    </form>
    </body>
    </html>"
    ;
    } else {
    ?>
    <select name="risorse">
    <option value="#">Scegli la risorsa</option>
    <option value="ferro">Ferro</option>
    <option value="petrolio">Petrolio</option>
    </select><br>
    Quanti uomini vuoi mandare? <input type="text" name="uomini" size="4"><br>
    <input type="submit" value="invia la spedizione">&nbsp;<input type="reset" value="cancella">
    </form>
    <?php
    }
    } else {
    header("location: http://localhost/not_login.php");
    }
    } else {
    header("location: http://localhost/not_login.php");
    }
    ?>
    sped-a.php:
    Codice PHP:
    <?php
    //non funziona!
    $risorsa = $_POST['risorse'];
    $uomini = $_POST['uomini'];
    if(
    $risorsa != "#" && $uomini != 0) {
    if(
    $uomini > risorse("uomini")) { // risorse() guarda quanti uomini possiedi
    echo "Non hai $uomini uomini!";
    } else {
    // Configura la data a cui dovrai arrivare
    $targetYear = date("Y");
    //echo "Anno: ".$targetYear."<br>";
    $targetMonth = date("m");
    //echo "Mese: ".$targetMonth."<br>";
    $targetDay = date("d");
    //echo "Giorno: ".$targetDay."<br>";
    $targetHour = date("H");
    //echo "Ora: ".$targetHour."<br>";
    $targetMinute= $uomini / 10;
    //echo "Minuto: ".$targetMinute."<br>";
    $targetSecond= 00;
    // Fine configurazione data

    // configura il formato della data
    $dateFormat = "Y-m-d H:i:s";

    $targetDate = mktime($targetHour,$targetMinute,$targetSecond,$targetMonth,$targetDay,$targetYear);
    //echo "$targetDate<br>";
    $actualDate = time();

    $secondsDiff = $targetDate - $actualDate;

    $remainingDay = floor($secondsDiff/60/60/24);
    $remainingHour = floor(($secondsDiff-($remainingDay*60*60*24))/60/60);
    $remainingMinutes = floor(($secondsDiff-($remainingDay*60*60*24)-($remainingHour*60*60))/60);
    $remainingSeconds = floor(($secondsDiff-($remainingDay*60*60*24)-($remainingHour*60*60))-($remainingMinutes*60));

    $targetDateDisplay = date($dateFormat,$targetDate);
    $actualDateDisplay = date($dateFormat,$actualDate);
    }
    } else {
    echo
    "Errore! Mancanza di uomini o di risorse";
    }
    ?>
    <html>
    <head>
    <style>
    #remain {display: block}
    #finish {display: none}
    </style>
    <title><?php fopen_r("prova.txt") ?>: TGM -- Spedizioni</title>
    <script type="text/javascript">
    var days = <?php echo $remainingDay; ?>
    var hours = <?php echo $remainingHour; ?>
    var minutes = <?php echo $remainingMinutes; ?>
    var seconds = <?php echo $remainingSeconds; ?>

    function setCountDown ()
    {
    seconds--;
    if (seconds < 0){
    minutes--;
    seconds = 59
    }
    if (minutes < 0){
    hours--;
    minutes = 59
    }
    if (hours < 0){
    days--;
    hours = 23
    }

    if (seconds == 1){
    secondi = "secondo";
    } else {
    secondi = "secondi";
    }
    if (minutes == 1){
    minuti = "minuto";
    } else {
    minuti = "minuti";
    }
    if (hours == 1){
    ore = "ora";
    } else {
    ore = "ore";
    }
    if(days == 1) {
    giorni = "giorno";
    } else {
    giorni = "giorni";
    }
    if(days == 0 && hours == 0 && minutes == 0 && seconds == 0) {
    document.getElementById("finish").style.display = 'block';
    document.getElementById("remain").style.display = 'none';
    } else {
    document.getElementById("remain").innerHTML = days+" "+giorni+", "+hours+" "+ore+", "+minutes+" "+minuti+", "+seconds+" "+secondi;
    setTimeout ( "setCountDown()", 1000 );
    }
    }

    </script>
    </head>
    <body onload="setCountDown()">
    <div id="remain"></div>
    <div id="finish"><a href="result.php">Risultato</a></div>

  2. #2
    Guest

    Predefinito

    Potresti dirci qual'è la porzione interessata al problema?


    Ciao!

  3. #3
    Guest

    Predefinito

    L'inizio di sped-a.php

  4. #4
    Guest

    Predefinito

    E qual è la variabile che ti restituisce -1?
    Cosa dovrebbe contenere invece?


    Ciao!

  5. #5
    Guest

    Predefinito

    La variebile è $remainingDay, dovrebbe contenere zero, in quanto nella configrazione della data $targetDay = date("d");

  6. #6
    Guest

    Predefinito

    Stampa il valore di $secondsDiff


    Ciao!

  7. #7
    Guest

    Predefinito

    Ho risolto gestendo le date in javascript (oggetto Date). Mi sorge un'altro problema:
    voglio che il countdown non si azzeri ad ogni refresh della pagina. Come si può fare?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •