Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 38
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175

    [PILLOLA] Sito a misura di utente con PHP e CSS

    Vi è mai capitato di entrare in siti che vi permettono di scegliere vari "modelli" di formattazione (riguardo a colore di sfondo, di scrollbar, di testo, e cose del genere)? A me personalmente sì e devo ammettere che benchè sia una cosa nn indispensabile può pemettere una maggiore interazione tra il sito e l'utente.

    Allora cosa vogliamo noi che succeda? Esattamente questo: che nel nostro sito ci sia una pagina che permetta all'utente di scegliere uno "stile" e mantenerlo per tutto il tempo che l'utente lo visita (anche dopo giorni). La soluzione al problema è molto semplice, ci basta conoscere bene i CSS (cascading style sheet o fogli di stile) ed i cookie (piccoli file di txt che si memorizzano nel PC del visitatore e tengono nota di particolari cose a noi care).

    Capito ciò che è necessario, bisogna spiegare ora qual'è il funzionamento degli script usati.

    File 1.css
    Allora come abbiamo detto, alla base di tutto, ci deve essere una buona programmazione del sito sfruttando l'ausilio dei fogli di stile (CSS), vediamone uno (non sto qui a spiegare cosa sia, in quanto spero abbiate visitato il link da me sopra consigliato)
    codice:
    a:link { text-decoration: none; color: #00FFFF; font-family: Verdana; 
    font-size: 10 pt; font-weight: bold } 
    a:visited { text-decoration: none; color: #00FF00; font-family: Verdana; 
    font-size: 10 pt; font-weight: bold } 
    a:hover { text-decoration: underline; color: #FFFFFF; font-family: Verdana; 
    font-size: 10 pt; font-weight: bold } 
    
    .title         { font-family: Verdana; font-size: 10 pt; color:
     #FFFFFF; font-weight: bold }
    .testo         { font-family: Verdana; font-size: 10 pt; color:
     #FF0000; font-weight: normal }
    
    body {
    background-color:#000000;
    scrollbar-face-color: #FFFFFF;
    scrollbar-highlight-color: #FF00FF; 
    scrollbar-3dlight-color: #606C88; 
    scrollbar-darkshadow-color: #606C88; 
    scrollbar-shadow-color: #000000; 
    scrollbar-arrow-color: #606C88; 
    scrollbar-track-color: #FF0000;}
    Realizzato il css numero 1 (1.CSS), si passerà a realizzare gli altri CSS necessari, avendo cura di numerarli in maniera progressiva.

    File sceglistile.php
    Ora vi starete chiedendo, arrivati a questo punto: "Ma una volta che ho 10 css come faccio a far scegliere ad ogni utente il suo e farglielo mantenere per un periodo di tempo determinato?". Ed è qui che viene il bello, infatti ora vedremo quant'è necessario il PHP e i Cookie.

    Allora la prima cosa che avremmo cura di fare sarà la cosidetta amministrazione (che poi amministarzione è un parolone perchè è solo una misera scelta da un select).
    Apriamo quindi il nostro Editor PHP preferito e scriviamo quanto segue:

    Codice PHP:
    <? if ($controllo){ 
    setcookie ('cssnum'$numtime()+1800'/''');
    echo
    "Ti è stato inviato un cookie su cui è tenuta nota del css da te scelto,
    cioè il numero 
    $num.

    <a href=\"vedi.php\">Clicca qui</a> per vedere la pagina, con il nuovo CSS.
    Dopo ritorna qui e rieffettua una nuova selezione in modo da
    vedere i cambiamenti"
    ;}
    ?>
    <form method=POST action=<?echo"$PHP_SELF"?>>
      <select size=1 name=num>
       <option>1</option>
       <option>2</option>
       <option>3</option>
       <option>4</option>
       <option>5</option>
      </select><input type=submit value=OK name=controllo>
    Ma vediamo bene come funziona questo script.
    Allora:
    codice:
    <input type=submit value=OK name=controllo>
    come potete ben vedere abbiamo deciso di chiamare il form, controllo.
    Anche se questa può sembrarvi una cosa banale, ha molta importanza, infatti se fate riferimento al file di sopra al prmo rigo vediamo scritto:
    Codice PHP:
    if($controllo){//CONTROLLI} 
    questo if ci permette di verificare se il form è stato già inviato (cliccando su OK), e nel caso affermativo setta un cookie:
    Codice PHP:
    setcookie ('cssnum'$numtime()+1800'/'''); 
    dove la variabile si chiama cssnum, il valore è uguale a $num (che neanche a farlo apposta è il nome del select) e ha come durata 30 minuti (1800/60=30).
    A questo punto, come avrete potuto ben capire, se nel select ho cliccato su 1, nel cookie avrò il valore 1 e così via.
    Per il resto è sufficiente dire che dobbiamo avere tante scelte quanti sono i numeri dei CSS quindi se ne ho 2 avrò:
    codice:
    <option>1</option>
    <option>2</option>
    se ne ho 3:
    codice:
    <option>1</option>
    <option>2</option>
    <option>3</option>
    e così via.

    File vedistile.php
    Ora siamo a conoscenza che nel computer c'è un cookie che ha come valore il numero scelto dal select, come abbiamo detto prima, le scelte nel select devono essere uguali al numero dei CSS esistenti quindi:
    se ho scelto 1 nel select, la mia navigazione dovrà continuare con il CSS n°1 (1.CSS).
    Ora si pone l'interrogativo: "Come fare a richiamare il CSS che è nel cookie e non sempre lo stesso?". Semplice anzichè mettere un richiamo fisso al css, del tipo:
    Codice PHP:
    echo"<link rel=stylesheet type=text/css href=css/1.CSS>"
    ne metteremo uno che al posto del nome, abbia una variabile che corrisponde al numero inserito nel cookie.
    Questo è lo script completo:

    Codice PHP:
    <?
    if(!isset($cssnum)){$cssnum 1;}
    if(isset(
    $cssnum)) {
    echo
    "<link rel=stylesheet type=text/css href=css/$cssnum.CSS>";
    $esempio="In questa pagina è stato caricato il CSS numero $cssnum

    potete notare la differenza guardando lo sfondo, le scrollbar laterali
     il testo e il link nelle pagine"
    ;

    echo
    "<font class=title>$esempio</font>

    "
    ;

    echo
    "<font class=testo>$esempio</font>

    "
    ;

    echo
    "<a href=\"http://www.php.net\">$esempio</a>";}
    ?>
    Allora, analizziamo un attimo il codice:
    Codice PHP:
    if(!isset($cssnum)){$cssnum 1;} 
    Con questa riga di codice si esegue un operazione molto semplice, cioè:
    se il cookie nn è settato, quindi nn esiste, rendi $cssnum uguale a 1 (in questo modo il file 1.css diventa lo stile di default, cioè quello che verrà usato nel caso in cui nessun altro stile è stato scelto).

    Alla seconda riga:
    Codice PHP:
    if(isset($cssnum)) {
    echo
    "<link rel=stylesheet type=text/css href=css/$cssnum.CSS>";} 
    Se invece il cookie è settato, richiama il css $num.css, (dove ricordiamo che $num è il numero settato nel cookie che dipende dal numero scelto nel select).

    Per il resto nn c'è nient'altro da spiegare, e con la speranza che questo mini-tutorial vi possa essere utile per il futuro vi saluto

    PS: Se voi altri li avete fatti a notte inoltrata io l'ho fatto con 38.5 di febbre, quindi nn linciatemi se ho sbagliato qualcosa.

    Inoltre ecco i link per vedere gli esempi:
    sceglistile.php
    vedistile.php

  2. #2
    ebbravo ciccio:bubu:
    w la topa

  3. #3
    si può dire una sola cosa a riguardo:



    :metallica








    stanno venendo fuori un po' di pilloline eh??

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    gracias :metallica

  5. #5
    Complimenti
    P.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175
    grazie

  7. #7
    Utente di HTML.it L'avatar di lana
    Registrato dal
    Oct 2000
    Messaggi
    62
    :metallica

  8. #8
    Progetto ~MEPHIT~
    PHP/AJAX/HTML5 Project for D&D players
    www.mephit.it

  9. #9
    Utente di HTML.it L'avatar di jubin
    Registrato dal
    Jan 2002
    Messaggi
    234

    Non per mettere sempre i puntini sulle y

    ma anzichè mettere i css non ci conviene creare dei file e chiamarli layout1.php layout2.php ecc ecc con delle variabili?? Questo perchè ho letto che i CSS non sono compatibili con tutti i browser, e possono anche creare qualche problema. E, non vorrei sgarrare ma a me danno l'impressione di rallentare un po' il caricamento. Quest'ultima potrebbe essere un'emerita caxata, ma a me danno questa ultra soggettiva impressione. Dunque non ci conviene creare dei files come ho scritto io e poi richiamare le apposite variabili ogni volta?? Invece che chiamare il nome del CSS preimpostato. Non cambia molto, più che altro è un mio pallino! Non so, ditemi Voi! Forse visto che tali variabili andranno complilate dal server non sono memorizzabili come cookie... non lo so. Io ho buttato giù quest'idea, mi dite se ha qualche difetto?? Grazie mille!

  10. #10
    Chiaramente, con i CSS puoi cambiare layout semplici. Per quelli più complessi, hai ragione tu.

    I cookies servono più che altro per riconoscere l'utente: per questo non si utilizza una variabile salvata su server.
    Progetto ~MEPHIT~
    PHP/AJAX/HTML5 Project for D&D players
    www.mephit.it

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.