Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    36

    refresh immagine tasto dopo istruzione exec

    Domanda da principiante:

    ho una pagina index.php che recita:

    <FORM NAME="form1" METHOD="POST" ACTION="index.php">
    <input type="submit" name="tasto1" value="" style="background-image: url(immagine.jpg);" />
    </FORM>
    <?php
    if (isset($_POST['tasto1']))
    {
    exec("mioscript.sh");
    }
    ?>

    Il pulsante e' composto da una immagine che deve cambiare ogni qualvolta lo si prema
    Questo avviene all'esecuzione dello script mioscript.sh che oltre a varie cose, copia un'immagine random e la scrive con nome immagine.jpg che viene utilizzato appunto come background-image del pulsante
    Il problema pero' e' che il refresh dell'immagine del pulsante non avviene,
    Se io faccio un reload della pagina php ecco che il pulsante si presenta con nuova immagine
    Domanda: la pressione del pulsante e relativo exec dello script non dovrebbe comportare un refresh immediato del form/pagina ??

    Come posso ottenere cio' che sto cercando ??


    P.S.

    Per provare, ho aggiunto un echo :

    {
    exec("mioscript.sh");
    echo(" <img src=\"immagine.jpg\");

    }
    ?>

    ed in questo caso mi viene posta a fianco un'immagine che e' la stessa che dovrebbe avere il tasto ma quest'ultima correttamente cambia ad ogni pressione del tasto stesso

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    36
    Sembra che sia un problema di cache del browser

    Per eliminare il caching ho "quasi" ovviato inserendo all'inizio della pagina:

    <?
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");
    ?>


    e poi ancora :

    <meta http-equiv="expires" content="Mon, 26 Jul 1997 05:00:00 GMT"/>
    <meta http-equiv="pragma" content="no-cache" />


    dico quasi perche' ancora qualche volta il refresh della pagina o meglio della sezione form non e' totale
    Infatti ho 4 pulsanti "immagine" :

    <form name="form1" method="POST" action="index.php">
    <div class="alignleft">
    <input type="submit" name="tasto1" value="" style="background-image: url(image/immagine1.jpg);" />
    </div>
    <div class="aligncenter">
    <input type="submit" name="tasto2" value="" style="background-image: url(image/immagine2.jpg);" />
    </div>
    <div style="clear: both;"></div>
    <br>
    <div class="alignleft">
    <input type="submit" name="tasto3" value="" style="background-image: url(image/immagine3.jpg);" />
    </div>
    <div class="aligncenter">
    <input type="submit" name="tasto4" value="" style="background-image: url(image/immagine4.jpg);" />
    </div>
    <div style="clear: both;"></div>
    </form>


    ma alla pressione di qualsiasi bottone, non sempre tutti e quattro si aggiornano (mentre con un reload della pagina da browser tutto si aggiorna ok)

    Sto sbagliando qualcosa, magari nella struttura della pagina ??

    Grazie

  3. #3
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Se è un problema di cache, prova a mettere come url questo:
    Codice PHP:
    <input type="submit" name="tasto1" value="" style="background-image: url(image/immagine1.jpg?<?php echo time()?>);" />
    puoi anche togliere gli header

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    36
    Boots......che dire......funziona alla perfezione, (almeno per ora) anche senza header

    In "soldoni" fargli fare un echo del time cosa produce ???

    Grazie mille !!!

  5. #5
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Produce una nuova pagina che non esiste in cache ogni volta.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2007
    Messaggi
    36
    Rispolvero questo post datato..
    La pagina fa il suo dovere per quanto elementare essa sia
    Il problema e' che ad ogni refresh ottenuto sia per pressione di un tasto che per refresh a tempo ( <meta http-equiv="refresh" content="8; url=index.php"> )
    quando i bottoni (che sono immagini) si ricaricano producono un fastidioso "lampeggio" , diciamo anche inestetico...
    https://youtu.be/B0iJDGGa7N8

    Come posso ovviare a cio' rimanendo sempre in campo html/php ???
    Qualche cortese suggerimento ?

    Grazie

    P.S. comunque sembra un comportamento di Chrome/Chromium e I.E.
    con Firefox e safari niente lampeggio, il problema e' che sulla scheda video ho installato Chromium-browser....
    Ultima modifica di digitel; 18-06-2015 a 09:12

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.