<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>programmazione-web &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/programmazione-web/</link>
	<description>Feed of posts on WordPress.com tagged "programmazione-web"</description>
	<pubDate>Wed, 15 Oct 2008 01:53:41 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Creare una piccola chat in PHP]]></title>
<link>http://markarg.wordpress.com/2008/07/19/creare-una-piccola-chat-in-php/</link>
<pubDate>Sat, 19 Jul 2008 16:18:03 +0000</pubDate>
<dc:creator>Golars</dc:creator>
<guid>http://markarg.it.wordpress.com/2008/07/19/creare-una-piccola-chat-in-php/</guid>
<description><![CDATA[Per seguire questa guida, sono richieste conoscenze di base sul php e sul mysql, conoscenze che per ]]></description>
<content:encoded><![CDATA[<p>Per seguire questa guida, sono richieste conoscenze di base sul php e sul mysql, conoscenze che per ovvi motivi di spazio, non potrò darvi in questo articolo, nel quale mi limiterò ad illustrarvi passo per passo come poter creare una piccola chat (senza grandi pretese) in PHP che poggia sul database di tipo mysql.</p>
<p><!--more--></p>
<p>I requisiti iniziali (oltre alle vostre conoscenze) sono quelli di possedere uno spazio web che supporti il PHP e un database di tipo mysql. Se volete provare il tutto direttamente in rete, personalmente consiglio spazi web gratuiti come <a href="http://www.altervista.org" target="_blank">Altervista</a>, netsons o helloweb, oppure come al solito consiglio di sviluppare il tutto in locale (se non sapete come installare un server in locale andate <a href="http://markarg.wordpress.com/2008/04/18/installare-un-server-in-locale/" target="_blank">qui</a>).</p>
<p>Finiti i preliminari, passiamo alla chat vera e propria. Dovendo operare su un database, avremo bisogno di una pagina di connessione al database stesso. In questa pagina metteremo i nostri requisiti per accedere al database e la connessione ad esso. Chiameremo la pagina <strong><em>connessione.php</em></strong></p>
<div style="border-right:#000000 1px solid;border-top:#000000 1px solid;background:#3399cc;border-left:#000000 1px solid;border-bottom:#000000 1px solid;padding:10px;">&#60;?php<br />
<span style="color:#99ff00;">//parametri per la connessione al database</span><br />
$db_host = "localhost"; <span style="color:#99ff00;">//solitamente è localhost, guardate comunque il vostro fornitore di spazio web</span><br />
$db_user = ""; <span style="color:#99ff00;">//username per l'accesso al database</span><br />
$db_password = "";<span style="color:#99ff00;">//password per l'accesso al database</span><br />
$db_nome = "";<span style="color:#99ff00;">//nome database</span><br />
<span style="color:#99ff00;">/* instaurazione della connessione al database</span>*/<br />
$db = mysql_connect($db_host, $db_user, $db_password);<br />
<span style="color:#99ff00;">/* in caso di errore nella connessione, stampa a video un messaggio di errore */</span><br />
if($db == FALSE)<br />
die("Errore nella connessione. Verificare i parametri nel file config.inc.php");<br />
<span style="color:#99ff00;">/* seleziona il database desiderato, in caso di errore stampa a video un messaggio di errore */</span><br />
mysql_select_db($db_nome, $db) or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");<br />
?&#62;</div>
<p>Creata questa pagina, avremo la connessione al database, fate molta attenzione ai dati che inserite, perchè se immettete dati errati, non avverrà la connessione e verrà stampato un messaggio di errore, che renderà inutilizzabile la vostra chat. Se avete dubbi su quali dati inserire, domandate al vostro gestore dello spazio web, che vi segnalerà i dati corretti che dovrete immettere. Per una miglior comprensione di ogni singola funzione PHP, vi rimando alla guida in linea al sito <a href="http://www.php.net" target="_blank">PHP.NET</a>, in quanto sarebbe troppo lungo e noioso (sia per me che per voi) parlare di ogni singola funzione o riga di codice. Il codice stesso è stato commentato, per una miglior comprensione, fate quindi riferimento ai commenti nel codice stesso.</p>
<p>Quando si entra in chat ognuno ha il proprio nickname. Per permettere a ciascuno di scegliere il proprio nome virtuale, costruiremo la pagina <em><strong>prechat.html</strong></em>, nella quale sarà presente una form nel quale inserire il nickname desiderato. <strong>N.B.</strong> per non rendere il tutto ancora più complicato, diverse persone possono scegliere lo stesso nick, non viene fatto alcun tipo di controllo. Se lo si desidera fare, basta un piccolo accorgimento molto semplice, che spiegerò in una dei prossimi articoli.</p>
<div style="border-right:#000000 1px solid;border-top:#000000 1px solid;background:#3399cc;border-left:#000000 1px solid;border-bottom:#000000 1px solid;padding:10px;">&#60;html xmlns="http://www.w3.org/1999/xhtml"&#62;<br />
&#60;head&#62;<br />
&#60;title&#62;Prechat&#60;/title&#62;<br />
&#60;/head&#62;<br />
&#60;body&#62;<br />
<span style="color:#99ff00;">&#60;!-- Il form consente di mettere il nome desiderato per quando si è in chat e contine il tasto invia per passare alla pagina successiva --&#62;</span><br />
&#60;form action="chat.php" method="post"&#62;<br />
Inserire un nome &#60;input type="text" name="nome" /&#62;&#60;br /&#62;<br />
&#60;input type="submit" value="Entra" /&#62;&#60;br /&#62;<br />
&#60;/form&#62;<br />
&#60;/body&#62;<br />
&#60;/html&#62;</div>
<p>La terza pagina che andremo a creare si chiama <strong><em>chat.php</em></strong>, ed è una semplice pagina html formata da due iframe, uno superiore e uno inferiore. Questa è la pagina che ci consentirà di vedere la chat e di poter interagire con gli altri utenti. C'è però un problema, chiunque abbia studiato un pò di programmazione web, sa che i frame e gli iframe non sono proprio tra gli elementi più accettati dagli standard w3c. Per il momento non ci faremo problemi di standard o non standard, perchè per le conoscenze attuali, sono l'unica soluzione per creare una chat con il solo php, nei prossimi articoli, vedremo cos'è AJAX, e come creare una chat aggirando il problema dei frame. Oltre ad essere suddivisa in due iframe, la pagina deve fare anche la cattura del nome passato dalla pagina <em><strong>prechat.html</strong></em>.</p>
<div style="border-right:#000000 1px solid;border-top:#000000 1px solid;background:#3399cc;border-left:#000000 1px solid;border-bottom:#000000 1px solid;padding:10px;">&#60;?php<br />
session_start();<br />
<span style="color:#99ff00;">//catturiamo il nome inviato dal prechat.php, nel caso è uguale alla stringa nulla, stampiamo un messaggio di errore e terminiamo il flusso della    pagina. In caso contrario salviamo il nome nella sessione </span><br />
$nome = htmlspecialchars($_POST['nome']);<br />
if($nome != ""){<br />
$_SESSION['Nome'] = $nome;<br />
}else{<br />
echo("Attenzione, dovete inserire un nome valido&#60;br/&#62;");<br />
echo('&#60;a href="prechat.html"&#62;Indietro&#60;/a&#62;');<br />
exit();<br />
}<br />
?&#62;<br />
&#60;html xmlns="http://www.w3.org/1999/xhtml"&#62;<br />
&#60;head&#62;<br />
&#60;title&#62;Chat&#60;/title&#62;<br />
&#60;/head&#62;<br />
&#60;body&#62;<br />
<span style="color:#99ff00;">&#60;!-- creazione dei due iframe, quello superiore (visualizza) che visualizza le scritte della chat, e quello inferiore (input) nel quale viene<br />
visualizzata la pagina per l'input delle scritte --&#62;</span><br />
&#60;div align="center"&#62;&#60;iframe name="visualizza" width="95%" height="90%" frameborder="1" src="chat_visualizza.php"&#62;&#60;/iframe&#62;&#60;/div&#62;<br />
&#60;div align="center"&#62;&#60;iframe name="input" align="bottom" width="85%" height="50" frameborder="1" src="chat_input.php" scrolling="no"&#62;&#60;/iframe&#62;&#60;/div&#62;<br />
&#60;/body&#62;<br />
&#60;/html&#62;</div>
<p>La pagina non è niente di complicato, come noterete (anche dal commento) il primo iframe, quello superiore, ha il nome <em>"visualizza",</em> questo perchè al suo interno, andrà inserita la pagina che ci permette di visualizzare le scritte (chat_visualizza.php), mentre nell'iframe inferiore, verrà visualizzato il form per l'inserimento dell'azione.</p>
<p>Finora abbiamo costruito il contorno della chat, e arrivato il momento di passare al cuore dello script. Se finora, le nozioni di php e myslq sono state quasi nulle, adesso si richiede almeno una conoscenza di base di entrambi i linguaggi. Dalle prossime pagine, incominceremo a dialogare con il database.</p>
<p>Partiamo quindi dalla pagina <em><strong>chat_input.php</strong></em>, cioè quella pagina che ci permette di dialogare con la chat, inviadole i nostri pensieri.</p>
<div style="border-right:#000000 1px solid;border-top:#000000 1px solid;background:#3399cc;border-left:#000000 1px solid;border-bottom:#000000 1px solid;padding:10px;">&#60;?php<br />
<span style="color:#99ff00;">/* Inizializzazione della sessione e inclusione della pagina di accesso al database */</span><br />
session_start();<br />
include(connessione.php');<br />
<span style="color:#99ff00;">/* Controlliamo che l'utente sia entrato correttamente, in caso contrario, stampiamo un messaggio di errore e lo blocchiamo */</span><br />
if($_SESSION['Nome'] == ""){<br />
echo("Non sei autorizzato ad entrare!");<br />
exit();<br />
}<br />
?&#62;<br />
&#60;html xmlns="http://www.w3.org/1999/xhtml"&#62;<br />
&#60;head&#62;<br />
&#60;title&#62;Input chat&#60;/title&#62;<br />
&#60;/head&#62;<br />
<span style="color:#99ff00;">&#60;!-- L'evento onLoad mette il cursore del mouse in posizione di scrittura nella casella di scrittura una volta terminato il caricamento della pagina --&#62;</span><br />
&#60;body onload="document.inserimento.azione.focus()"&#62;<br />
<span style="color:#99ff00;">&#60;!-- Le righe sottostanti creano la casella di testo e il bottone di invio. L'evento onSubmit ricarica la pagina ogni volta che viene cliccato il tasto invio --&#62;</span><br />
&#60;form action="chat_salva.php" target="visualizza" name="inserimento" method="post" onsubmit="javascript:location.reload();"&#62;<br />
&#60;input name="azione" size="100"&#62;<br />
&#60;input type="submit" value="Invia" name="invia"&#62;<br />
&#60;/form&#62;<br />
&#60;?php<br />
<span style="color:#99ff00;">/* chiusura del database */</span><br />
mysql_close($db);<br />
?&#62;<br />
&#60;/body&#62;<br />
&#60;/html&#62;</div>
<p>Il funzionamento è semplice. Quando viene caricata la pagina, lo script php controlla che ci si sia loggati in precedenza dalla pagina <em><strong>prechat.php,</strong></em> cioè controlla che all'utente corrisponda un nickname, nel caso ciò non sia vero, stampa un messaggio di errore e termina il flusso della pagina. Nel caso invece che ci siamo loggati in maniera corretta, ci mostra il form, nel quale scriviamo il nostro messaggio e poi clicchiamo su Invia. Nel momento che clicchiamo su invia la pagina <strong><em>chat_input.php</em></strong> si ricarica, inviando il nostro messaggio al server chiamando la pagina <em><strong>chat_salva.php</strong></em>, che verrà caricata nell'iframe di nome <em>"visualizza"</em> (cioè quello superiore). Vediamo quindi ora come è fatta la pagina <em><strong>chat_salva.php</strong></em></p>
<div style="border-right:#000000 1px solid;border-top:#000000 1px solid;background:#3399cc;border-left:#000000 1px solid;border-bottom:#000000 1px solid;padding:10px;">&#60;?php<br />
<span style="color:#99ff00;">/* Inizializzazione della sessione e inclusione della pagina di accesso al database */</span><br />
session_start();<br />
include(connessione.php');<br />
<span style="color:#99ff00;">/* Controlliamo che l'utente sia entrato correttamente, in caso contrario, stampiamo un messaggio di errore e lo blocchiamo */</span><br />
if($_SESSION['Nome'] == ""){<br />
echo("Non sei autorizzato ad entrare!");<br />
exit();<br />
}<br />
<span style="color:#99ff00;">/* Controlla che il parametro azione passato con il metodo POST dalla pagina chat_input.php esista (per vedere come funziona isSet() guardare la     documentazione online) e che l'utente sia entrato in maniera corretta*/</span><br />
if (isSet($_POST['azione']) &#38;&#38; $_SESSION['Nome'] != "")<br />
{<br />
<span style="color:#99ff00;">/* nella variabile "nome" viene salvato il nickname dell'utente. La variabile "mss", salva prima il parametro passato con il metodo POST dopo averlo elaborato con la funzione htmlspecialchars (guardare documentazione online). La variabile "attuale" salva la data e l'ora attuale.*/</span><br />
$nome = $_SESSION['Nome'];<br />
$attuale = time();<br />
$mss = htmlspecialchars($_POST['azione']);</p>
<p><span style="color:#99ff00;">/* Inserimento all'interno del database dell'azione con relativi campi (Giocatore, Messaggio, Data)*/</span><br />
$query ="INSERT INTO Chat SET Nome = '$nome', Messaggio = '$mss', Data = '$attuale'";<br />
mysql_query($query) or die(mysql_error());<br />
}<br />
<span style="color:#99ff00;">/* chiusura del database */</span><br />
mysql_close($db);<br />
<span style="color:#99ff00;">/*Reindirizzamento alla pagina chat_visualizza.php */</span><br />
header("Location: chat_visualizza.php", true);<br />
?&#62;</div>
<p>Questa pagina funziona in modo molto semplice e lineare, prende l'azione passata tramite la pagina <em><strong>chat_input.php</strong></em>, il nickname dell'utente e l'orario attuale e lo salva all'interno del database. Fatto ciò senza stampare a video niente reindirizza in automatico alla pagina <em><strong>chat_visualizza.php</strong></em> che verrà visualizzata sempre nell'iframe di nome <em>"visualizza". </em>Ci manca quindi una sola pagina, quella di nome <em><strong>chat_visualizza.php</strong></em>, che ci permetterà di vedere i messaggi nostri e degli altri utenti.</p>
<div style="border-right:#000000 1px solid;border-top:#000000 1px solid;background:#3399cc;border-left:#000000 1px solid;border-bottom:#000000 1px solid;padding:10px;">&#60;?php<br />
<span style="color:#99ff00;">/* Inizializzazione della sessione e inclusione della pagina di accesso al database */</span><br />
session_start();<br />
include(connessione.php');<br />
<span style="color:#99ff00;">/* Controlliamo che l'utente sia entrato correttamente, in caso contrario, stampiamo un messaggio di errore e lo blocchiamo */</span><br />
if($_SESSION['Nome'] == ""){<br />
echo("Non sei autorizzato ad entrare!");<br />
exit();<br />
}<br />
?&#62;<br />
&#60;html xmlns="http://www.w3.org/1999/xhtml"&#62;<br />
&#60;head&#62;<br />
<span style="color:#99ff00;">&#60;!-- consente il refresh della pagina ogni 20 secondi --&#62;</span><br />
&#60;meta http-equiv="refresh" content="20,chat_visualizza.php"&#62;<br />
&#60;title&#62;Visualizzazione chat&#60;/title&#62;<br />
&#60;/head&#62;<br />
&#60;body&#62;<br />
&#60;?php<br />
<span style="color:#99ff00;">/* Salvataggio dell'ora attuale, per vedere come funziona la funzione time() vedere la documentazione online al sito www.php.net*/</span><br />
$ora_attuale = time();<br />
<span style="color:#99ff00;">/* Estrazione di tutte le azioni che sono state mandate nell'arco di dieci minuti (600 secondi = 10 minuti), ordinate in<br />
ordine decrescente in base alla data (Visualizzazione delle azioni più recenti in alto).<br />
La variabile result, risulta un array di righe */</span><br />
$query = "SELECT * FROM chat WHERE Data+600&#62;'$ora_attuale' ORDER BY Data DESC";<br />
$result = mysql_query($query) or die(mysql_error());</p>
<p><span style="color:#99ff00;">/* Finchè esiste nel risultato una riga si entra nel ciclo while. Per vedere la funzione della funzione<br />
stripslashes e date guardare la documentazione online. */</span><br />
while($riga = mysql_fetch_array($result)){<br />
$nome = stripslashes($riga['Nome']);<br />
$mss = stripslashes($riga['Messaggio']);<br />
$ora = date("H:i", $riga['Data']);<br />
echo($ora." ".$nome." dice: ".$mss."&#60;br/&#62;");<br />
}</p>
<p><span style="color:#99ff00;">/* chiusura del database */</span><br />
mysql_close($db);<br />
?&#62;<br />
&#60;/body&#62;<br />
&#60;/html&#62;</div>
<p>Siamo cosi giunti alla fine. Con i codici illustrati finora siete in grado di costruirvi la vostra chat. Vi manca solo un'ultima cosa, e cioè il codice del database, che trovate qui sotto:</p>
<div style="border-right:#000000 1px solid;border-top:#000000 1px solid;background:#3399cc;border-left:#000000 1px solid;border-bottom:#000000 1px solid;padding:10px;">CREATE TABLE `Chat` (<br />
`Nome` char(20) NOT NULL default '',<br />
`Messaggio` char(200) NOT NULL default '',<br />
`Data` int(20) NOT NULL default ''<br />
) TYPE=MyISAM;</div>
<p>Come al solito i miei codici sono scarni, sono composti dalla sola componente di script, cioè non hanno nessuna componente grafica. Quella starà a voi implementarla (è molto semplice farlo, basta avere conoscenze di html) come meglio vi piace. Lasciatemi pure i vostri commenti (è una cosa molto gradita), e chiedendomi chiarimenti o segnalandomi problemi, sarò molto felice di aiutarvi nell'apprendere sempre meglio il php e i linguaggi web in generale. E come al solito prima di salutarvi, vi invito a visitare il mio <a href="http://compagnoandrea87.altervista.org/portfolio2" target="_blank">portfolio</a>. Detto questo, buon lavoro e buona programmazione a tutti.</p>
<p>Peace and Code</p>
<p>P.S. Vi sarò grato se lascerete qualche commento, cosi che possa sapere se articoli del genere sono graditi all'utenza, ed eventualmente venire incontro alle vostre esigenze</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Azienda Multinazionale ricerca stagisti]]></title>
<link>http://itmeeting.wordpress.com/?p=67</link>
<pubDate>Sun, 08 Jun 2008 07:46:37 +0000</pubDate>
<dc:creator>derekit</dc:creator>
<guid>http://itmeeting.it.wordpress.com/2008/06/08/azienda-multinazionale-ricerca-stagisti/</guid>
<description><![CDATA[Azienda Multinazionale, leader nel settore dell’Information Technology, ricerca per la propria sed]]></description>
<content:encoded><![CDATA[<p style="text-align:justify;">Azienda Multinazionale, leader nel settore dell’Information Technology, ricerca per la propria sede di Pomezia stagisti che siano in possesso dei seguenti requisiti:</p>
<ul>
<li> Titolo di studio: Diploma o Laurea in materie scientifiche</li>
<li> Età:  non superiore ai 30 anni</li>
<li>Competenze:
<ul>
<li>Conoscenza approfondita linguaggio ASP/Java</li>
<li>Conoscenza approfondita linguaggio SQL</li>
<li>Conoscenza approfondita linguaggio Javascript</li>
<li>Conoscenza approfondita linguaggio HTML e CSS</li>
<li>Conoscenza approfondita suite Office 2003</li>
</ul>
</li>
</ul>
<p style="text-align:justify;">I candidati prescelti, costantemente affiancati dal relativo tutor, supporteranno la conduzione di diversi progetti legati allo sviluppo di applicazioni sw ad uso interno.</p>
<p style="text-align:justify;">I candidati ideali hanno esperienze pregresse nello sviluppo di applicazioni web dinamiche.<br />
Costituiscono, inoltre,  titolo preferenziale la conoscenza di strumenti di grafica: Paint Shop Pro o Photoshop e la conoscenza della piattaforma .NET. Proattività, efficienza, capacità di lavorare in team completano il profilo.</p>
<p>Le candidature possono essere inviate al seguente indirizzo:<br />
<a href="mailto:opportunityineds@eds.com">opportunityineds@eds.com</a> indicando nell’oggetto come riferimento: Stage ASP/Pomezia</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Conteggio caratteri di un form]]></title>
<link>http://markarg.wordpress.com/?p=83</link>
<pubDate>Wed, 16 Apr 2008 21:27:55 +0000</pubDate>
<dc:creator>Golars</dc:creator>
<guid>http://markarg.it.wordpress.com/2008/04/16/conteggio-caratteri-di-un-form/</guid>
<description><![CDATA[Nel seguente articolo, illustrerò, come è possibile contare i caratteri inseriti all&#8217;interno]]></description>
<content:encoded><![CDATA[<p>Nel seguente articolo, illustrerò, come è possibile contare i caratteri inseriti all'interno di una textarea da parte dell'utente. Nel seguente codice verrà usato sia il linguaggio di marcatura <a href="http://it.wikipedia.org/wiki/Html" target="_blank">HTML</a> (<strong>H</strong>yper <strong>T</strong>ext <strong>M</strong>ark-Up <strong>L</strong>anguage), sia il linguaggio di programmazione web lato client <a href="http://it.wikipedia.org/wiki/Javascript" target="_blank">Javascript</a>. Consiglio per chi non conosca il Javascript di studiare questo linguaggio sulle innumerevoli guide che si trovano online, tra cui quelle del sito <a href="www.html.it">html</a> e di <a href="http://www.mrwebmaster.it/" target="_blank">mrwebmaster.it</a> . Comunque per la facilità del codice non sono richieste conoscenze approfondite dei due linguaggi, anche perchè ogni riga verrà commentata</p>
<p><!--more--></p>
<p>Ed eccoci finalmente al codice. Iniziamo subito, per il momento, però lasceremo da parte il Javascript e ci concentreremo principalmente sull'HTML. Costruiremo infatti la struttura principale della pagina, attenendoci agli standard imposti dal <a href="http://www.w3.org/" target="_blank">W3C</a>.</p>
<div style="background-color:#dddddd;font-size:12px;text-align:left;">&#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&#62;<br />
&#60;html xmlns="http://www.w3.org/1999/xhtml"&#62;<br />
&#60;head&#62;<br />
&#60;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&#62;<br />
&#60;title&#62;Conteggio dei caratteri interni ad un form&#60;/title&#62;<br />
&#60;/head&#62;<br />
&#60;body&#62;<br />
Contatore:<br />
&#60;p id="contatore"&#62;<br />
&#60;/p&#62;<br />
&#60;textarea id="testo"&#62;&#60;/textarea&#62;<br />
&#60;/body&#62;<br />
&#60;/html&#62;</div>
<p>Ed ecco che abbiamo concluso la struttura della pagina, creando cioè lo scheletro nel quale andremo ad inserire successivamente il codice Javascript e la sua interazione con le azioni dell'utente.</p>
<p>Ma prima di passare a ciò, vediamo di spiegare dettagliatamente come funziona e qual'è il significato del codice scritto sopra.</p>
<div style="background-color:#dddddd;font-size:12px;text-align:left;">&#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&#62;<br />
&#60;html xmlns="http://www.w3.org/1999/xhtml"&#62;<br />
&#60;head&#62;<br />
&#60;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&#62;<br />
&#60;title&#62;Conteggio dei caratteri interni ad un form&#60;/title&#62;<br />
&#60;/head&#62;</div>
<p>Il codice qui sopra serve semplicemente come premessa, alcune di queste righe richiamano gli standard del web, mentre per esempio <em>&#60;head&#62;&#60;/head&#62;</em> permette di visualizzare il contenuto come titolo sulla barra superiore del browser. Il vero corpo del codice e quello che viene visualizzato si apre dalla riga sotto</p>
<div style="background-color:#dddddd;font-size:12px;text-align:left;">&#60;body&#62;</div>
<p>Questo riga apre lo spazio adibito al contenuto vero e proprio del corpo (in lingua inglese body vuol dire corpo).</p>
<div style="background-color:#dddddd;font-size:12px;text-align:left;">Contatore:<br />
&#60;p id="contatore"&#62;<br />
&#60;/p&#62;</div>
<p>Con queste tre righe costruiamo la parte di pagina adibita a contenere il nostro contatore, infatti la prima riga del blocco stampa a video la scritta "Contatore", inoltre crea un paragrafo (il tag <em>&#60;p&#62;</em> nel codice html sta per paragrafo), il cui id varrà "contatore" e che sarà lo spazio all'interno della nostra pagina a contenere il numero di caratteri scritti.</p>
<div style="background-color:#dddddd;font-size:12px;text-align:left;">&#60;textarea id="testo"&#62;&#60;/textarea&#62;<br />
&#60;/body&#62;<br />
&#60;/html&#62;</div>
<p>Con questa ultima parte creiamo la textarea (con la prima istruzione del blocco), che è lo spazio dove andremo a scrivere, e gli assegneremo il valore "testo" al suo id.<br />
Le righe successive servono per chiudere il corpo del documento (<em>&#60;body&#62;</em>) e la pagina (<em>&#60;html&#62;</em>).</p>
<p>Fatto ciò passiamo ad inserire all'interno della nostra pagina gli stili grafici per la textarea e per il paragrafo, questo, per un duplice scopo, il primo puramente estetico, cosi da dare un colore alle varie parti grafiche, il secondo, perchè Javascript può dare problemi di riconoscimento dei blocchi se a questi non vengono assegnati degli stili, quindi subito dopo l'apertura del tag <em>&#60;head&#62;</em> (in italiano testa, cioè testa del codice), inseriamo il seguente codice:</p>
<div style="background-color:#dddddd;font-size:12px;text-align:left;">&#60;style&#62;<br />
textarea{font-family:verdana, arial; font-size:10px; width:300px; height: 100px;}<br />
#contatore{font-family:times new roman, arial; font-size:15px; width:300px; height: 20px; border:2px solid #CCCCCC; background-color:#000000; color:#FFFFFF; overflow:auto;}<br />
&#60;/style&#62;</div>
<p>L'apertura del tag <em>&#60;style&#62;</em> serve per indicare al browser che quello che segue è un codice di stile (<a href="http://it.wikipedia.org/wiki/Foglio_di_stile" target="_blank">CSS</a>), e che quindi va interpretato come tale. Mi sembra poco interessante per voi che io stia qui a spiegare come funzionino i CSS in quanto argomento complesso e certamente non esauribile in poche righe, mi limito quindi a reindirizzarvi ad una utile <a href="http://css.html.it/guide/leggi/2/guida-css-di-base/" target="_blank">guida online</a>.</p>
<p>Abbiamo quindi quasi finito la creazione della nostra pagina, manca però ancora una parte fondamentale (e la più interessante), quella riguardante l'uso di Javascript. Premetto che Javascript è molto più complesso e consente di fare molte più cose di quelle che illustrerò con questo articolo, nel quale non mi metterò a spiegarvi come funziona per filo e per segno Javascript, ma mi limiterò a indicarvi come funziona il codice dato qui.</p>
<p>Prima di mettere il codice Javascript vero e proprio, dobbiamo però effettuare un altra operazione, cioè quella della cattura devi eventi, aggiungiamo quindi i seguenti codici:</p>
<div style="background-color:#dddddd;font-size:12px;text-align:left;">onload="conteggio();"</div>
<p>All'interno del tag <em>&#60;body&#62;</em>, questa istruzione, ci permette di richiamare la funzione <strong>conteggio()</strong> scritta in Javascript appena la pagina è stata caricata completamente.</p>
<div style="background-color:#dddddd;font-size:12px;text-align:left;">onkeyup="conteggio();"</div>
<p>All'interno del tag <em>&#60;textarea&#62;</em>, questa istruzione, ci permette di richiamare la funzione <strong>conteggio()</strong> scritta in Javascript, ogni volta che mentre scriviamo nella textarea, rilasciamo un tasto premuto.</p>
<p>Fatto ciò siamo quindi pronti per il codice Javascript vero e proprio. Questo codice deve essere inserito subito dopo la il tag <em>&#60;/style&#62;</em>, all'interno della "testa" del programma</p>
<div style="background-color:#dddddd;font-size:12px;text-align:left;">&#60;script type="text/javascript"&#62;<br />
&#60;!--<br />
function conteggio(){<br />
lunghezza=document.getElementById("testo").value.length;<br />
document.getElementById("contatore").innerHTML=lunghezza;<br />
}<br />
--&#62;<br />
&#60;/script&#62;</div>
<p>La prima riga, indica al browser che da li in poi fino alla chiusura è presente del codice javascript che non deve limitarsi a stampare, ma deve elaborarlo. La seconda e la penultima riga, non sono indispensabili, vengono però messe per evitare in caso di sbagliata interpretazione del codice di apertura da parte del browser che questi stampi il contenuto (infatti sono i simboli di apertura e chiusura commento in html, e che vengono ignorati da Javascript), viene inoltre usato questo espediente per evitare che certi motori di ricerca (che non riconoscono il tag <em>&#60;/script&#62;</em>) cerchino dentro di esso le parole per il rank.<br />
L'istruzione function, permette di creare una funzione il cui nome in questo caso è conteggio (la stessa funzione che facciamo chiamare dai cattura-evento). Creiamo una funzione, perchè ciò ci permette di richiamare il codice più volte senza doverla riscrivere nelle diverse parti di codice. Le parentesi graffe {}, servono per delimitare il blocco di istruzioni appartenenti alla funzione.</p>
<p>Passiamo adesso alle due funzioni principali di tutto il codice:</p>
<div style="background-color:#dddddd;font-size:12px;text-align:left;">lunghezza=document.getElementById("testo").value.length;<br />
document.getElementById("contatore").innerHTML=lunghezza;</div>
<p>La prima prende il valore della lunghezza (<em>length</em>) del valore (<em>value</em>) contenuto nell'elemento di Id testo (<em>getElementById("testo")</em>), che è la nostra textarea, appartenente alla pagina visualizzata (<em>document</em>), e la salva all'interno della variabile <strong><em>lunghezza</em></strong>, mentre la seconda istruzione, prende il valore della variabile<strong> </strong><em><strong>lunghezza</strong> </em>e la assegnata all'elemento di Id contatore (<em>getElementById("contatore")</em>), che è il nostro paragrafo, appartenente alla pagina visualizzata (<em>document</em>). <em>innerHTML, </em>serve per definire un area nella quale stampare il valore assegnatogli. Nel nostro caso definisce l'area del paragrafo di Id contatore per stamparvi dentro il valore di lunghezza.</p>
<p>E dopo avervi spiegato tutto ciò, eccovi il codice completo:</p>
<div style="background-color:#dddddd;font-size:12px;text-align:left;">&#60;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&#62;<br />
&#60;html xmlns="http://www.w3.org/1999/xhtml"&#62;<br />
&#60;head&#62;<br />
&#60;style&#62;<br />
textarea{font-family:verdana, arial; font-size:10px; width:300px; height: 100px;}<br />
#contatore{font-family:times new roman, arial; font-size:15px; width:300px; height: 20px; border:2px solid #CCCCCC; background-color:#000000; color:#FFFFFF; overflow:auto;}<br />
&#60;/style&#62;<br />
&#60;script type="text/javascript"&#62;<br />
&#60;!--<br />
function conteggio(){<br />
lunghezza=document.getElementById("testo").value.length;<br />
document.getElementById("contatore").innerHTML=lunghezza;<br />
}<br />
--&#62;<br />
&#60;/script&#62;<br />
&#60;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&#62;<br />
&#60;title&#62;Conteggio dei caratteri interni ad un form&#60;/title&#62;<br />
&#60;/head&#62;<br />
&#60;body onload="conteggio();"&#62;<br />
Contatore:<br />
&#60;p id="contatore"&#62;<br />
&#60;/p&#62;<br />
&#60;textarea id="testo" onkeyup="conteggio();"&#62;&#60;/textarea&#62;<br />
&#60;/body&#62;<br />
&#60;/html&#62;</div>
<p>E datovi il codice non mi resta che ringraziarvi per aver visitato il blog, sperando di esservi stato di aiuto.<br />
Prossimamente, sempre da me, un ciclo di lezioni, per costruire una propria chat personale usando <a href="http://it.wikipedia.org/wiki/PHP" target="_blank">PHP</a> e il database <a href="http://it.wikipedia.org/wiki/Mysql" target="_blank">MySql</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[nuove figure professionali: il netclipper]]></title>
<link>http://antoleo.wordpress.com/?p=22</link>
<pubDate>Sun, 13 Apr 2008 14:38:07 +0000</pubDate>
<dc:creator>antoleo</dc:creator>
<guid>http://antoleo.it.wordpress.com/2008/04/13/nuove-figure-professionali-il-netclipper/</guid>
<description><![CDATA[Avevo parlato in precedenza di reputazione in rete e nuove figure professionali.
Il primo pensiero c]]></description>
<content:encoded><![CDATA[<p>Avevo parlato in precedenza di reputazione in rete e nuove figure professionali.<br />
Il primo pensiero che mi passa per la mente, parlando di reputazione, è il famoso punteggio di eBay che ci fornisce l'affidabilità del nostro interlocutore.<br />
In molte altre situazioni in internet ci piacerebbe avere un'idea rassicurante delle persone che si celano dietro email, userID, avatar... il netclipper ha proprio il compito di navigare alla ricerca di informazioni e reputazioni su aziende e persone.<br />
La proliferazione di fonti di informazioni disponibili in diverse modalità (testuali, video) rendono sempre più difficile la ricerca in rete. Quindi se fino a ieri bastava utilizzare un motore di ricerca per reperire le informazioni ora con l'avvento della logica web 2.0 il discorso si complica.<br />
Come opero?<br />
Innanzitutto i motori di ricerca pur non fornendo più risultati soddisfacenti sono ancora una tappa obbligata: quindi monitoriamo la presenza in rete di un'azienda, di un nome e cognome (ed anche cognome e nome), di una email estendendo la ricerca a newsgroup, testate giornalistiche (as esempio <a href="http://news.google.it/">http://news.google.it/</a>).<br />
Un buon servizio da utilizzare ad esempio è Google Alert che ci permette di ricevere email su un determinato specifico argomento ogni volta che ci sono novità tra le news, sul web o tra i gruppi di discussione.<br />
Ma ovviamente questo non basta: dobbiamo monitorare la blogosfera e quindi usiamo quindi <a href="http://www.technorati.com">Technorati</a>,<a href="http://www.netvibes.com"> Netvibes</a>, <a href="http://blogsearch.google.com/">Google BlogSearch</a>, <a href="http://www.feedster.com">feedster</a>, <a href="http://www.icerocket.com">Icerocket</a>, <a href="http://www.bloglines.com">Bloglines</a>, <a href="http://www.rollyo.com">Rollyo</a>.<br />
Queste operazioni di monitoraggio sono faticose ed è per questo motivo che i netclipper di professione normalmente dispongono di software proprietari che sono in grado di  scandagliare la rete alla ricerca di queste informazioni.<br />
Adesso che ci penso non sarebbe male creare un webbot in php con cui fare queste cose... potrei buttare giù un progettino.<br />
Per chi vuole saperne di più l'istituzione in Italia è <a href="http://www2.extrapola.com/it/">Extrapola</a>.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Perchè ASP.NET?]]></title>
<link>http://antoleo.wordpress.com/?p=7</link>
<pubDate>Fri, 04 Apr 2008 15:29:47 +0000</pubDate>
<dc:creator>antoleo</dc:creator>
<guid>http://antoleo.it.wordpress.com/2008/04/04/perche-aspnet/</guid>
<description><![CDATA[Oggi ho avuto uno scambio di idee su cosa vuol dire programmare per il web con il mio collega/amico/]]></description>
<content:encoded><![CDATA[<p>Oggi ho avuto uno scambio di idee su cosa vuol dire programmare per il web con il mio collega/amico/supervisore.</p>
<p>Stiamo attualmente valutando la possibilità di convertire vecchie applicazioni web intranet sviluppate in ASP nella tecnologia ASP.NET.</p>
<p>Pur avendo già lavorato in passato con la tecnologia .NET ogni volta che devo utilizzarla ho una specie di orticaria.</p>
<p>Avendo iniziato a lavorare per il  web quando praticamente esisteva solo l'HTML e si affacciavano alla ribalta i primi linguaggi lato server ho visto pian piano l'evoluzione di internet da ambiente costituito da immagini e testo, regno della fantasia e della creatività, ad un'ambiente dove si cerca di trasformare le classiche applicazioni informatiche in qualcosa che con il web francamente hanno quasi niente da spartire se non il browser (un solo browser per essere precisi).</p>
<p>Ed ecco fiorire nelle intranet aziendali tristi applicazioni con menù, tree view dove .NET impera.</p>
<p>La mia sensazione con .NET è quella di essere soffocato, di non avere più il controllo della macchina e di lasciare tutto in mano all'ambiente di sviluppo dove ad esempio poter fare una semplice apertura di una popup diventa una cosa complicata: non era più semplice usare un'istruzione javascript "window.open(.....);" invece di usare classi e diavolerie varie?</p>
<p>E' una tecnologia che rimarrà confinata alle applicazioni intranet o è solo una mia sensazione?</p>
<p>Quando navigo in internet applicazioni fatte in .NET ne vedo proprio pochine,  ma si sa che se vuoi lavorare come consulente presso società o conosci .NET o l'alternativa è JAVA...</p>
]]></content:encoded>
</item>

</channel>
</rss>
