[Cookie] Funzione ''isset'' per le verifiche: necessaria in tutte le pagine?

Salve a tutti,

premetto che sono un neofita sull'argomento "cookie in php". Sto sviluppando una roba per il mio sito, per meglio dire un effetto grafico, che desidero venga visualizzato soltanto una volta e soltanto alla prima visita dell'utente.

..dopodichè..niente effetto grafico.

Vorrei fare una roba del genere:

[Ve la imposto descrivendola "terra-terra" ;) ]

- Se tu, utente, visiti per la prima volta il sito...e quindi non ti ho io, sito internet in questione, ancora inviato nessun cookie: visualizza questo bell'effetto grafico introduttivo, SOLO per questa TUA PRIMA VOLTA.

- Se tu, utente, hai già visitato questo sito, allora io (sito in questione) non ti mostrerò alcun effetto grafico.

....ecco....il codice che sto sviluppando per questo scopo è il seguente:

<?php

session_start(); // Piccola postilla: è per forza necessario impostare la session start() ?

$cookie = setcookie("bla", "bla", time()+3600);

  if (!isset($cookie)) {

     echo "<script> --- script che stampa a video l'effetto grafico --- </script>";

  }
?>
<html>
..bla bla bla..

Ecco. Se questa è l'impostazione corretta....devo ripetere questo pezzo di codice per ogni pagina del sito?

(Perchè se si...ogni pagina del sito avrà un effetto grafico introduttivo per l'utente che entrerà nel portale per la prima volta..)

Grazie a tutti.

inviato 5 anni fa
wartpro
X 0 X

session_start() serve per le sessioni, nel tuo caso quindi non serve.

Non devi scrivere il cookie come prima cosa, ma devi prima leggere il cookie (da $_COOKIE). Se l'utente non ha il cookie, gli mostri quello che devi mostrare e poi scrivi il cookie (magari senza il terzo parametro, altrimenti scade).

Infine: sì, devi fare questa cosa in tutte le pagine in cui ti serve il controllo del cookie. Comunque puoi usare un include, purché ti assicuri di non aver inviato nessun output prima di scrivere il cookie.

risposto 5 anni fa
Massimiliano Arione
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda