<?xml version="1.0" encoding="UTF-8"?>
<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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>diploD &#187; Database</title>
	<atom:link href="http://www.diplod.it/category/ingegnere/database/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.diplod.it</link>
	<description>by Davide Del Monte</description>
	<lastBuildDate>Fri, 13 Feb 2015 14:26:10 +0000</lastBuildDate>
	<language>it-IT</language>
		<sy:updatePeriod>hourly</sy:updatePeriod>
		<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=3.9.40</generator>
	<item>
		<title>Sharepoint 2010: external list da database SQL esterno alla prova dei fatti</title>
		<link>http://www.diplod.it/2013/03/23/sharepoint-2010-external-list-da-database-sql-esterno-alla-prova-dei-fatti/</link>
		<comments>http://www.diplod.it/2013/03/23/sharepoint-2010-external-list-da-database-sql-esterno-alla-prova-dei-fatti/#comments</comments>
		<pubDate>Sat, 23 Mar 2013 16:19:11 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Sharepoint]]></category>
		<category><![CDATA[BCS]]></category>
		<category><![CDATA[Businness Connectivity Services]]></category>
		<category><![CDATA[integrazione]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[Sharepoint 2010]]></category>
		<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://www.diplod.it/?p=1279</guid>
		<description><![CDATA[Con i BCS (Businness Connectivity Services) è possibile creare liste di Sharepoint 2010 contenenti elementi che in realtà risiedono su un database SQL esterno a Sharepoint. Vediamo come funzionano, per appuntarsi qualche utile consiglio. Il primo passo per poter far funzionare il meccanismo è la definizione di una Secure Store Target Application, ovvero di un [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Con i BCS (<a title="Sharepoint 2010 BCS" href="http://msdn.microsoft.com/en-us/magazine/ee819133.aspx" target="_blank">Businness Connectivity Services</a>) è possibile creare liste di Sharepoint 2010 contenenti elementi che in realtà risiedono su un database SQL esterno a Sharepoint. Vediamo come funzionano, per appuntarsi qualche utile consiglio.</p>
<p>Il primo passo per poter far funzionare il meccanismo è la definizione di una<em> Secure Store Target Application</em>, ovvero di un elemento che memorizza le credenziali di accesso al sistema esterno, al quale Sharepoint farà riferimento per evitare che vengano chieste all&#8217;utente che in quel momento visualizza i dati. E&#8217; tuttavia possibile evitare questo passo, se si desidera che per l&#8217;accesso al database esterno vengano utilizzate le credenziali dell&#8217;utente connesso anzichè credenziali comuni.<br />
La <em>Secure Store Target Application</em> si crea dalla <em>Central Administration</em>. Navigando nella sezione <em>Application Management</em>, e cliccando su <em>Manage Service Applications</em> sotto a <em>Service Applications</em>. Apparirà una schermata con la lista delle service applications, clicchiamo su <em>Secure Store Service</em>. A questo punto clicchiamo su <em>Generate New Key</em> nel ribbon, si apre una finestra che chiede di impostare una pass phrase, servirà per poter modificare la target application, va quindi appuntata da qualche parte (ma questo appunto è superfluo, no?).</p>
<p>A questo punto si può creare una nuova target application e compilare tutti i campi necessari, come da figura sotto. Come email mettiamo quella di un amministratore di sistema, mentre come <em>Target Application Type</em> in genere si mette <em>Group</em>, perchè in questo modo è possibile associare la target application a un gruppo di utenti.</p>
<p><span id="more-1279"></span></p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/BCSmanage1.png"><img class="alignnone size-large wp-image-1289" title="BCSmanage1" src="http://www.diplod.it/wp-content/uploads/2011/11/BCSmanage1-1024x574.png" alt="" width="1024" height="574" /></a></p>
<p>Nel passaggio successivo è possibile quali campi associare alla target application, in genere sono sufficienti username e password: saranno poi valorizzati con le credenziali che dovranno impersonificare l&#8217;utente che si collega al database.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/BCSmanage2.png"><img class="alignnone size-large wp-image-1290" title="BCSmanage2" src="http://www.diplod.it/wp-content/uploads/2011/11/BCSmanage2-1024x574.png" alt="" width="1024" height="574" /></a></p>
<p>Ora bisogna specificare per quali utenti sarà disponibile questa target application, e quali sono gli utenti amministratori.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/BCSmanage3.png"><img class="alignnone size-large wp-image-1292" title="BCSmanage3" src="http://www.diplod.it/wp-content/uploads/2011/11/BCSmanage3-1024x334.png" alt="" width="1024" height="334" /></a></p>
<p>Ora che la <em>target application</em> è creata, non resta che settare le credenziali che utilizzerà per gli accessi al database esterno. Selezioniamo la <em>target application</em> dalla lista e premiamo il tasto<em> set credential</em> nel ribbon.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/set-credential.png"><img class="alignnone size-full wp-image-1293" title="set-credential" src="http://www.diplod.it/wp-content/uploads/2011/11/set-credential.png" alt="" width="452" height="202" /></a></p>
<p>Si aprirà una finestra dove inserire username e password, questo utente deve ovviamente avere accesso ai dati sul database esterno al quale vorremo collegare le liste di Sharepoint.</p>
<p>Ora l&#8217;attività si sposta su Sharepoint Designer 2010, per impostare i contenuti esterni e creare le liste che puntano ad essi. La prima cosa da fare è definire un External Content Type: ovvero un contenuto esterno dal quale attingere. Dopo aver aperto un sito, bisogna andare sul menù <em>External Content Type</em> e tramite il comando ribbon crearne uno nuovo.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/external-content-type.png"><img class="alignnone size-full wp-image-1285" title="external content type" src="http://www.diplod.it/wp-content/uploads/2011/11/external-content-type.png" alt="" width="546" height="190" /></a></p>
<p>Diamo un nome al contenuto esterno e clicchiamo sul link per impostare la connessione verso il sistema esterno.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/external-content.png"><img class="alignnone size-full wp-image-1286" title="external content" src="http://www.diplod.it/wp-content/uploads/2011/11/external-content.png" alt="" width="931" height="549" /></a></p>
<p>Ora bisogna cliccare sul tasto <em>Add Connection</em> per aggiungere una connessione.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/add-connection.png"><img class="alignnone size-large wp-image-1297" title="add-connection" src="http://www.diplod.it/wp-content/uploads/2011/11/add-connection-1024x357.png" alt="" width="1024" height="357" /></a></p>
<p>Apparirà una serie di schermate dove compilare i dati per l&#8217;accesso al database esterno.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/external-data-source.png"><img class="alignnone size-full wp-image-1298" title="external-data-source" src="http://www.diplod.it/wp-content/uploads/2011/11/external-data-source.png" alt="" width="312" height="98" /></a></p>
<p>Selezionare come opzione di connessione<em> Connect with Impersonated Custom Identity</em> e mettere il nome della<em> secure store application</em> definita prima sulla <em>Central Administration</em>.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/sql-connection.png"><img class="alignnone size-full wp-image-1299" title="sql-connection" src="http://www.diplod.it/wp-content/uploads/2011/11/sql-connection.png" alt="" width="378" height="256" /></a></p>
<p>Premendo <em>OK </em>il sistema chiederà le credenziali, inserire quelle dell&#8217;utente definito come amministratore della <em>secure store application</em> ai passi precedenti. Una volta validata la connessione, nell&#8217;<em>Operation Designer</em> apparirà tra le connessioni disponibili anche quella appena impostata: si espande l&#8217;albero per trovare la tabella o la vista contenente i dati che dovranno popolare la lista esterna di Sharepoint.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/operation-designer.png"><img class="alignnone size-large wp-image-1302" title="operation-designer" src="http://www.diplod.it/wp-content/uploads/2011/11/operation-designer-1024x539.png" alt="" width="1024" height="539" /></a></p>
<p>Una volta individuata, cliccando col tasto destro sulla tabella o sulla lista, è possibile generare le operazioni che servono (lettura, modifica, cancellazione, ecc..). E&#8217; possibile crearle tutte assieme, cliccando su <em>Create All Operation</em>. Nelle finestre successive dovremo dare un nome alle operazioni, si potranno settare filtri e sarà necessario marcare almeno un campo come <em>identifier </em>(ID di lista).</p>
<p>I filtri sono necessari per limitare il numero di record restituiti: di default è 2000 e a volte questo valore potrebbe non essere sufficiente, causando errore nella visualizzazione della lista tramite il browser sul sito Sharepoint.</p>
<p>Per l&#8217;operazione <em>Read List</em>, conviene settare qualche campo per la visualizzazione nel <em>picker</em>, altrimenti di default saranno visualizzati tutti e lato utente questa cosa risulta scomoda.</p>
<p>andando su <em>List and Libraries</em>, nei ribbon appare il comando <em>Elenco Esterno</em>.</p>
<p><a href="http://www.diplod.it/wp-content/uploads/2011/11/elenco-esterno.png"><img class="alignnone size-full wp-image-1282" title="elenco-esterno" src="http://www.diplod.it/wp-content/uploads/2011/11/elenco-esterno.png" alt="" width="357" height="144" /></a></p>
<p>Per chi volesse approfondire:</p>
<p><a href="http://blog.concurrency.com/sharepoint/accessing-external-data-using-business-connectivity-services-in-sharepoint-2010/">http://blog.concurrency.com/sharepoint/accessing-external-data-using-business-connectivity-services-in-sharepoint-2010/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2013/03/23/sharepoint-2010-external-list-da-database-sql-esterno-alla-prova-dei-fatti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installare Apache-php-MySQL su Windows Vista o Windows 7</title>
		<link>http://www.diplod.it/2008/01/21/installare-apache-php-mysql-su-windows-vista/</link>
		<comments>http://www.diplod.it/2008/01/21/installare-apache-php-mysql-su-windows-vista/#comments</comments>
		<pubDate>Mon, 21 Jan 2008 15:08:22 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[installazione]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[vista]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.diplod.it/2008/01/21/installare-apache-php-mysql-su-windows-vista/</guid>
		<description><![CDATA[Guida per l'installazione del server apache, php e mysql su windows vista]]></description>
				<content:encoded><![CDATA[<p>Mi sono aggiornato a <strong>Windows Vista</strong>, e ora pure a <strong>Windows 7</strong>. Anche se forse &#8220;aggiornato&#8221; non è la parola più azzeccata, visti problemi e problemini che ho riscontrato dopo 3 giorni di installazioni. Niente di irrecuperabile, a parte il fastidioso problema di connessione wireless su <a title="wireless problem wpa windows vista" href="http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=2095539&amp;SiteID=17" target="_blank">rete protetta wpa2</a>, di cui magari parlerò in seguito.</p>
<p>Riporto qualce appunto per installare senza problemi la piattaforma<strong> Apache+MySQL+php</strong>, così da avere in locale un server dove testare e sviluppare le proprie applicazioni (come <a title="Wordpress" href="http://wordpress.org/" target="_blank">wordpress</a> o <a title="Joomla" href="http://www.joomla.org/" target="_blank">joomla</a>).</p>
<p><span id="more-461"></span></p>
<h3>Installazione Apache Server 2.2.6</h3>
<p>Installare Apache è stato piuttosto semplice. Ecco i passi da seguire:</p>
<ol>
<li><strong>Scaricare l&#8217;installer (MSI) per Windows</strong> dal sito di <a title="Apache server download" href="http://httpd.apache.org/download.cgi" target="_blank">Apache HTTP Server</a></li>
<li><strong>Disattivare il controllo UAC</strong>:<em> </em><em>Su Vista</em>: start -&gt; pannello di controllo -&gt; Account Utente e protezione per la famiglia -&gt; Account Utente -&gt; Attiva o disattiva controllo account utente [tra parentesi questa cosa vi libererà delle fastidiosissime finestrelle "consenti" che appaiono dopo ogni clic]<em>Su Windows 7</em>:  start -&gt; pannello di controllo -&gt; Account Utente -&gt; Account Utente -&gt; Modifica le impostazioni di controllo dell&#8217;account utente -&gt; Impostare su Nessuna Notifica</li>
<li><strong>Lanciare l&#8217;installer</strong> appena scaricato e seguire le istruzioni, come Network Domain e Server Name possiamo mettere &#8220;localhost&#8221; (se l&#8217;installazione avviene in locale) e come porta scegliere 80.</li>
<li>Ora è possibile <strong>configurare Apache Server</strong>, aprendo il file &#8220;C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf&#8221; con un editor di testo.La cosa principale da fare è indicare la cartella dove vengono salvate le nostre pagine web per poi renderle accessibili via browser grazie al server. La cartella di default è /htdocs/, si trova all&#8217;interno di quella dove abbiamo installato Apache.Se vogliamo cambiarla è sufficiente trovare il paramentro &#8220;DocumentRoot&#8221; e modificarlo come segue:<code>#<br />
# DocumentRoot: The directory out of which you will serve your<br />
# documents. By default, all requests are taken from this directory, but<br />
# symbolic links and aliases may be used to point to other locations.<br />
#<br />
DocumentRoot "C:/www"</code></p>
<p>C:/www/ in questo caso è la cartella dove andremo a posizionarele pagine web e tutti i file annessi.</li>
<li>Lo stesso percorso va riportato sotto, in questo modo:<code>#<br />
# This should be changed to whatever you set DocumentRoot to.<br />
#<br />
&lt;Directory "C:/www"&gt;</code></li>
<li><strong>Salvare e riavviare il server</strong>.</li>
<li>Se dovessero presentari problemi in fase di avvio del server, per prima cosa controllare l&#8217;application log di windows; se dovessero mancare delle dll può tornare utile questa pagina: <a href="http://windows.php.net/download/">http://windows.php.net/download/<br />
</a>Un&#8217;altra operazione da fare è settare anche questi due ulteriori parametri sul file di configurazione come da testo sotto:<br />
<code># ServerName gives the name and port that the server uses to identify itself.<br />
# This can often be determined automatically, but we recommend you specify<br />
# it explicitly to prevent problems during startup.<br />
#<br />
# If your host doesn't have a registered DNS name, enter its IP address here.<br />
#<br />
ServerName localhost:80</code><br />
<code># Listen: Allows you to bind Apache to specific IP addresses and/or<br />
# ports, instead of the default. See also the &lt;VirtualHost&gt;<br />
# directive.<br />
#<br />
# Change this to Listen on specific IP addresses as shown below to<br />
# prevent Apache from glomming onto all bound IP addresses.<br />
#<br />
Listen 127.0.0.1:80</code></li>
</ol>
<h3>Il problema all&#8217;avvio dell&#8217;icona Apache Monitor nella systray con Windows Vista &#8211; risoluzione</h3>
<p>Una volta installato il server è sufficiente digitare l&#8217;indirizzo &#8220;http://localhost/&#8221; nella barra degli indirizzi del browser per capire se tutto funziona. Su Windows XP però eravamo abituati all&#8217;iconcina con la piuma dalla quale era possibile avviare o stoppare il server apache.</p>
<p>Con Vista questa icona non c&#8217;è più, inoltre un fastidioso problema all&#8217;avvio ci accoglie perchè Apache Monitor non riesce a caricarsi correttamente. Per risolvere l&#8217;inconveniente basta andare nella cartella di installazione di Apache Server, entrare nella cartella /bin/ e cliccare col tasto destro sul file ApacheMonitor.exe, da qui clic su Proprietà. In alto selezionare la tab &#8220;Compatibilità&#8221; e spuntare l&#8217;opzione &#8220;Esegui il programma in modalità compatibile per Windows XP (Service Pack 2)&#8221;. Vedi figure sottostanti.</p>
<p><img src="http://www.diplod.it/wp-content/uploads/2008/01/apache-monitor-proprieta.jpg" alt="Apache monitor" /></p>
<p><img src="http://www.diplod.it/wp-content/uploads/2008/01/apache-spunta-proprieta.jpg" alt="Apache proprieta" /></p>
<h3>Installazione MySQL 5.0</h3>
<p>MySQL è un server per database relazionali open source, ormai affermato e robusto, soprattutto in ambito web. Per l&#8217;installazione è necessario:</p>
<ol>
<li><a title="MySQL 5" href="http://dev.mysql.com/downloads/" target="_blank">Scaricare dal sito ufficiale</a> l&#8217;<strong>installer per windows</strong>.</li>
<li><strong>Lanciare l&#8217;installer</strong> e seguire le istruzioni a video, scegliendo l&#8217;installazione <strong>Typical</strong>.</li>
<li>Alla fine dell&#8217;installazione scegliere di <strong>configurare il server</strong>.</li>
<li>Scegliamo l&#8217;opzione &#8220;<strong>Detailed Configuration</strong>&#8220;</li>
<p style="text-align: center;"><img src="http://www.diplod.it/wp-content/uploads/2008/01/mysql01.jpg" alt="mysql-configurazione1" /></p>
<li>Impostare la tipologia come &#8220;<strong>Developer Machine</strong>&#8221; (il server sarà infatti utilizzato principalmente per i nostri test in locale)</li>
<p style="text-align: center;"><img src="http://www.diplod.it/wp-content/uploads/2008/01/mysql02.jpg" alt="mysql-configurazione" /></p>
<li>Al passaggio successivo selezionare &#8220;<strong>Multifunctional Database</strong>&#8220;</li>
<p style="text-align: center;"><img class="aligncenter" src="http://www.diplod.it/wp-content/uploads/2008/01/mysql03.jpg" alt="mysql-configurazione" /></p>
<li>Lasciare invariato al punto successivo e proseguire, a meno che non si voglia specificare una directory particolare per InnoDB</li>
<li>Come numero approssimativo di connessioni al server possiamo specificare <strong>20</strong>. Più che sufficienti se lo utilizziamo come server di test.</li>
<p style="text-align: center;"><img src="http://www.diplod.it/wp-content/uploads/2008/01/mysql05.jpg" alt="mysql-configurazione" /></p>
<li>Al passaggio successivo selezionare entrambe le opzioni, è poi possibile specificare la porta di connessione al database: generalmente la <strong>3306</strong></li>
<p style="text-align: center;"><img src="http://www.diplod.it/wp-content/uploads/2008/01/mysql06.jpg" alt="mysql-configurazione" /></p>
<li>Come impostazioni dei caratteri scegliere &#8220;<strong>Best support for Multilingualism</strong>&#8220;</li>
<p style="text-align: center;"><img src="http://www.diplod.it/wp-content/uploads/2008/01/mysql07.jpg" alt="mysql-configurazione" /></p>
<li>Se vogliamo cheMySQL si avvii in automatico all&#8217;accensione di windows selezionare &#8220;<strong>Install as Windows Service</strong>&#8221; e &#8220;<strong>Launch the MySQL server automatically</strong>&#8220;.</li>
<p style="text-align: center;"><img src="http://www.diplod.it/wp-content/uploads/2008/01/mysql08.jpg" alt="mysql-configurazione" /></p>
<li>Indicare la password per l&#8217;utente amministratore (<strong>root</strong>) ed eventualmente creare un utente anonimo (anche se sarebbe meglio evitare, è poco sicuro)</li>
<p style="text-align: center;"><img src="http://www.diplod.it/wp-content/uploads/2008/01/mysql09.jpg" alt="mysql-configurazione" /></p>
<li>Per l&#8217;amministrazione del Database installare <a title="SQL GUI" href="http://dev.mysql.com/downloads/workbench/" target="_blank">MySQL Workbench</a>. Si tratta di utili strumenti per la gestione &#8220;visiva&#8221; del server, degli utenti, dei permessi e dei database. Comprende inoltre il Query Browser per lanciare le query SQL.</li>
</ol>
<h3>Installazione php 5 sul server Apache</h3>
<p>Con l&#8217;installazione di php e delle estensioni per la connessione al database avremo completato l&#8217;opera. In questo caso è meglio eseguire una installazione manuale. Come riportato nella <a title="Guida php su win" href="http://php.html.it/guide/lezione/2551/rendere-php-disponibile-nel-sistema/" target="_blank">Guida php su Windows</a> di HTML.it:</p>
<blockquote><p>Questa installazione, consigliata dal manuale ufficiale Php, ha il vantaggio di non richiedere lo spostamento di file nelle directory di sistema (Windows, System32 e altre): infatti modificando la sola variabile di sistema PATH e mantenenedo i file in c:\php, tutto rimane più ordinato e l&#8217;aggiornamento diventa molto più semplice.</p></blockquote>
<p>Ecco i passi da seguire:</p>
<ol>
<li>Scaricare il <a title="php download" href="http://www.php.net/downloads.php" target="_blank">pacchetto zip dal sito ufficiale</a></li>
<li>Estrarre i files nella cartella <strong>C:/php/</strong> (il nome breve è più comodo)</li>
<li>Aprire Pannello di Controllo -&gt; Sistema e Sicurezza (Sistema e Manutenzione su Vista) -&gt; Sistema. Nella barra di sinistra cliccare su &#8220;<strong>Proprietà di Sistema avanzate</strong>&#8221; (Vista) o su &#8220;Impostazioni avanzate di sistema&#8221; (Windows 7), poi sul tasto &#8220;<strong>Variabili d&#8217;ambiente..</strong>&#8220;.<img src="http://www.diplod.it/wp-content/uploads/2008/01/php-var-ambiente.jpg" alt="Installazione php" />Dalla tendina sotto (variabili di sistema) selezionare &#8220;<strong>Path</strong>&#8221; e cliccare su &#8220;Modifica&#8221;. In fondo al testo già presente aggiungere la stringa &#8220;<strong>;C:\php</strong>&#8221; (con il punto e virgola, senza gli apici).<img src="http://www.diplod.it/wp-content/uploads/2008/01/variabile-path.JPG" alt="Installazione php" />
<p>In questo modo abbiamo indicato al sistema dove si trova l&#8217;interprete php.</li>
<li><strong>Riavviare windows</strong></li>
<li>Ora è necessario <strong>integrare l&#8217;interprete php nel server Apache</strong>. Per farlo bisogna aprire il file di configurazione di Apache: &#8220;C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf&#8221;C&#8217;è una lunga lista di &#8220;LoadModule&#8221; (molti di questi sono commentati) alla fine della quale bisogna aggiungere queste righe:<code># Start Php integration</code><code>LoadModule php5_module "C:/php/php5apache2_2.dll"</code>
<p><code>AddType application/x-httpd-php .php</code></p>
<p><code>PhpIniDir "C:/php"</p>
<p># End Php integration</p>
<p></code></li>
<li>Infine modifichiamo il parametro DirectoryIndex come segue:<code>#<br />
# DirectoryIndex: sets the file that Apache will serve if a directory<br />
# is requested.<br />
#<br />
&lt;IfModule dir_module&gt;<br />
DirectoryIndex index.html index.php<br />
&lt;/IfModule&gt;</code></p>
<p><code> </code></li>
<li>Ora andiamo nella directory di php e rinominiamo il file &#8220;php.ini-development&#8221; in &#8220;<strong>php.ini</strong>&#8220;.Si tratta del file di configurazione dell&#8217;interprete php. Apriamolo con un editor di testo.</li>
<li>Cambiamo il parametro &#8220;extension_dir&#8221; come segue:<code>; Directory in which the loadable extensions (modules) reside.</code><code> </code><code>extension_dir = "C:/php/ext"</code></li>
<li>Settare il parametro &#8220;display_errors&#8221; su On per poter vedere gli errori generati dagli script che svilupperemo</li>
<li>Infine decommentare (togliendo il punto e virgola davanti) il parametro &#8220;session.save_path&#8221; e moficarlo come segue:<code>session.save_path = "C:/php/sessionfiles"<br />
</code></p>
<p><strong>sessionfiles è una cartella da creare</strong>, dove verranno salvati i file relativi alle sessioni di php.</li>
<li>Ora dovremo attivare i connettori php-MySQL (maggiori info nella <a title="php mysql connectors" href="http://dev.mysql.com/downloads/connector/" target="_blank">pagina dei download dal sito ufficiale di MySQL</a>). Si tratta di file dll che permettono la connessione da parte di php al database: <strong>mysqli</strong> e <strong>mysql</strong></li>
<li>Assicurarsi che siano presenti i file php_mysql.dll e php_mysqli.dll nella cartella <strong>/ext/</strong> di php (dove ci sono le estensioni)</li>
<li>Ora nel file <strong>php.ini</strong> aperto in precedenza decommentare (togliendo il ; ad inizio riga) le estensioni di mysql come segue:<code>extension=php_mysql.dll<br />
extension=php_mysqli.dll</code></p>
<p><code> </code></li>
<li>Altra estensione utile è quella per la gestione delle immagini, che conviene decommentare:<code>extension=php_gd2.dll</code><code> </code></li>
<li>A questo punto salvare tutto, <strong>riavviare il server Apache</strong> e tutto dovrebbe funzionare.</li>
</ol>
<p>Per essere sicuri possiamo creare un file &#8220;index.php&#8221; con all&#8217;interno il semplice codice</p>
<p><code>&lt;?php phpinfo() ; ?&gt;<br />
</code></p>
<p>Aprire il browser e digitare l&#8217;indirizzo: &#8220;http://localhost/index.php&#8221; Se tutto è stato eseguito correttamente dovremmo vedere una pagina che riporta diverse informazioni sulla versione di php installata.</p>
<p>Si noti che questo semplice test non ci dà informazioni sulla corretta installazione delle estensioni per la connessione al database, che dovremo testare in un secondo momento, magari provando l&#8217;installazione in locale di un cms come wordpress.</p>
<p><strong>Anche su Windows Vista e Windows 7 gira, buon lavoro.</strong> :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2008/01/21/installare-apache-php-mysql-su-windows-vista/feed/</wfw:commentRss>
		<slash:comments>65</slash:comments>
		</item>
		<item>
		<title>Tutorial jsp: gestione utenti con database access</title>
		<link>http://www.diplod.it/2006/12/15/tutorial-jsp-gestione-utenti-con-database-access/</link>
		<comments>http://www.diplod.it/2006/12/15/tutorial-jsp-gestione-utenti-con-database-access/#comments</comments>
		<pubDate>Fri, 15 Dec 2006 02:24:48 +0000</pubDate>
		<dc:creator><![CDATA[Davide]]></dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Ingegneria]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[access]]></category>
		<category><![CDATA[jsp]]></category>

		<guid isPermaLink="false">http://www.diplod.it/2006/12/15/tutorial-jsp-gestione-utenti-con-database-access/</guid>
		<description><![CDATA[Gestire gli utenti di un sito web con la tecnologia jsp e javaBean è una delle operazioni più elementari, ma è anche il primo ostacolo da superare quando ci si avvicina a questa tecnologia. Effettuare la registrazione degli utenti e il relativo salvataggio dei dati su database, gestire la sessione con il login e il [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Gestire gli utenti di un sito web con la tecnologia <span style="font-weight: bold">jsp</span> e <span style="font-weight: bold">javaBean</span> è una delle operazioni più elementari, ma è anche il primo ostacolo da superare quando ci si avvicina a questa tecnologia. Effettuare la registrazione degli utenti e il relativo salvataggio dei dati su database, gestire la sessione con il login e il logout: sono le basi per costruire un sito dinamico che prevede l&#8217;interazione con i propri visitatori.</p>
<p>In questo piccolo tutorial vengono realizzate cinque semplici pagine:</p>
<ol style="font-weight: bold">
<li>registrazione.html</li>
<li>registra.jsp</li>
<li>login.html</li>
<li>login.jsp</li>
<li>logout.jsp</li>
</ol>
<p>Tutte le operazioni di inserimento e le interrogazioni al database vengono effettuate dal bean <span style="font-weight: bold">UtentiBean.java</span>. Potete scaricare il <a href="http://www.diplod.it/wp-content/uploads/2006/12/diplod-tutorial-jsp-access.zip">file con gli esempi direttamente qui</a>.</p>
<p><span id="more-20"></span></p>
<p>La prima operazione da fare è il caricamento dei files nella cartella <strong>webapps</strong> di <strong>Tomcat</strong>. Per funzionare correttamente il nome della cartella che contiene tutti i files deve essere &#8220;diplod&#8221;, se vuoi cambiare il nome alla tua cartella ricordati di farlo anche nelle pagine jsp che si connettono al database, ovvero &#8220;registra.jsp&#8221; e &#8220;login.jsp&#8221;. Puoi cambiare nome pure al database, purchè lo modifichi anche nella stringa che si connette ad esso. Queste semplici pagine sono state testate su <strong>Tomcat versione 5.5</strong>, per funzionare sulla versione 4 bisogna cambiare la stringa di collegamento al database e impostare i permessi di accesso ad esso dal pannello di controllo di windows (strumenti di amministrazione, origine dati ODBC). In amministrazione dati scegliere &#8220;Database di Microsoft Access&#8221; e cliccare su Aggiungi.<br />
<img src="http://www.diplod.it/wp-content/uploads/2006/12/cattura1.gif" alt="" /><br />
Selezionare &#8220;Driver do Microsoft Access (*.mdb)&#8221;<br />
<img src="http://www.diplod.it/wp-content/uploads/2006/12/cattura2.gif" alt="" /></p>
<p>Selezionare il database nella sua posizione e assegnarli un nome univoco, che sarà poi quello utilizzato nella stringa di collegamento.<br />
<img src="http://www.diplod.it/wp-content/uploads/2006/12/cattura3.gif" alt="" /></p>
<p>Vediamo ora nel dettaglio il contenuto delle pagine:</p>
<p>La pagina &#8220;registrazione.html&#8221; contiene un semplice form di inserimento dati, per il quale evito di riportare il codice.</p>
<p>La pagina &#8220;registra.jsp&#8221; contiene invece il codice per processare i parametri ricevuti e invocare il metodo di salvataggio del bean. Se infatti l&#8217;utente ha inviato i dati, questi vengono salvati in stringhe e successivamente impostati sul bean tramite i metodi setNomeVar(). Successivamente viene invocato il metodo salvaUtente(), che restituisce valore vero nel caso l&#8217;inserimento dei dati sul database vada a buon fine.</p>
<p><strong>NB</strong>: in grassetto è evidenziata la stringa di connessione al database, se non avete modificato i nomi della cartella e del database e state utilizzando Tomcat 5.5 si può lasciare invariata, altrimenti va modificata opportunamente con il giusto percorso. Se invece state utilizzando Tomcat 4 va sostituito tutto il blocco di <strong>bean.setDbUrl(&#8230;..)</strong>; con questo blocco: <strong>bean.setDbUrl(&#8220;jdbc:odbc:nomeDelTuoDatabase&#8221;);</strong> dove al posto di nomeDelTuoDatabase bisogna riportare il nome univoco dato al database dal pannello di controllo di windows.</p>
<p>Questo il codice della pagina:<br />
<code>&lt;%@page language="java"%&gt;<br />
&lt;jsp:useBean id="bean" scope="page"<br />
class="beans.UtentiBean"/&gt;<br />
&lt;% if (request.getParameter("invio")!=null) {<br />
bean.setDbUrl("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};<br />
DBQ=<strong>C:/Programmi/Apache Software Foundation/Tomcat 5.5/webapps/diplod/diplod.mdb</strong>");<br />
bean.connect();<br />
String nome = request.getParameter("nome");<br />
String cognome = request.getParameter("cognome");<br />
String username = request.getParameter("username");<br />
String password = request.getParameter("password");<br />
String email = request.getParameter("email");<br />
String hobby = request.getParameter("hobby");<br />
bean.setNome(nome);<br />
bean.setCognome(cognome);<br />
bean.setUsername(username);<br />
bean.setPassword(password);<br />
bean.setEmail(email);<br />
bean.setHobby(hobby);<br />
} %&gt;<br />
&lt;% //salvataggio utente<br />
boolean salvataggio = false;<br />
salvataggio = bean.salvaUtente();<br />
if (salvataggio==true) { %&gt;<br />
&lt;h1&gt;Conferma registrazione&lt;/h1&gt;<br />
&lt;p&gt;La tua registrazione è avvenuta correttamente.&lt;/p&gt;<br />
&lt;p&gt;Questi sono i tuoi dati: &lt;br/&gt;<br />
Il tuo nome:&lt;%=bean.getNome()%&gt;&lt;br/&gt;<br />
Il tuo cognome:&lt;%=bean.getCognome()%&gt;&lt;br/&gt;<br />
La tua email:&lt;%=bean.getEmail()%&gt;&lt;br/&gt;<br />
Il tuo username:&lt;%=bean.getUsername()%&gt;&lt;br/&gt;<br />
La tua password:&lt;%=bean.getPassword()%&gt;&lt;br/&gt;<br />
Il tuo hobby:&lt;%=bean.getHobby()%&gt;&lt;br/&gt;<br />
&lt;/p&gt;<br />
&lt;% } else { %&gt;<br />
&lt;h1&gt;Errore!&lt;/h1&gt;<br />
&lt;p&gt;La tua registrazioneb non è avvenuta correttamente.&lt;/p&gt;<br />
&lt;p&gt;Forse hai scelto un nome utente già presente o non hai compilato correttamente alcuni campi! Torna a &lt;a<br />
xhref="registrazione.html" mce_href="registrazione.html" &gt;registrazione&lt;/a&gt;.&lt;/p&gt;<br />
Motivo dell'errore: &lt;br/&gt;<br />
&lt;%=bean.getMsgErrore()%&gt;<br />
&lt;% }<br />
bean.disconnect(); %&gt;</code></p>
<p>La pagina login.html è un&#8217;altra semplice pagina statica che contiene il form per il login.</p>
<p>La pagina login.jsp gestisce il primo login e la sessione dell&#8217;utente. A differenza della pagina jsp per la registrazione, lo scope del bean è infatti settato a &#8220;session&#8221;, ovvero i dati relativi all&#8217;utente vengono tenuti in memoria dal server per tutta la durata del collegamento, fino al logout. Anche in questo caso è necessario tenere presente degli accorgimenti sulla stringa di connessione al database illustrati precedentemente.</p>
<p>Come si vede dal codice, la pagina imposta i dati dati solo se sono stati effettivamente inviati dal form, per poi invocare il metodo loginUtente() del bean. Questo metodo, nel caso l&#8217;utente sia presente nel database, imposta a true una variabile booleana. Il suo valore viene recuperato poi dalla jsp tramite il metodo getAuth(), per controllare se l&#8217;utente ha effettuato positivamente il login. Questo metodo potrebbe essere invocato da tutte le pagine sicure del nostro sito, quelle alle quali si può accedere solo dopo il login.</p>
<p>Se il login non è andato a buon fine, al posto del menù di navigazione viene restituito un messaggio di cortesia all&#8217;utente.</p>
<p>Ecco il codice della pagina:</p>
<p><code>&lt;%@page language="java"%&gt;<br />
&lt;jsp:useBean id="bean" scope="session"<br />
class="beans.UtentiBean"/&gt;<br />
&lt;%<br />
//se l'utente ha compilato il form per il login<br />
if (request.getParameter("invio")!=null) {<br />
bean.setDbUrl("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};<br />
DBQ=C:/Programmi/Apache Software Foundation/Tomcat<br />
5.5/webapps/diplod/diplod.mdb");<br />
bean.connect();<br />
String username = request.getParameter("username");<br />
String password = request.getParameter("password");<br />
bean.setUsername(username);<br />
bean.setPassword(password);<br />
bean.loginUtente();<br />
}<br />
//controllo l'esito del login<br />
if (bean.getAuth()) { %&gt;<br />
&lt;h1&gt;Benvenuto nel sito &lt;%=bean.getNome()%&gt; &lt;%=bean.getCognome()%&gt;&lt;/h1&gt;<br />
&lt;p&gt;Questo è il menù di navigazione.&lt;/p&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;&lt;a xhref=http://www.diplod.it/#"&gt;voce di navigazione 1&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a xhref=http://www.diplod.it/#"&gt;voce di navigazione 2&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a xhref=http://www.diplod.it/#"&gt;voce di navigazione 3&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a xhref=http://www.diplod.it/#"&gt;voce di navigazione 4&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a xhref=http://www.diplod.it/#"&gt;voce di navigazione 5&lt;/a&gt;&lt;/li&gt;<br />
&lt;li&gt;&lt;a xhref=http://www.diplod.it/#"&gt;voce di navigazione 6&lt;/a&gt;&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;a xhref="logout.jsp" mce_href="logout.jsp" &gt;Logout&lt;/a&gt;<br />
&lt;% } else { %&gt;<br />
&lt;h1&gt;Errore!&lt;/h1&gt;<br />
&lt;p&gt;Nome utente o password non corretti.&lt;/p&gt;<br />
&lt;p&gt;se ancora non sei registrato vai a &lt;a xhref="registrazione.html" mce_href="registrazione.html" &gt;registrazione&lt;/a&gt; altrimenti &lt;a xhref="login.html" mce_href="login.html" &gt;ritenta il login&lt;/a&gt;.&lt;/p&gt;<br />
Motivo dell'errore: &lt;br/&gt;<br />
&lt;%=bean.getMsgErrore()%&gt;<br />
&lt;% }<br />
bean.disconnect(); %&gt;</code></p>
<p>La pagina logout.jsp non fa altro che invocare il metodo logout() del bean. Tale metodo torna a settare a false la variabile auth, in questo modo l&#8217;accesso alle pagine protette non sarà più possibile.</p>
<p>Per il codice del bean, si faccia riferimento direttamente al file <strong>UtentiBean.java</strong>, il codice è commentato per una più facile comprensione. La composizione delle stringhe per le query sql, così come la gestione delle statement sono volutamente semplificate per risultare di più facile comprensione, ma probabilmente non sono il modo migliore per interrogare un database ed eseguire operazioni sql.</p>
<p>Giusto a titolo informativo, si riporta un metodo più professionale per interrogare un database (in questo caso MySql).</p>
<p><code>PreparedStatement stmt = null;<br />
ResultSet rs = null;<br />
Connection cn=null;<br />
try{<br />
Class.forName("com.mysql.jdbc.Driver");<br />
cn = DriverManager.getConnection("jdbc:mysql://localhost/database?user=XXXX&amp;password=XXXXX");<br />
String sql="SELECT * FROM tabella WHERE user=? AND password=?";<br />
stmt = cn.prepareStatement(sql);<br />
stmt.setString(1,user);<br />
stmt.setString(2,password);<br />
rs = stmt.executeQuery();<br />
if (rs.next()) { ..........</code></p>
<p>Spero che questo piccolo tutorial possa essere utile. Quando ho iniziato a studiare la tecnologia server-side di java ero un po&#8217; spaesato, e nonostante diverse ricerche tra forum e manuali non sono mai riuscito a trovare una semplice guida per la gestione degli utenti con un database access. Certo non è il miglior database da utilizzare se vogliamo creare un sito web, ma cambiando solo pochissime righe di codice si può utilizzare questa applicazione ugualmente con <strong>MySQL</strong>.</p>
<p>Se avete suggerimenti, se trovate qualcosa di incorretto, lasciate un commento a questo post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.diplod.it/2006/12/15/tutorial-jsp-gestione-utenti-con-database-access/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
	</channel>
</rss>
