[PHP]Creare cookie utilizzato per cambiare sfondo e colore carattere di un altra pagina php

Discussione in 'PHP' iniziata da tonya_atrox, 18 Settembre 2016.

Tag (etichette):
  1. tonya_atrox

    tonya_atrox Nuovo Utente

    Registrato:
    18 Settembre 2016
    Messaggi:
    15
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Femmina
    Buonasera a tutti, :)
    ho creato due file php
    HomePage.php
    personalizzaHomePage.php

    Dalla pagina HomePage apro il sito con file personalizzaHomePage.php dove all'interno ho creato una form di personalizzazione , dove l'utente, dopo aver scelto uno schema di colore tramite radiobutton, deve cliccare sul pulsante Personalizza; così facendo vorrei invocare uno script PHP che crea un cookie dove all’interno sarà salvata la personalizzazione selezionata.
    Poi ritornare all'home page HomePage.php, che questa volta dovrà avere lo schema di colore appena scelto dall'utente.

    Ho allegato anche il sito in questione con dentro i file citati.
    Grazie anticipatamente :)

    codice del file HomePage.php

    HTML:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Documento senza titolo</title>
    </head>
    
    <body>
    <h1>Titolo della Home Page</h1>
    <p>
    Questo è il corpo del testo della home page
    </p>
    <p><a href="personalizzaHomePage.php">personalizza home page</a> </p></body>
    </html>

    codice del file personalizzaHomePage.php

    HTML:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Documento senza titolo</title>
    </head>
    
    <body>
    <form id="form1" name="form1" method="post" action="">
      <table width="333">
        <tr>
          <td colspan="2" align="center">Scegli lo schema di colore che preferisci e prema il pulsante personalizza in basso</td>
        </tr>
        <tr>
          <td width="305" bgcolor="#0033CC">Sfondo blu, testo bianco, <font color="yellow">link giallo</font></td>
          <td width="16"><label>
            <input type="radio" name="RadioGroup1" value="1" id="RadioGroup1_0" />
          </label></td>
        </tr>
        <tr>
          <td bgcolor="#FF0000">Sfondo rosso, testo bianco, <font color="999999">link grigio</font></td>
          <td><label>
            <input type="radio" name="RadioGroup1" value="2" id="RadioGroup1_1" />
          </label></td>
        </tr>
        <tr>
          <td bgcolor="#00FF00">Sfondo verde, testo bianco, <font color="ff00ff">link fucsia</font></td>
          <td><label>
            <input type="radio" name="RadioGroup1" value="3" id="RadioGroup1_2" />
          </label></td>
        </tr>
        <tr>
          <td bgcolor="#999999">Sondo grigio chiaro, testo nero, <font color="FF0000">link rosso</font></td>
          <td><label>
            <input type="radio" name="RadioGroup1" value="4" id="RadioGroup1_3" />
          </label></td>
        </tr>
      </table>
      <p>
          <input type="submit" name="personalizzabutton" id="personalizzabutton" value="Personalizza" />
      </p>
    </form>
    </body>
    </html>
    
    
    
     

    Files Allegati:

    • Sito.zip
      Dimensione del file:
      1,8 KB
      Visite:
      122
  2. AdeKnite

    AdeKnite Utente Attivo

    Registrato:
    3 Agosto 2016
    Messaggi:
    161
    Mi Piace Ricevuti:
    35
    Punteggio:
    28
    Sesso:
    Maschio
    Ciao, prova così.

    Homepage.php
    PHP:
    <?php

    if(isset($_COOKIE['color-schema'])) {
        
    $schema $_COOKIE['color-schema'];

        switch (
    $schema) {
            case 
    '1':
                
    $class 'uno';
                break;
            case 
    '2':
                
    $class 'due';
                break;
            case 
    '3':
                
    $class 'tre';
                break;
            case 
    '4':
                
    $class 'quattro';
                break;
            default:
                
    $class 'default';
                break;
        }
    }


    ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Documento senza titolo</title>

    <style type="text/css">
       
    .uno {
        background-color: #0033CC;
        color: #fff;
    }

    .uno a {
        color: #ff0;
    }

    .due {
        background-color: #f00;
        color: #fff;
    }

    .due a {
        color: #999;
    }

    .tre {
        background-color: #0f0;
        color: #fff;
    }

    .tre a {
        color: #f0f;
    }

    .quattro {
        background-color: #999;
        color: #000;
    }

    .quattro a {
        color: #f00;
    }

    .default {
        background-color: #fff;
        color: #000;
    }

    .default a {
        color: #00c;
    }


    </style>
    </head>

    <body class="<?php echo $class?>">
    <h1>Titolo della Home Page</h1>
    <p>
    Questo è il corpo del testo della home page
    </p>
    <p><a href="personalizzaHomePage.php">personalizza home page</a> </p></body>
    </html>

    personalizzaHomePage.php
    PHP:
    <?php

    if(isset($_POST['personalizzabutton']) && isset($_POST['RadioGroup1'])) {
        
    $nome_cookie "color-schema";
        
    $value_cookie $_POST['RadioGroup1'];
        
    $scadenza_cookie time()+86400*365;
        
    $path '/';

        if (
    setcookie($nome_cookie,$value_cookie,$scadenza_cookie,$path)) {
            echo 
    "<div><h2>Modifiche salvate</h2></div>";
        }
    }
     
    ?>


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Documento senza titolo</title>
    </head>

    <body>
    <form id="form1" name="form1" method="post" action="">
      <table width="333">
        <tr>
          <td colspan="2" align="center">Scegli lo schema di colore che preferisci e prema il pulsante personalizza in basso</td>
        </tr>
        <tr>
          <td width="305" bgcolor="#0033CC">Sfondo blu, testo bianco, <font color="yellow">link giallo</font></td>
          <td width="16"><label>
            <input type="radio" required checked name="RadioGroup1" value="1" id="RadioGroup1_0" />
          </label></td>
        </tr>
        <tr>
          <td bgcolor="#FF0000">Sfondo rosso, testo bianco, <font color="999999">link grigio</font></td>
          <td><label>
            <input type="radio" name="RadioGroup1" value="2" id="RadioGroup1_1" />
          </label></td>
        </tr>
        <tr>
          <td bgcolor="#00FF00">Sfondo verde, testo bianco, <font color="ff00ff">link fucsia</font></td>
          <td><label>
            <input type="radio" name="RadioGroup1" value="3" id="RadioGroup1_2" />
          </label></td>
        </tr>
        <tr>
          <td bgcolor="#999999">Sondo grigio chiaro, testo nero, <font color="FF0000">link rosso</font></td>
          <td><label>
            <input type="radio" name="RadioGroup1" value="4" id="RadioGroup1_3" />
          </label></td>
        </tr>
      </table>
      <p>
          <input type="submit" name="personalizzabutton" id="personalizzabutton" value="Personalizza" />
      </p>
    </form>
    <a href="HomePage.php">Torna alla homepage</a>
    </body>
    </html>
     
    A tonya_atrox piace questo elemento.
  3. tonya_atrox

    tonya_atrox Nuovo Utente

    Registrato:
    18 Settembre 2016
    Messaggi:
    15
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Femmina
  4. AdeKnite

    AdeKnite Utente Attivo

    Registrato:
    3 Agosto 2016
    Messaggi:
    161
    Mi Piace Ricevuti:
    35
    Punteggio:
    28
    Sesso:
    Maschio
    Il valore (unico) proveniente dal form è conservato all'interno di $_POST['RadioGroup1'], quindi lo memorizzo come $value_cookie e creo il cookie (che si chiama 'color-schema' con scadenza a un anno) con tale valore.

    Nella homepage viene controllato se esiste tale cookie nella macchina dell'utente e, se lo trova, ne estrapola il valore, il quale viene salvato all'interno della variabile $schema. A questo punto viene creata la variabile $class che assume valore diverso a seconda del valore assunto dal cookie.

    Il valore della variabile $class diviene la classe (linguaggio html) del body a cui è associato un particolare stile, definito a livello di CSS.
     
    A tonya_atrox piace questo elemento.
  5. tonya_atrox

    tonya_atrox Nuovo Utente

    Registrato:
    18 Settembre 2016
    Messaggi:
    15
    Mi Piace Ricevuti:
    0
    Punteggio:
    1
    Sesso:
    Femmina
    Ciao AdeKnite innanzitutto grazie , essendo ancora alle prime armi, credo che senza il tuo aiuto non ce l'avrei mai fatta.
    Ho provato il codice e funziona alla perfezione.
    La spiegazione mi è stata molto d'aiuto , sopratutto per comprendere il funzionamento.
    Grazie ancora alla prossima :)
     
Sto caricando...

Condividi questa Pagina