Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Cookie, perchè non va?

    Salve, sto tentando di creare un sistema che permetta agli utenti del mio sito di scegliere la risoluzione da utilizzare per la visualizzazione del layout: in pratica devo settare un cookie con la mia variabile di riferimento, e poi controllare in ogni pagina del sito se il cookie è presente, ricavare il valore della variabile e selezionare il foglio CSS adatto (ho creato un layout tableless). Ho scritto il codice in questo modo:

    Pagina configura.php (inclusa nella index.php)
    ===================================
    <form action="set_res.php" method="get">
    <select name="my_res">
    <option value="0" selected="selected">800x600</option>
    <option value="1">1024x768</option>
    </select>
    <input type="submit" value="Invia" />
    </form>



    Pagina set_res.php
    ===================================
    $resolution = $_GET['my_res'];
    $referer = $_SERVER['HTTP_REFERER'];
    header("Location: $referer");
    setcookie("scelta_layout", $resolution, time() + 3600);
    header("Location: $referer");



    Pagina index.php
    ===================================
    $css = $_COOKIE['scelta_layout'];
    if (!$css || $css == 0) {}
    else if ($css == 1) {
    // cambia foglio CSS
    }
    include("configure.php");


    Tutto qui...in locale il codice funziona (anche se mi da qualche problema che poi vi spiegherò, ma almeno funziona! Quando metto lo script sul server invece non ne vuole sapere! Dov'è il problema?

  2. #2
    prova a settare il cookie così
    codice:
    setcookie("scelta_layout", $resolution, time() + 3600, "/"); // valido per un'ora
    e leggerlo così
    codice:
    $css = isset($_COOKIE['scelta_layout']) ? $_COOKIE['scelta_layout'] : 0; 
    
    if ($css == 0) { 
    } else if ($css == 1) { 
    // cambia foglio CSS 
    }
    E' la mia opinione ed io la condivido
    Non condivido la tua idea ma darei la vita perché tu la possa esprimere (Voltaire)
    Scrivi sul muro

  3. #3
    Ho provato a mettere il codice ch emi hai dato tu, ma continua a non andare...

  4. #4
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754
    Prova a settare i cookie prima di inviare gli header
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

  5. #5
    Se tolgo solo il primo header continua a non andare, mentre se li tolgo entrambi funziona! Che si può fare?

  6. #6
    Utente di HTML.it L'avatar di iox84
    Registrato dal
    May 2004
    Messaggi
    754
    Strano, in teoria i cookie vanno settati prima dell'invio di qualsiasi header, teoricamente se le funzioni header() le chiami dopo alla funzione setcookie() tutto dovrebbe funzionare a meraviglia , cmq prova a farti un giro sulla guida di PHP http://it.php.net/manual/it/function.setcookie.php
    La fortuna e' cieca ma la sfiga ci vede benissimo
    Comprarselo o farselo di legno

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    Prova:

    ECHO "<pre>";
    print_r($_SERVER);
    ECHO "</PRE>";

    Non vedo nell'array ['HTTP_REFERER']. Sicuro che esista?


  8. #8
    Originariamente inviato da pierotto
    Prova:

    ECHO "<pre>";
    print_r($_SERVER);
    ECHO "</PRE>";
    Dove devo inserire questo codice?


    Non vedo nell'array ['HTTP_REFERER']. Sicuro che esista?
    Cosa vuoi dire? Non sono un grande esperto di php, il codice $referer = $_SERVER['HTTP_REFERER']; l'ho copiato da un tutorial, ed a quanto ho capito serve a memorizzare la pagina da cui è stata inviata la richiesta...

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    fai una pagina di test con queste sole righe.

    <?
    ECHO "<pre>";
    print_r($_SERVER);
    ECHO "</PRE>";
    ?>
    Ti stamperà tutto il contenuto che ha $_SERVER. Verifica la versione di php che usi rispetto a quella del tutorial.


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.