c'e' solo un modo di fare le cose: farle bene

Archive for the ‘PHP’ Category


Generare uman password con PHP

lug 1, 2010 Author: Gianluca | Filed under: PHP

Gia immagino le facce dubbiose di chi sta leggendo questo post. Concordo che la password debba essere complessa al fine di evitare o quanto meno rallentare un brute force, ma spesso se la password è troppo ostica da ricordare viene scritta su un post-it e messa in bella mostra sul monitor! :)

Ecco il codice di una bella funzione PHP che genera delle comode human password:

function humanPass($length = 8) {
$password = '';
$conso=array('b','c','d','f','g','h','j','k','l','m','n','p','q','r','s','t','v','w','x','y','z');
$vocal=array('a','e','i','o','u');
srand((double)microtime()*1000000);
for($i=1; $i<=$length; $i++) {
if ($i % 2) {
$password.=$conso[rand(0,count($conso)-1)];
} else {
$password.=$vocal[rand(0,count($vocal)-1)];
}
}
return $password;
}

Che cosa fa? Genera una stringa composta da $length caratteri composta da consonanti e vocali equamente alternate.

Se certe consonanti o vocali ci sono antipatiche basta rimuoverle dai due array e non verranno usate.

Ripeto: non è un sistema per generare password sicure quindi se la vostra Bibbia detta policy ferrer ignorate questo mio post.

Eclipse Galileo + Subclipse = unable to load default svn client

set 2, 2009 Author: Gianluca | Filed under: PHP, Ubuntu

Uso Eclipse (su Ubuntu) per scrivere codice PHP e dopo le difficoltà funzionali ormai superate, lo trovo uno strumento molto comodo.

Ho da poco scaricato la versione “Galileo” con PDT, ma installando il plugin Subclipse (versione 1.4) , necessario per avere il supporto SVN, ricevevo sempre questo errore: unable to load default svn client.

Ho risolto installando libsvn-java:

sudo apt-get install libsvn-java

e poi editando il file eclipse.ini presente nella directory di Eclipse ed aggiungendo queste righe:


-Djava.library.path=/usr/share/java/
-Djava.library.path=/usr/lib/jni/

Subito dopo la direttiva “-vmargs“.
Dopo il riavvio del programma, tutto sembra funzionare.

Buon coding a tutti! :)

Espressioni regolari

mar 24, 2009 Author: Gianluca | Filed under: PHP

Quando si scrive un qualsiasi tipo di software capita spesso di imbattersi nelle espressioni regolari al fine di vigilare sull’input dell’utente o per estrapolarne dei dati.

Ho deciso di raccogliere le espressioni regolari per PHP più comuni, quelle che ho utilizzato di più nella mia “giovane” carriera da programmattore.

E-Mail

$email = "test@ideafactory.it";
if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',$email)) {
echo "OK";
} else {
echo "KO";
}

E’ importante ricordare che con le espressioni regolati si verifica solo la sintassi e non la semantica, quindi un indirizzo e-mail può essere ben scritto ma inesistente!.

Username

$username = "user_name12";
if (preg_match('/^[a-z\d_]{5,20}$/i', $username)) {
echo "OK";
} else {
echo "KO";
}

La username, nel mio caso, deve essere composta da un minimo 5 ad un massimo di 20 caratteri e può contenere solo lettere, numeri e underscore “_”.

Indirizzo IP

$IP = "198.168.1.7";
if (preg_match('/^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/',$IP)) {
echo "OK";
} else {
echo "KO";
}

URL

$url = "http://www.ideafactory.it/";
if (preg_match('/^(http|https):\/\/([A-Z0-9][A-Z0-9_-]*(?:\.[A-Z0-9][A-Z0-9_-]*)+):?(\d+)?\/?/i', $url)) {
echo "OK";
} else {
echo "KO";
}

Un’ottima guida sulle espressioni regolari in PHP è quella fornita da HTML.IT presente qui.

eAccelerator su Debian Etch

lug 9, 2008 Author: Gianluca | Filed under: Apache, Debian, PHP

eAccelerator è un’estensione gratuita ed open source per PHP che si occupa di effettuare un lavoro di accelerazione, ottimizzazione e di cache sui vostri script scritti per l’appunto in PHP. I benefici di usare eAccelerator sono dimostrati da infiniti benchmark presenti su Internet. (continua…)

PHP 5 su Mac OS X Leopard

apr 7, 2008 Author: Gianluca | Filed under: Apple, PHP

In Mac OS X è presente Apache e per avviarlo basta abilitare la “Condivisione web” sotto “Condivisione” che si trova in “Preferenze di sitema” nella parte “Internet e network“:

Condivisioni

Adesso con il vostro browsr di fiducia potete navigare il vostro indirizzo ip e vi verrà mostrata la pagina di benvenuto di Apache (la cui document root è /Library/WebServer/Documents/).
Se al vostro indirizzo aggiungete:

/~nomeutente/

Compariranno a video i contenuti HTML che si trovano sotto la directory “Siti” presente nella vostra home.

Fin qui tutto bene, ma PHP 5?. (continua…)

jMyCake on Bakery

mar 28, 2008 Author: Gianluca | Filed under: CakePHP, PHP

Ieri sera, mentre controllavo le visite con Google Analytics, ho visto che hanno raggiunto IdeaFactory, in cerca del jQuery Autocomplete Helper, da CakePHP.jp e spulciando il sito ho trovato questo:

From CakePHP.jp

Quindi: THANKS TO CAKEPHP.JP!!! :)

Preso dell’entusiamo ho pubblicato il mio helper su Bakery che è un reposity di guide, tutorial e codice a cui tutti gli appassionati di CakePHP possono contribuire.

Spero che il mio articolo venga accettato dai moderatori, se così fosse sarà raggiungibile qui.

Le sessioni PHP che scompaiono…

giu 26, 2007 Author: Gianluca | Filed under: PHP

Tanto tempo fa l’informatica era 0 o 1.
Adesso fa come vuole tantè che in un server web, PHP riusciva a scrivere il file di sessione ma poi non poteva più aggiornarlo con i nuovi valori, il tutto senza errori o anomalie.
Il problema? L’hard-disk!
Mi è venuto in mente di cambiare il path del file di sessione tramite questa direttiva:

ini_set("session.save_path","nuovo_path");

Eh meravigliosamente tutto ha funzionato…
Evidentemente la porzione di filesystem usata /var/lib/php5 ha qualche problema.
Adesso l’hard-disk è stato spostato da primario a secondario nell’array RAID e pare che tutto funziona.

Staremo a vedere.

Last 3 LifeStream

  1. Today

    1. RT @lddio: La mafia teme più la scuola della giustizia. L'istruzione toglie erba sotto i piedi della cultura mafiosa. (A. Caponnetto, 19 ... [gianlucagentile]

      8h ago via Twitter

    2. RT @gzaffagnini: @riotta Dio accolga coloro che lo #Stato non riesce a proteggere [gianlucagentile]

      8h ago via Twitter

    3. RT @donati_giacomo: Solo delle Merde possono piazzare una bomba davanti una scuola! #brindisi [gianlucagentile]

      8h ago via Twitter

    Upstream

    Powered by Lifestream.

Flickr PhotoStream

    DSCF9988.JPGDSCF9958.JPGDSCF9968.JPGDSCF9980.JPGDSCF9981.JPG

Blogroll


Calendar

maggio: 2012
L M M G V S D
« nov    
 123456
78910111213
14151617181920
21222324252627
28293031