• User

    Mi potreste fare un esempio pratico da provare in locale?


  • User Attivo

    Come ti dicevo, il funzionamento è molto semplice:
    un cookie è come una variabile quindi lo puoi trattare come tale.
    Se scrivi:
    [PHP]
    //attenzione alle virgole!!
    setcookie("utente", "valore", time ()+3600);[/PHP]
    è come se scrivessi:
    [PHP]$utente="valore";[/PHP]
    Attenzione a non mettere la $ nel setcookie, (cookie è il termine corretto) perché non serve.
    La funzione per settare un cookie è questa:
    setcookie("nome del cookie","valore del cookie", durata del cookie);
    non devi scrivere nulla di più.
    Sostituisci in nome del cookie e valore del cookie con quello che ti pare.
    La durata la setti come ti ho detto in precedenza.
    E non c'è molta distinzione tra il locale e il server remoto, a meno che non hai un server con php 4 e il remoto con il 5 e passa. Ci sono funzioni che sono state modificate tra le due versioni ma certamente non quelle basilari che servono a te, quindi vai tranquillo 🙂
    Attento alla corretta scrittura del codice. Una sola virgola manda in errore un intera pagina. A volte anche un sito intero.
    Quindi guarda bene quello che postiamo (esempio COOKIE e non COOCKIE piuttosto che le virgole) e cerca di essere sempre preciso, se no avrai sempre molti errori e grattacapi!!! :mmm:

    Per il codice colorato, quando rispondi a un post (non la risposta veloce), in alto vedi una pagina con scritto, piccolo piccolo, php. Se clicchi lì ti aggiunge due tag PHP tra parentesi quadre, il secondo con uno slash ( /PHP ) prima di php.
    Quindi fai:
    (metto gli spazi se no li nasconde, ma tu toglili; le quadre sono attaccate alle lettere)
    [ PHP ]
    echo "ciao!";
    [ /PHP ]


  • User

    Sono ancora in alto mare.


  • User Attivo

    @mauranto99 said:

    Sono ancora in alto mare.

    Ma scusa, te l'ho spiegato in ogni salsa! Come fa a non esserti chiaro?
    Ti ho pure scritto come fare... Nemmeno con un copia e incolla?
    Allora leggiti una guida di php.HTML.it riguardo i cookie e le sessioni.
    Ultima prova per farti capire:
    setti il cookie dove ti pare (solo una volta! Non va ripetuto in ogni pagina a meno che non voglia cambiarne il valore) poi all'inizio di ogni pagina inserisci il cookie in una variabile:
    $prova=$_COOKIE['nome_cookie'];
    poi usi la variabile prova come ti pare. Ora è chiaro? Se no, cosa non ti è chiaro?
    [URL=http://www.giorgiotave.it/forum/gt-world/101972-forum-gt-disponibile-alle-versioni-per-telefoni-cellulari.html]Postato via Mobile


  • User

    Guarda un po'!.
    Prima pagina

    [ PHP ]
    <?php
    $utente= "valore";
    setcookie("utente", "valore", time ()+3600);
    ?>
    [ /PHP ]
    Seconda pagina

    [ PHP ]
    <?php
    $utente= "valore";
    {
    echo $_COOKIE['utente'];
    }
    ?>
    [ /PHP ]
    Cosi a video mi stampa valore.
    Nel browser trovo un coockie di nome utente, con contenuto valore.
    Tutto quello che son riuscito a fare.

    E' giusto cosi?
    Se cosi e giusto continuo da qui.

    Ciao!

    :arrabbiato:


  • ModSenior

    Si è corretto, un cookie è tutto qui, nulla di più.


  • User Attivo

    Questo:
    $utente= "valore";
    è inutile.
    Lo usi nella funzione del settaggio del cookie? No.
    Nemmeno nell'altra pagina.
    Quindi toglilo.
    Se invece lo vuoi usare nel settaggio del cookie allora fai:
    [PHP]
    $utente= "valore";
    //senza virgolette
    setcookie("utente", $utente , time ()+3600);
    [/PHP]

    p.s. ma non ti avevo detto di non mettere gli spazi dentro [ PHP ]???


  • User

    OK! il primo passaggio funziona.
    Devo provare il secondo.

    $utente= "valore";
    //senza virgolette
    setcookie("utente", $utente , time ()+3600);

    Ma che spazio devo mettere, non è giusto così?, [ PHP ][ /PHP ]
    Ciao! grazie.

    :ciauz::ciauz:


  • User

    Grazie! a tutti.

    :ciauz::ciauz:


  • ModSenior

    Non devi mettere gli spazi nell'apertura e chiusura dei bbcode. Trovi qui la guida per l'utilizzo dei bbcode.


  • User

    OK! Proviamo

    [php]
    echo "proviamo se funziona";
    echo "Grazie";
    [/php]

    Funziona!
    Così se devo postare il codice si capisce qualcosa.
    Prima o poi ci arrivo.


  • User Attivo

    figurati!
    :ciaosai:


  • User

    Ciao! sono ancora qua.
    Ho fatto tre pagine per provare il funzionamento del coockie, quello che volevo fare non mi riesce. Posto le pagine e vi spiego cosa voglio fare.
    Prima pagina l'utente inserisce il suo nome nel campo nome e invia il modulo.

    [html]
    [left]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    <html xmlns=
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Documento senza titolo</title>
    </head>
    <body>
    <br />
    <br />
    <!-- form inserimento nome utente -->
    <form id="form1" name="form1" method="post" action="pagina5.php">
    nome
    <input type="text" name="utente" />
    <input type="submit" name="button" id="button" value="Invia" />
    </form>
    <br />
    <br />
    </body>
    </html>
    [/left][/html]

    Seconda pagina recupero il nome utente e la stampo a video,
    fino a qui tutto a posto, poi invio sempre dalla stessa pagina un cookie,
    anche qui va bene nel browser trovo il cookie.

    [php]
    <?php $utente= $_POST['utente'];
    //Cookie da mandare all'utente
    setcookie("utente", " Ciao $utente" , time ()+3600); ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Documento senza titolo</title>
    </head>
    <body>
    <!-- recupero nome utente e stampa a video -->
    <?php
    $utente = $_POST['utente'];
    echo "Ciao $utente";
    ?>
    <br />
    <br />
    <a href="prova6.php"> vai prova 6 </a>
    </body>
    </html>
    [/php]

    Nella terza pagine vorrei recuperare il cookie, però con il nome dell'utente
    che compila il modulo, se si chiama mario, dovrei mandare nel suo browser un cooockie con contenuto mario.
    come devo fare?, io recupro solo il valore che imposto io.

    [php]
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Documento senza titolo</title>
    </head>
    <body>
    <!-- Stampa a video contenuto coockie -->
    <?php
    $utente= "utente";
    {
    echo $_COOKIE['utente'];
    }
    ?>
    </body>
    </html>

    [/php]

    Nell'attesa ci lavoro su!
    Saluti.

    :fumato: A me tra un po' fuma il cervello.

    Ho corretto le tre pagine postate adesso funzionano, riesco a recuperare il valore del coockie.
    Cosa ne pensate? Giusto così?
    OK!
    Adesso vediamo come riesco a usare il cookie, cosa si puo fare.


  • User Attivo

    Piccola annotazione.
    Come ti avevo già detto, questo:
    [PHP]<?php
    $utente= "utente";
    {
    echo $_COOKIE['utente'];
    }
    ?>[/PHP]
    è totalmente e assolutamente INUTILE.
    Perché setti la variabile utente? tanto non la usi mai!
    E le parentesi graffe a cosa servono? Non hai aperto nessuna funzione o condizione...
    Semmai puoi fare in questo modo:
    [PHP]<?php
    $utente= $_COOKIE['utente'];
    echo $utente;
    ?>[/PHP]
    in questo modo ha senso, così se hai bisogno di usare nuovamente il cookie, basta che richiami la variabile utente!


  • User

    Funziona!.
    Ma io faccio un po' di confusione.


  • User

    Ma con i COOKIE cosa conviene fare?, anche perche per l'area privata conviene usare le sessioni.


  • User Attivo

    passare l'id e il nome dell'utente collegato, magari il fuso orario piuttosto che qualche configurazione personalizzata (colori di sfondo, grandezza testo, tipo font).
    Nessuno di questi è un dato sensibile, anche perché una volta che intercettano l'id utente poi che fanno?
    I dati sensibili invece sono quelli a rischio.
    Quindi tutto quello che può essere altamente privato e segreto è meglio che passi per le sessioni.


  • ModSenior

    Attenzione a non usare i cookie per passare l'id dell'utente, senza fare poi ulteriori controlli in ogni pagina, perchè a modificare il cookie e impostarsi l'id dell'amministratore o comunque di un altro utente è questione di qualche secondo.
    Le sessioni da questo punto di vista garantiscono maggior sicurezza in quanto il visitatore non può modificarel cosi facilmente.


  • User Attivo

    basta fare una codifica con la funzione
    base64_encode()
    e recuperarla con
    base64_decode()

    Chi si sbatte per capire quale sia il codice allora merita di entrare con un altro id 😉


  • ModSenior

    Merita fino ad un certo punto. :giggle: