Salve,
Stavo studiando i cookie, e quale miglior modo per vedere se si è appreso se non facendo qualche esercizio?
Bene al primo esercizio primo problema.
l'esercizio richiedeva di scrivere un programmino che consentisse di selezionare delle caratteristiche di formattazione del testo e di fare in modo che l'utente possa salvare tale confiurazione se lo desiderasse per poterla riutilizzare in un imminiente futuro.
Allora io ho fatto così:
Pagina che ho chiamato format_testo.php:
Codice PHP:
<!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>Formattazione testo (colore, carattere, dimensione)</title>
</head>
<body>
<?php //Controlla se vi è giaà un ipmpostazione salvata in precedenza sui cookie e chiede se la si vuole riutilizzare.
if (isset ($_COOKIE['font'])){ echo ' Hai già la seguente configurazione salvata: ';
echo '
';
echo 'Carattere: ' . $_COOKIE['font'];
echo '
';
echo 'Dimensione: ' . $_COOKIE['dimensione'];
echo '
';
echo 'Colore: ' . $_COOKIE['colore'];
echo '
';
echo 'Se vuoi utilizzare questa configurazione in memoria ' . '[url="format_testo_elabora.php?riciclo=si"] clicca qui[/url]';
echo '
';
echo ' Altrimenti puoi tranquillamente continuare riformulando una nuova configurazione.'; }
?>
Da qui è possibile impostare la formattazione del testo:
<form action="format_testo_elabora.php" method="get">
Seleziona il colore del testo:
<select name="colore" id="colore">
<option value="#F00">rosso</option>
<option value="#0000FF">blu</option>
<option value="#000000">nero</option>
<option value="#FFFF00">giallo</option>
</select>
Seleziona il carattere da attribuire al testo:
<select name="font" id="font">
<option value="Arial">Arial</option>
<option value="Verdana">Verdana</option>
<option value="Georgia">Georgia</option>
</select>
Seleziona la dimensione in px che intendi attribbuire al testo:
<select name="dimensione" id="dimensione">
<option value="8px">8px</option>
<option value="10px">10px</option>
<option value="12px">12px</option>
<option value="24px">24px</option>
<option value="32px">32px</option>
<option value="48px">48px</option>
</select>
Inserisci ora il testo:
<textarea name="testo" rows="5"></textarea>
Desideri salvare le impostazioni :
Si: <input name="salva" type="radio" value="si" />
No: <input name="salva" type="radio" value="no" />
<input type="submit" name="submit" value="Formatta Testo" />
</p>
</form>
</body>
</html>
Per aiutarvi ad aiutarmi aggiungo il link alla pagina: Link_1
Pagina che ho chiamato format_testo_elabora.php (Lo so la mia fantasia non ha limiti
):
Codice PHP:
<?php
//salva se è richiesto le impostazioni sui cookie per poterle riutilizzare
if ($_GET['salva'] == 'si'){
setcookie ('font',$_GET['font']. time()+60);
setcookie ('dimensione',$_GET['dimensione']. time()+60);
setcookie ('colore',$_GET['colore']. time()+60);
setcookie ('testo',$_GET['testo']. time()+60);
echo 'Riepilogo configurazione salvata: ';
echo '
';
echo 'Carattere: ' . $_COOKIE['font'];
echo '
';
echo 'Dimensione: ' . $_COOKIE['dimensione'];
echo '
';
echo 'Colore: ' . $_COOKIE['colore'];
echo '
';
}
?>
<!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>Presentazione testo formattato</title>
<style type="text/css">
#testo {
<?php if ($_GET['riciclo'] == 'si'){
echo 'color: ' . $_COOKIE['colore'] . ';';
if ($_COOKIE['font'] == 'Verdana'){
echo 'font-family: Verdana, Geneva, sans-serif;';
}else if ($_COOKIE['font'] == 'Arial'){
echo 'font-family: Arial, Helvetica, sans-serif;';
}else if ($_COOKIE['font'] == 'Georgia'){
echo 'font-family: Georgia, "Times New Roman", Times, serif;';
}
echo 'font-size: '. $_COOKIE['dimensione'] . ';';
}else{
echo 'color: ' . $_GET['colore'] . ';';
if ($_GET['font'] == 'Verdana'){
echo 'font-family: Verdana, Geneva, sans-serif;';
}else if ($_GET['font'] == 'Arial'){
echo 'font-family: Arial, Helvetica, sans-serif;';
}else if ($_GET['font'] == 'Georgia'){
echo 'font-family: Georgia, "Times New Roman", Times, serif;';
}
echo 'font-size: '. $_GET['dimensione'] . ';';
}
?>
}
</style>
</head>
<body>
Valori rilevati:
<?php
if ($_GET['riciclo'] == 'si'){
echo 'Riciclo: ' . $_GET['riciclo'];
echo '
';
echo 'Colore: '. $_COOKIE['colore'];
echo '
';
echo 'Carattere: '. $_COOKIE['font'];
echo '
';
echo 'Dimensione: '. $_COOKIE['dimensione'];
echo '
';
}else{
echo 'Colore: '. $_GET['colore'];
echo '
'; echo 'Carattere: '. $_GET['font'];
echo '
';
echo 'Dimensione: '. $_GET['dimensione'];
echo '
';
}
?>
</p>
<p id="testo">
<?php
if ($_GET['riciclo'] == 'si'){
echo $_COOKIE['testo'];
}else{
echo $_GET['testo'];
}
?>
</p>
</body>
</html>
Per aiutarvi ad aiutarmi aggiungo il link alla pagina: Link_2
Ora chi ha la pazienza di provarli noterà che i cookie salvano dei valori ma che sono totalmente fuori rispetto a quello che si è voluto salvare.. Qualcuno sa il perchè?
Ringrazio anticipatamente quanti vogliano aiutarmi a chiarire le idee..!
N.B.: In pratica per capire il problema dovreste andare al link 1 selezionare delle opzioni che desiderate spuntare salva impostazioni e cliccare su formatta testo, dopo di che tornare al link_1 e cliccare alla voce "Se vuoi utilizzare questa configurazione in memoria clicca qui", così potrete vedere come i valori di cookie salvati sono completamente sballati..!!