Setcookie come configurarlo

di il
7 risposte

Setcookie come configurarlo

Salve,

potreste aiutarmi? Non riesco a configurare la stringa dei cookies che, per quanto provi e riprovi,  continua darmi l'errore: 

[07-Aug-2023 23:19:40 Europe/Rome] PHP Warning:  Cannot modify header information - headers already sent by (output started at /home/miosito/public_html/it/tecniche/marte/index.php:1) in /home/miosito/public_html/it/tecniche/marte/index.php on line 3

Le righe sono le seguenti:

<!DOCTYPE html>
<?php 
setcookie("MIOSITO", "miosito", time() + 3600, '/');
?>

Grazie per l'aiuto che potrete darmi.

Carlotta

7 Risposte

  • Re: Setcookie come configurarlo

    09/08/2023 - Carlotta ha scritto:


    potreste aiutarmi? Non riesco a configurare la stringa dei cookies che, per quanto provi e riprovi,  continua darmi l'errore: 

    [07-Aug-2023 23:19:40 Europe/Rome] PHP Warning:  Cannot modify header information - headers already sent by (output started at /home/miosito/public_html/it/tecniche/marte/index.php:1) in /home/miosito/public_html/it/tecniche/marte/index.php on line 3

    […]

    Credo che il messaggio di errore già fornisca la risposta: stai inserendo l'impostazione del cookie nella pagina in una posizione che non si trova all'inizio della stessa, quindi il server ha già inviato parte della pagina (la parte <!DOCTYPE html> almeno) e per farlo ha già anche dovuto restituire le intestazioni della risposta HTTP.

    Come minimo, quel pezzo di codice PHP va messo all'inizio assoluto della pagina, oppure occorre indicare al server di attendere nella risposta e scrivere nella propria cache, prima di restituire qualsiasi contenuto.

  • Re: Setcookie come configurarlo

    Ciao Alka,

    innanzitutto grazie per la risposta. Sto modificando alcune pagine come mi hai indicato:

    <?php
    setcookie("MIOSITO", "miosito", time() + 3600, '/');
    ?>
    <!DOCTYPE html>

    spero che il server gradisca. Ti farò sapere.

    Sai però che mi sembra strano avere come prima riga della pagina il setcookies… mi sembra innaturale… A te non sembra? 

    Considera che la seconda soluzione che tu proponi (indicare al server di attendere nella risposta e scrivere nella propria cache, prima di restituire qualsiasi contenuto) non ho idea di come farla per cui mi devo attenere alla prima soluzione.

    Grazie ancora.

    Carlotta

  • Re: Setcookie come configurarlo

    Ciao Alka,

    purtroppo la soluzione di mettere il setcookies come prima riga non funziona.  Il messaggio è sempre lo stesso:

    [11-Aug-2023 06:02:14 Europe/Rome] PHP Warning:  Cannot modify header information - headers already sent by (output started at /home/miosito/public_html/it/capanna/martello/index.php:1) in /home/miosito/public_html/it/capanna/martello/index.php on line 1

    Ho fatto diverse prove ma niente. Non so proprio più cosa fare. Hai qualche altro suggerimento?

    Grazie.

    Carlotta 

  • Re: Setcookie come configurarlo

    09/08/2023 - Carlotta ha scritto:


    Sai però che mi sembra strano avere come prima riga della pagina il setcookies… mi sembra innaturale… A te non sembra? 

    No, perché dovrebbe essere innaturale? Stai chiamando una funzione che definisce il contenuto di una intestazione, cioè di una parte della risposta - diciamo una “testa” - che viene prima del “corpo” vero e proprio, che è la pagina, quindi se l'istruzione viene invocata quando parte della pagina è già stata restituita, vuol dire che la “testa” è già stata costruita e spedita per poter iniziare a mandare anche il “corpo”, quindi qualunque funzione che modifichi l'intestazione nel migliore dei casi non avrà effetto, nel peggiore dei casi sortirà l'effetto che vediamo in quanto PHP ha il buon cuore di avvisarci senza ignorare la questione. :)

    11/08/2023 - Carlotta ha scritto:


    Ho fatto diverse prove ma niente. Non so proprio più cosa fare. Hai qualche altro suggerimento?

    In questa pagina trovi la disamina di tutte le possibili cause: se non è quella analizzata, potrebbe essere qualcos'altro, ad esempio il carattere del BOM a inizio file.

    Verificale tutte e vedi quale di queste è quella che si applica alla tua condizione (non vedendo i file materialmente, non posso fare altre supposizioni).

  • Re: Setcookie come configurarlo

    Ciao Alka,

    innanzitutto grazie per la risposta. 

    Dopo un lungo provare, leggere e cercare di capire, sembra, grazie alle tue indicazioni, che il problema sia rientrato (continuerò a monitorare anche nei prossimi giorni). Ho impiegato tempo perchè l'unico aspetto che non consideravo era il BOM, come mi avevi indicato.

    Ora, fermo restando che ho solo un vaghissimo sentore su cosa sia un BOM, ma in ogni caso, Dreamweare che uso per fare le pagine web, era configurato per avere il BOM su UTF-8. Seguendo però il dubbio che hai sollevato alla fine, non sapendo più dove cercare l'errore, sono andata a verificarlo con Notepad++ e scopro che in realtà era configurato con UTF-8-BOM. A quel punto, salvato con la codifica corretta (UTF-8) il problema non si sta presentando. :-)))))))))

    Pertanto, per future persone che potrebbero avere il mio stesso problema la configurazione che ora sta girando senza errrori (dopo aver salvato con  Notepad++ la configurazione UTF-8-BOM) è la seguente:

    <?php setcookie("MIOSITO", "miosito", time() + 3600, '/');?>
    <!DOCTYPE html>
    <html lang=it>
    <head>
    <meta charset="utf-8" />
        <?php include_once($_SERVER['DOCUMENT_ROOT']."/it/js/analytics.js"); ?>
        <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame -->
       <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
       <link rel="shortcut icon" type="image/x-icon" href="/it/immagini/miosito.ico" />
    <meta name="robots" content="index, follow"> 
    (...)

    Un grazie grandissimo Alka.

    Vorrei a questo punto però  sottoporti un'altra domanda di carattere generale, a latere di questa conversazione: questi benedetti cookies che mi hanno causato tutti questi problemi, essendo il mio sito di lettura, che non richiede password e non raccoglie alcun genere di dato dei suoi visitatori (ma uso Analytics per avere queste informazioni), avere la stringa dei cookies nel sito, è veramente necessaria? Tutti dicono che sono fondamentali, ma io ho visto che se non la metto, le pagine funzionano bene senza alcun errore. Devono esserci per qualche problema tecnico per me oscuro?

    Grazie ancora tantissime. 

    Passa un bello e soprattutto fresco ferragosto.

    Carlotta

  • Re: Setcookie come configurarlo

    15/08/2023 - Carlotta ha scritto:


    questi benedetti cookies che mi hanno causato tutti questi problemi, essendo il mio sito di lettura, che non richiede password e non raccoglie alcun genere di dato dei suoi visitatori (ma uso Analytics per avere queste informazioni), avere la stringa dei cookies nel sito, è veramente necessaria? Tutti dicono che sono fondamentali, ma io ho visto che se non la metto, le pagine funzionano bene senza alcun errore. Devono esserci per qualche problema tecnico per me oscuro?

    Mmm… forse non ho capito bene la domanda, ma mi stai chiedendo qualcosa di simile a questo: “Tutti o almeno in tanti usano un frullatore, decantandone le proprietà. Io sto usando un frullatore, ma non ho nulla da frullare. Ha senso che io usi un frullatore?”. :)

    Scherzi a parte, i cookie sono uno strumento per salvare piccole informazioni sul client affinché il browser te le rispedisca e tu possa leggerle navigando nella stessa pagina o su altre: se tu hai bisogno di salvare queste informazioni, puoi usare i cookie a questo scopo, sapendo come funzionano, ma se non ne hai bisogno, non ne devi fare uso solo perché altri lo fanno, in quanto magari gli altri ne hanno bisogno, tu no.

    Non so se mi sono spiegato. :)

    I cookie sono fondamentali se devi soddisfare una esigenza che necessita dei cookie per poter essere espletata, altrimenti utilizzarli è del tutto superfluo. Ma questo vale per qualsiasi strumento: anche un martello è utilissimo se devi appendere un quadro, ma se non devi farlo, non usi il martello solo perché altri lo fanno sottolineando quanto è utile nell'appendere quadri, no?

    Un saluto e un buon post-ferragosto!

  • Re: Setcookie come configurarlo

    Ciao Alka,

    la tua risposta è chiara: se non mi servono, non li uso e il sito funziona benissimo lo stesso. Avevo questo dubbio dalle cose che ho letto in rete dove alcuni siti dicevano che non averli, avrebbero interferito sul funzionamento del sito…   Ritengo però  la tua risposta molto logica. -:). 

    Bene, spero che il mio problema sia risolto. Domani ulteriore verifica.

    Grazie ancora tantissimo.

    A presto.

    Carlotta

Devi accedere o registrarti per scrivere nel forum
7 risposte