Visualizzazione risultati 1 fino 15 di 15

Discussione: [PHP]Realizzare un redirect con timer che viene "stampato" a video

  1. #1
    Guest

    Predefinito [PHP]Realizzare un redirect con timer che viene "stampato" a video

    Buona sera.
    E' un pò di giorni che mi "sfracello" col php e forse vi ho un pò stressati (ve ne chiedo perdono )
    Non c'è stato modo di creare un captcha ben integrato in drupal quindi mi sono arrangiato così:
    Qui inserisci i dati:
    http://atterzolivello.altervista.org/byAT/?q=node/77
    e poi vieni mandato qui:
    http://atterzolivello.altervista.org/captcha/invio.php
    ora viene il bello dovrei fare un redirect da
    http://atterzolivello.altervista.org/captcha/invio.php
    a
    http://atterzolivello.altervista.org/byAT/?q=node/77
    Beh sò già che l'unico modo per farlo in php (unico?) è questo:
    Codice PHP:
    header("Refresh: 10; http://atterzolivello.altervista.org/byAT/?q=node/77");
    Bene ora vorrei che mi fosse mostrato il messaggio:
    redirect tra 10 9 8 7 6 5 4 3 2 1 secondi...
    cioè è possibile realizzare un timer?
    Grazie per la cortese attenzione.
    ciao!

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,650

    Predefinito

    PHP? Ma con PHP sbaglio o dovresti aggiornare ogni secondo la pagina?? Se un utente ha una connessione lenta che non riesce ad aggiornare la pagina entro 1 secondo... non vedrebbe niente!!

    IO (e ripeto, IO), farei con javascript una cosa del genere:
    Codice HTML:
    <body onLoad="javascript:ricorsiva('10')">
    <script>
    function ricorsiva(n)
    {
         document.getElementById('contatore').innerHTML = n;
         if(n == 0)
              window.location.href='www.google.it';   //reindirizzo a google
         else
         setTimeout("ricorsiva("+(n-1)+")",1000); //aspetto 1 secondo e richiamo la funzione
    }
    </script>
    <div id='contatore'>10</contatore>
    </body>
    ...però non hai la sicurezza: se un utente va direttamente alla pagina di destinazione... lo dovresti controllare con php: salvi in un file di sessione il timestamp; quando l'utente si collega controlli il timestamp attuale: se è maggiore di 10 di quello precedente lo fai entrare, altrimenti no

    ...come al solito le mie soluzioni non vanno mai bene, ma ci ho provato

    Ciao!
    Ultima modifica di alemoppo : 23-12-2009 alle ore 21.21.33

  3. #3
    Guest

    Predefinito

    che vada direttamente alla pagina di destinazione non credo sia un problema no?
    Ultima modifica di atterzolivello : 23-12-2009 alle ore 21.22.44

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,650

    Predefinito

    Citazione Originalmente inviato da atterzolivello Visualizza messaggio
    che vada direttamente alla pagina di destinazione non credo sia un problema no?
    Dipende da cosa vuoi fare... Ad esempio ci sono quei siti che se non sei registrato o non hai pagato ti fanno aspettare n secondi prima del download.... ma se non vuoi fare una cosa di questo tipo va bene anche senza controlli!

  5. #5
    Guest

    Predefinito

    Guarda il mio primo messaggio e capirai

  6. #6
    Guest

    Predefinito

    Non puoi aggiornare contenuto in una pagina senza aggiornarla se non con Javascript. L'unica soluzione è quella postata da alemoppo. Inserisci l'header in php, poi nella pagina tramite Javascript inserisci il countdown.

  7. #7
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,650

    Predefinito

    Sisi, visto.. ma perché non va bene la mia soluzione? anzi, il redirect lo fa in automatico da PHP, quindi del window.location.href=''; non ne hai bisogno

    EDIT: anticipato

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,650

    Predefinito

    Probabilmente è un tuo errore; va bene che lo script l'ho fatto lì per lì e potrebbero esserci errori, ma guarda lo script grezzo

    EDIT: adesso guardo il tuo cidoce che mi hai dato

    EDIT2: ehm... naturalmente devi attivare js!

    EDIT3: il session_start() va PRIMA di qualsiasi output! quindi anche prima di <html>!!
    Ultima modifica di alemoppo : 23-12-2009 alle ore 21.38.20

  9. #9
    Guest

    Predefinito

    Scusa..
    ho sbagliato io.
    Sai dopo una certa ora...
    va alla perfezione
    complimenti!
    guarda:
    http://atterzolivello.altervista.org/invio.php
    <?php
    session_start();
    ?>
    <html>
    <head>
    <title="invio richiesta scambio link" />
    </head>
    <body onLoad="javascript:ricorsiva('10')">
    <?php


    $utente = $_POST['captcha'];
    $validato = $_SESSION['crea'];

    echo "Codice inserito: <b>{$utente}</b> <br />";
    echo "Codice CAPTCHA: <b>{$validato}</b>";
    // exit();

    if($utente == $validato)
    {
    echo "<p>valido</p>";
    $email = "ilnero91@hotmail.it"; //Specificare un indirizzo email valido
    $nome = $_POST["nome"];
    $testo = $_POST["testo"];
    $ris = $_POST["ris"];

    if($nome == "")
    echo "Devi inserire l'indirizzo del sito.";
    elseif($testo == "")
    echo "Devi inserire una descrizione del sito.";
    elseif($ris == "")
    echo "Devi inserire un indirizzo e-mail con il quale posso contattarti";
    elseif(mail($email, "Scambio link", "mail: $ris, Indirizzo sito: $nome", $testo))
    echo "<p>La tua e-mail è stata inviata correttamente al mio indirizzo.</p>";
    else
    echo "<p>Si è verificato un errore durante l'invio.</p>";
    }
    else echo "<p>Codice Captcha Errato.</p>";
    header("Refresh: 10; http://atterzolivello.altervista.org/byAT/?q=node/77");
    echo "<a href=\"http://atterzolivello.altervista.org/byAT/?q=node/77\" />clicca qui se non viene fatto il reedirect</a>";
    ?>
    <script>
    function ricorsiva(n)
    {
    document.getElementById('contatore').innerHTML = n;

    setTimeout("ricorsiva("+(n-1)+")",1000); //aspetto 1 secondo e richiamo la funzione
    }
    </script>
    <div id='contatore'>10</contatore>

    </body>
    </html>
    PS: ti piace il mio nuovo sito?
    Ultima modifica di atterzolivello : 23-12-2009 alle ore 21.41.52 Motivo: corretto sessionstart();

  10. #10
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,650

    Predefinito

    Leggi il mio EDIT3!

    EDIT: ...e poi <script> lho fatto per prova: sostituisci
    Codice HTML:
    <script>
    con

    Codice HTML:
    <script language='javascript' type='text/javascript'>
    EDIT:

    si, mi piace il nuovo sito!!!!!
    Ultima modifica di alemoppo : 23-12-2009 alle ore 21.44.19

  11. #11
    Guest

    Predefinito

    Si mi pareva ci fosse qualcosa di strano
    <script language='javascript' type='text/javascript'>
    ma è un dettaglio comunque.. viene eseguito ugualmente
    non sono pignolo su queste cose.

  12. #12
    Guest

    Predefinito

    Però i validatori della W3C Schools sì!

  13. #13
    Guest

    Predefinito

    Whe.. nel mio web io detto legge
    Scherzo hai ragione se non vengono rispettati gli standard a volte non è sicuro al 100 per 100 che le tue pagine vengano visualizzate correttamente da tutti i browser

  14. #14
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito

    In realtà ti serve per impostare il contenuto di quel tag.
    Il tag script non è fatto soltanto per javascript quindi è meglio specificare...

  15. #15
    Guest

    Predefinito

    Fatto

Regole di scrittura

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