Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    52

    Problema di aggiornamento

    sto creando una pagian web dove in pratica l'utente assegna il valore a un cookie e quest'ultima si cancella in automatico dopo 2 minuti o con un click di un apposito pulsante, tutto ciò avviene per mezzo di una sola pagina. Il problema è che per aggiornare o cancellare il cookie devo aggiornare la pagina 2 volte. Presumo che il problema si possa ovviare creando 2 pagine, qualcuno saprebbe dirmi come fare tutto in una pagina? ho riscontrato questo problema in più di un'occasione non solo con i cookie.


    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Eserczio003</title>
    </head>
    <body>
    <form method="post" action="esercizio003.php">
    <?php

    if (isset($_POST['Elimina']))    
    setcookie('txt');

    if (isset(
    $_POST['Accedi'])){    
    @
    $nome=$_POST['TXTnome'];    
    setcookie('txt',$nome,time()+120);}

    if (isset(
    $_COOKIE['txt']) && $_COOKIE['txt']!=""){    
    echo 
    'Il nome inserito è : '.$_COOKIE['txt'].'<br/> Il cookie durerà per due minuti o         
    <input type="submit" title="Elimina" value="Elimina" name="Elimina">'
    ;}
    else {    
    echo 
    '<input type="text" placeholder="Inserisci un nome" name="TXTnome" required="required"><br/>        
    <input type="submit" title="Accedi" value="Accedi" name="Accedi"><br/>'
    ;}
    ?>
    </form>
    </body>
    </html>
    inoltre come si può creare un contatore che mi indica il conutdown dei 120 secondi?

  2. #2
    Utente di HTML.it L'avatar di las
    Registrato dal
    Apr 2002
    Messaggi
    1,221
    Citando dal manuale:
    If you set a cookie (ie send it to the browser), it won't be sent back until the next request and so the data won't be present in $_COOKIE.
    quindi per ovviare al problema, senza dover ricorrere a una seconda, pagina farei una cosa del genere:

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Eserczio003</title>
    </head>
    <body>
    <form method="post" action="testCookie.php">
    <?php

    if (isset($_POST['Elimina']))
        unset(
    $_COOKIE['txt']);
       
    if (isset(
    $_POST['Accedi'])){    
        @
    $nome=$_POST['TXTnome'];    
        
    setcookie('txt',$nome,time()+120);
        
    header("Location: ".$_SERVER['PHP_SELF']);
    }

    if (isset(
    $_COOKIE['txt'])){    
        echo 
    'Il nome inserito è : '.$_COOKIE['txt'].'<br/> Il cookie durerà per due minuti o          
        <input type="submit" title="Elimina" value="Elimina" name="Elimina">'
    ;
    }
    else {    
       echo 
    '<input type="text" placeholder="Inserisci un nome" name="TXTnome" required="required"><br/>        
       <input type="submit" title="Accedi" value="Accedi" name="Accedi"><br/>'
    ;
    }
    ?>
    </form>
    </body>
    </html>
    Il calcolatore è straordinariamente veloce, accurato e stupido.
    L'uomo è incredibilmente lento, impreciso e creativo.
    L'insieme dei due costituisce una forza incalcolabile.
    (Albert Einstein)

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.