Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1

    Problema con gestione COOKIE

    salve!
    ho un problema nella gestione di un cookie.
    in pratica quando l'utente fa il login devo impostare la città predefinita prendendola da db (la tabella ha un campo che serve a questo).
    poi ogni volta che clicco su una città setto un cookie in base al parametro get passato.
    avevo pensato di fare così:
    Codice PHP:
    if (!isset($_COOKIE['C'])) { // CONTROLLO SE IL COOKIE GIA ESISTE
        
    foreach ($objConn->getSomething() as $var) {
            
    $cittaPredef $var['id']; // PRENDO L'ID DEL RECORD PREDEFINITO
        
    }
        
    $_GET['c'] = $cittaPredef;
    }

    setcookie("C"$_GET['c'], time() + 2592000'/''www.sito.it'FALSETRUE); 
    solo che ottengo questi errori:
    codice:
    Warning: Cannot modify header information - headers already sent by (output started at /home/mhd-01/www.sito.it/htdocs/lib/conn.php:85) in /home/mhd-01/www.sito.it/htdocs/header.php on line 23

  2. #2
    Da manuale:

    codice:
    setcookie() defines a cookie to be sent along with the rest of the HTTP headers. Like other headers, cookies must be sent before any output from your script (this is a protocol restriction). This requires that you place calls to this function prior to any output, including <html> and <head> tags as well as any whitespace.
    Evidentemente prima del setcookie hai già generato dell'output.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    il problema è che l'errore sempra proprio quel pezzo di codice perchè se lo commento nn ho problemi.
    nn so che otuput produce quel pezzo sinceramente.
    o meglio, può essere che una query su db produca output che posso dar fastidio al cookie?
    in caso come potrei risolvere?

  4. #4
    Ma le risposte e soprattutto i mauali li leggete?
    Non puoi generare output prima dell'utilizzo della funzione setCookie(). E' ovvio che l'errore te lo dia lì, ma esso è provocato dal fatto che in un altro punto del codice è stato generato dell'output!
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    nn pensavo che il settaggio di una variabile $_GET rienstrasse nell'output generato.
    errore mio.

    solo che a questo punto nn saprei come fare.
    $_GET['c'] mi serve e il cookie deve essere settato con quel valore.
    visto che quando gli utenti fanno il login nel il cookie nel variebile get sono settati come potrei fare?

  6. #6
    Il settaggio di una variabile NON genera output.

    Si potrebbe vedere TUTTO il codice, di grazia?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  7. #7
    ok.
    tutto quello che c'è prima del setCookie.
    Codice PHP:
    <?php
    session_start
    ();

    require_once 
    'lib/conn.php';
    $objConn Connessione::getInstance();

    if (!isset(
    $_COOKIE['L'])) {
        
    setcookie("L""ita"time() + 2592000'/''www.sito.it'FALSETRUE);
    }

    if (!isset(
    $_GET['n'])) {
        
    $_GET['n'] = 1// 1 = ITALIA
    }

    if (!isset(
    $_COOKIE['C'])) {
        foreach (
    $objConn->getSomething() as $var) {
            
    $cittaPredef $var['id'];
        }
        
    $_GET['c'] = $cittaPredef;
    }

    setcookie("N"$_GET['n'], time() + 2592000'/''www.sito.it'FALSETRUE);
    setcookie("C"$_GET['c'], time() + 2592000'/''www.sito.it'FALSETRUE);
    solo che se commento la parte che ho messo prima funziona tutto.

  8. #8
    Questo script è incluso in un altro?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  9. #9
    no.
    questo è il "classico" header.php che viene incluso nelle altre pagine.
    dopo i setCookie ci sta tutta l'intestazione HTML, ecc....
    prima di quello nn c'è nulla.
    per questo mi fa strano.
    nn riesco a capire perchè quelle 5 righe diano fastidio.
    stupidaggine, può essere che la query dia fastidio??
    il risultato della query è giusto perchè ho tirato fuori il risultato.
    magari da fastidio in qualche modo.

  10. #10
    cosa c'è in getSomething()?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.