Progettazione… Programmazione… Soluzione…
Post con tag php
[Java] Invio di File ad una Servlet
4 giu
In Java le Servlet sono il primo strumento con il quale si viene a contatto, se si vuole realizzare una applicazione Web dinamica che interagisca con l’utente. Come sicuramente saprete, le Servlet sono in grado di ricevere le richieste HTTP GET o POST, e di restituire un risultato, che può anche dipendere dai parametri passati tramite la richiesta. Questa semplice caratteristica, è realizzabile grazie all’implementazione dei metodi doGet(…, …) e doPost(…, …) che la classe javax.servlet.http.HttpServlet mette a disposizione.
L’unico vero problema che ho riscontrato fin’ora con l’utilizzo di questa classe, è la limitazione da essa imposta riguardo il tipo di dati che è in grado di prelevare dalle richieste GET e POST che riceve. Infatti, con i due metodi sopracitati, è possibile solo elaborare richieste che contengono campi testuali che non fanno riferimento a codifiche particolari. Un classico esempio di questa limitazione, è l’impossibilità di inviare tramite GET o POST una immagine alla Servlet.
Java non offre nativamente altri strumenti per la gestione di contenuti di diverso tipo, quindi bisogna ricorrere ad una libreria esterna. Una libreria molto semplice ed intuitiva è messa a disposizione da Servlets.com ed è reperibile a questo indirizzo. La libreria in questione è com.oreilly.servlet, ed in particolare la classe che ci Continua >
Hacking: SQL Injection
21 mar
Tutti coloro che hanno lavorato almeno una volta con un database, soprattutto per quanto riguarda la gestione di utenti e relative password, sapranno che la tecnica più diffusa per appropriarsi di dati sensibili, è la tecnica chiamata Sql Injection.
La SQL injection è una tecnica dell’hacking mirata a colpire le applicazioni web che si appoggiano su un database di tipo SQL. Questo exploit sfrutta l’inefficienza dei controlli sui dati ricevuti in input ed inserisce codice maligno all’interno di una query SQL. Le conseguenze prodotte sono imprevedibili per il programmatore: l’Sql Injection permette al malintenzionato di autenticarsi con ampi privilegi in aree protette del sito (ovviamente, anche senza essere in possesso delle credenziali d’accesso) e di visualizzare e/o alterare dati sensibili.
Di seguito un esempio concreto per valutare le caratteristiche e la pericolosità di questa tecnica, con i seguenti componenti:
- db_name – Questo è il database al quale faremo riferimento;
- users – Questa è la tabella all’interno del DB che conterrà i dati degli utenti, in particolare username e password;
- login.php – Pagina php contenente un semplice script per verificare se l’username e password forniti sono corretti (quindi sono all’interno del DB);
- form.html – Pagina html che chiede i dati (username e password) tramite browser e richiama lo script php.
Vediamo dapprima il codice della pagina form.html che contiene Continua >
Regex Tester – RegexPal
28 gen
Spesso nei miei esperimenti, ho bisogno di ricorrere alle espressioni regolari per catturare una particolare sequenza di caratteri, da una stringa di dimensioni più elevate.
Per fare questo in Java ci sono le classi Pattern e Matcher, che richiedono come input la stringa originale, e l’espressione regolare. L’uso di queste classi è semplice ed immediato, ma non sempre è altrettanto semplice ed intuitivo, capire perché un’espressione regolare non svolge correttamente il suo lavoro. Ho quindi scoperto Regex Tester, un sito web che permette di testare in tempo reale gli effetti di un’espressione regolare. Abbiamo a disposizione una guida rapida all’uso ed alla scrittura di espressioni regolari, e possiamo anche personalizzare il comportamento di alcuni caratteri speciali dell’espressione regolare.
Fino a poco tempo fa non conoscevo nemmeno cosa fossero le espressioni regolari, ma vi assicuro che una volta che avete imparato ad utilizzarle, non ne potete fare più a meno.
Vediamo come Regex Tester può essere utilizzato per ovviare ad un problema molto comune, come può essere quello di estrarre da un testo, tutti gli indirizzi email che contiene. L’espressione regolare che uso in questo caso è:
[a-zA-Z0-9_\.]+@[a-zA-Z0-9-]+\.[a-zA-Z]{0,4}
Vediamo quindi Regex Tester come ci aiuta nel testare Continua >
Google Data API
27 gen
Google Data Protocol è un protocollo che deriva da REST ed il suo scopo è quello di interfacciare applicazioni di terze parti con gli applicativi Google.
Insieme ad alcuni amici dell’Università, stiamo sviluppando un progetto in cui è necessario interfacciarsi con YouTube. Le API di Google ci sono venute in soccorso per ogni problema o dubbio incontrato.
Le API di Google sono sviluppate per diversi linguaggi di programmazione (HTML, XML, Java, Php, .Net e Pynthon) e supportano tutti gli applicativi di Google; potete trovare un elenco completo nell’apposita API Directory di Google. Tutte le API sono ben fatte, funzionanti e soprattutto ben documentate. Per chi come me usa Eclipse, sviluppare un progetto usando le API di Google sarà ancora più facile. Ci sono infatti guide su come configurare un progetto di Eclipse, su come integrare le API ed esempi di codice già pronti.
Attualmente io sto usando solo le API di YouTube, e gli esempi di codice messi a disposizione mi sono stati più che sufficienti. Davvero un ottimo lavoro da parte di Google.
WordPress Fatal error: Allowed memory size…
23 gen
Spesso gli utenti alle primi armi con WordPress, o con siti in generali, si fanno prendere dal panico al minimo messaggio di errore…
Questo errore è causato da WordPress perché si supera il limite di memoria consentito. Per ovviare a questo inconveniente, non bisogna fare altro che aumentare questo limite (il limite viene superato facilmente grazie alla complessità dei template). I passi da compiere sono:
- Individuare il file wp-settings.php nella directory di installazione di WordPress;
- individuare all’interno del file la riga define (“WP_MEMORY_LIMIT”, “32M”);
- Sostituire la riga di sopra con define (“WP_MEMORY_LIMIT”, “64M”);
- Salvare e chiudere il file.
In questo modo abbiamo aumentato il limite di memoria a disposizione di WordPress, e per un pò non dovremo più avere problemi di questo tipo.
Redirect & SEO
20 gen
Rieccomi nuovamente alle prese con un articolo per voi… Questa volta parliamo di come i motori di ricerca gestiscono i reindirizzamenti delle pagine Web. In particolare vi parlo del redirect 301 che indica che una risorsa è stata spostata permanentemente. Il redirect 301 è usato nel caso in cui si voglia far puntare un vecchio indirizzo ad un nuovo indirizzo, senza invalidare i link che facevo riferimento al vecchio indirizzo. Nel caso del mio blog, ho usato il redirect 301 per far puntare l’indirizzo http://www.nerthase.com all’indirizzo http://www.nerthase.com/blog.
Veniamo al dunque, ed illustriamo i vari metodi per implementare un redirect 301:
Redirect PHPSe si vuole far redigere l’indirizzo www.miosito.it all’indirizzo www.mionuovosito.it basterà posizionare all’interno della directory principale del primo sito un file index.php con all’interno queste semplici righe di codice:
<?php Header( "HTTP/1.1 301 Moved Permanently" ); Header( "Location: http://www.mionuovosito.it" ); ?>In questo modo tutti i link che prima erano diretti a www.miosito.it verranno rediretti verso www.mionuovosito.it.
Redirect ASPIl ragionamento è identico al caso precedente, ma si riferisce a pagine ASP:
<% Response.Status = "301 Moved Permanently" Response.AddHeader "Location", "http://www.mionuovosito.it" %> Redirect HTMLNel caso in cui si abbia a che fare con pagine HTML, o il server su cui ci si appoggia è talmente ridicolo che non Continua >
WordPress plugin :: CodeColorer
19 gen
Come avrete notato, in vari miei articoli ho utilizzato un interessante plugin per colorare la sintassi del codice HTML utilizzato. Questo plugin è CodeColorer, disponibile sul sito ufficiale di WordPresso a questo link.
Di seguito una guida per l’installazione e l’utilizzo di CodeColorer:
Installation- Download and unpack plugin files to wp-content/plugins/codecolorer directory.
- Enable CodeColorer plugin on your Plugins page in Site Admin.
- Go to the Options/CodeColorer page in Site Admin and change plugin’s options as you wish.
- Use
[cc lang="lang"]code[/cc]or<code lang="lang">code</cc>syntax to insert code snippet into the post (you could skip lang=”lang” , in this case code would be in CodeColorer’s code block, but without syntax highlighting). Also you can use[cci lang="lang"]code[/cci]to format inline code (see the “inline” option description). - Have fun!
To insert code snippet into your post (or comment) you should use [cc lang="lang"]code[/cc] or <code lang="lang">code</cc> syntax. Starting from version 0.6.0 you could specify additional CodeColorer options inside [cc] tag:
[cc lang="php" tab_size="2" lines="40"] // some code [/cc]
Note: You should always use double quotes or single quotes around the parameter value. Boolean values could be passed using string true or false, on or off, number1 or 0.
Short codesStarting from CodeColorer 0.8.6 you can use short codes to insert code snippets. The short code in common looks like [ccM_LANG], where Continua >
Guide, soluzioni e consigli
19 gen
Dopo aver dato vita al nuovo sito web, è giunto il momento di pubblicare i piani che ho in mente per esso.
Il sito si evolverà man mano che inserirò articoli, e le categoria verranno di conseguenza. Ho intenzione di pubblicare guide e consigli per i problemi che riscontro ogni giorno. Affronterò principalmente problemi riguardanti Java, Php, Html, CSS, WordPress e quant’altro mi verrà in mente. Inoltre, pubblicherò svariate guide per quanto riguarda il mondo della mela, visto che sono un utente Mac da un pò di tempo.
Ho messo a vostra disposizione una pagina dove potrete richiedere aiuto e consigli. Basterà lasciare un commento in quella pagina, ed io proverò a darvi aiuto e supporto creando un nuovo articolo per voi.
Detto ciò, non mi rimane che augurarvi di nuovo il benvenuto…