Watermark e descrizione di un’immagine, con PHP!

Sabato 7 Giugno 2008 at 7:46 pm (Guide, PHP, Programmazione, Tutti i posts) (, , , , , )

Ho realizzato questo script veramente facile da utilizzare e configurare (sotto una vista del codice di configurazione), con questo script potrete disegnare un box trasparente sulla vostra immagine ed inserirci del testo, ed aggiungere l’”effetto watermark”, ovvero una di quelle immagini sfumate con il copyright (usate da praticamente tutti i fotografi e photostock per evitare la copiatura selvaggia delle immagini destinate alla vendita). Che dire, se vi piace usatelo! =)

La trasparenza dell’immagine watermark è da impostare quando la si crea (in formato PNG)!

Archivio ZIP: quì
Demo funzionante: quì

Ecco l’anteprima di un’immagine e del codice:

Permalink 2 Commenti

Una classe per gestire l’upload di un file in PHP

Mercoledì 4 Giugno 2008 at 11:30 pm (Guide, PHP, Programmazione, Tutti i posts) (, , , , )

Oggi ho creato una classe che ritengo utile e che mi fa piacere condividere con voi, ecco come si usa:
La classe è reperibile quì

Prima pagina: un form di invio dati

Copiare quanto segue in una pagina ed omettere i cancelletti all’inizio delle righe

<form action=”seconda_pagina.php” method=”post” enctype=”multipart/form-data” name=”form1″>
<input type=”file” name=”to_upload”>
<input type=”submit” name=”Submit” value=”Submit”>
</form>

Seconda pagina (seconda_pagina.php)

Apriamo i tags php:
<?

Ed ora cominciamo ad usare la classe:
$upload=new fileUpload;

Configuriamo l’opzione safe_mode (default: 1)
0: Niente safe_mode
1: Non permette allo script di gestire le cartella madri, ovvero permette solo di usare la directory corrente e tutte le sue subdirectories
$upload->safe_mode=1;

Configuriamo l’opzione allow_overwrite:
0: Non permette agli utenti di sovrascrivere files
1: Permette agli utenti di sovrascrivere files
$upload->allow_overwrite=1;

Lista delle estensioni consentite (indicare senza il “.”, es. array(“png”, “gif”))
$upload->allowed_extensions=array(“jpg”,”jpeg”,”bmp”,”gif”,”png”,”tif”, “wav”);

Dimensione massima del file in byte
$upload->max_size=”3145728″;

La cartella nella quale salvare i files
$upload->setTargetDir(“mydir”);

File da uploadare (dove “to_upload” indica il nome del campo file del modulo)
$upload->setTargetFilename($_FILES['to_upload']['name']);

Nome temporaneo del file (non cambiare se non sai cosa tocchi :P )
if($upload->saveFile($_FILES['to_upload']))
{

Azioni da intraprendere qualora il trasferimento fosse andato a buon fine
print “Tutto ok!”;
}

Se vogliamo informare l’utente del massimo numero di bytes inviabile possiamo scrivere quanto segue
print “<strong>Dimensione massima file</strong>: “.$upload->getMaxSize().” bytes<br>\n”;

Configuriamo la modalità debug (questo parametro va inserito sempre in fondo)
0: Modalita’ debug disattivata
1: Modalita’ debug attivata: dei messaggi ti aiuteranno a capire dove si nascondono i problemi
$upload->debug(0);


Chiudiamo ora i tags
?>

Diamo ora uno sguardo al codice completo:

<?
$upload=new fileUpload;
$upload->safe_mode=1;
$upload->allow_overwrite=1;
$upload->allowed_extensions=array(“jpg”,”jpeg”,”bmp”,”gif”,”png”,”tif”, “wav”);
$upload->max_size=3145728;
$upload->setTargetDir(“mydir”);
$upload->setTargetFilename($_FILES['to_upload']['name']);
if($upload->saveFile($_FILES['to_upload']))
{
print “Tutto ok!”;
}
print “<strong>Dimensione massima file</strong>: “.$upload->getMaxSize().” bytes<br>\n”;
$upload->debug(0);
?>

Permalink Lascia un Commento

Google PageRank su Opera

Lunedì 2 Giugno 2008 at 7:20 pm (Guide, Tutti i posts) (, , , , , )

Premessa: cos’è il PageRank?

Il PageRank costituisce il punteggio attribuito ad un sito da google, viene utilizzato dallo stesso per ordinare i risultati di una ricerca, chi ha un punteggio più alto verrà visualizzato prima di chi ne ha uno basso.
Per ulteriori approfondimenti vi rimando a Wikipedia.

Da un po’ cercavo un widget funzionante da cui potessi ricavare informazioni relative al Pagerank di una pagina, oggi, googleando “page rank opera” ho trovato finalmente ciò che cercavo a questo indirizzo.
Non è un vero e proprio widget, si tratta di un bottone da inserire nella toolbar di Opera, io lo trovo veramente utile!

Veniamo al dunque

Collegarsi a questo indirizzo e premere il pulsante indicato in figura.

Premere “si”, questo permetterà l’aprirsi di una nuova finestra e l’”installazione” del bottone.

Trascinare ora il bottone dove preferiamo sulla toolbar, e rilasciarlo.

Io l’ho messo insieme ad altri collegamenti:

Premere “Ok”, altrimenti si annullerà tutto

Ecco cosa succede quando si clicka sul bottone, il pagerank visualizzato, ovviamente, sarà quello del sito che si stà visitando, il “numerino” che ci interessa è l’ultimo della lista, in questo caso è il 4, vuol dire che il rank della pagina è di 4/10 (10 è il massimo punteggio “ottenibile”).

:)

Permalink Lascia un Commento

Menu orizzontale “rotondeggiante” con css

Lunedì 2 Giugno 2008 at 7:20 pm (Guide, Programmazione, Tutti i posts) (, , , , )

Anteprima

Oggi pacioccavo con il CSS, e ne è venuto fuori qualcosa che ho ritenuto carino, ho deciso di condividerlo.

Ecco cosa ci serve:
Immagine sinistra (sfondo_sx.gif):

Immagine destra (sfondo_dx.gif):  

Logo (logo_30x30.gif):

CSS:

#main_menu {
padding: 9px;
background-color:#003300;
overflow:auto;
padding-bottom: 5px;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
#main_menu ul, #main_menu ul li {
display: inline;
}
#main_menu a, #main_menu .logo {
float:left;
}
#main_menu a {
cursor: pointer;
color: #FFFFFF;
text-decoration:none;
margin:0 10px;
line-height:27px;
background:url(sfondo_dx.gif) right top no-repeat;
font-size: 12px;
padding-right:9px;
background-color: #006600;
}
#main_menu span {
background:url(sfondo_sx.gif) left top no-repeat;
display:block;
padding-left:9px;
}
#main_menu a:hover {
background-color:#007700;
}

Codice HTML:

<div id="main_menu">
<ul>
<li class="logo"><img src="logo_30x30.gif" width="30" height="30" border="0"></li>
<li><a href="#"><span>Home</span></a></li>
<li><a href="#"><span>Catalogo</span></a></li>
<li><a href="#"><span>Marchi</span></a></li>
</ul>
</div>

Permalink Lascia un Commento

Un modulo protetto da un’immagine captcha! (PHP + GD)

Mercoledì 28 Maggio 2008 at 7:52 pm (Guide, Programmazione, Tutti i posts) (, , , , , , , , )

Mi è capitato oggi di ricevere la richiesta di aiuto da parte di un amico che desiderava un modulo per l’invio di emails protetto da un codice captcha, in un primo momento non sapevo cosa fosse, ma dopo una googleata ho capito che per immagine captcha si intendono quelle immagini composte da alcuni caratteri non allineati ed uno sfondo che ne disturba il riconoscimento di modo da rendere difficile la vita ai BOT che incessantemente cercano il modo per rendere aumatico l’invio. I codici captcha infatti, se ben strutturati, sono riconoscibili solamente dall’occhio umano, estendendo questo attributo all’intero script.
Ma vediamo come possiamo realizzare una simile struttura, creeremo 2 diversi files, il primo conterrà il generatore dell’immagine, il secondo il codice di verifica e il form di invio:

Primo file: il generatore dell’immagine

Questo file creerà un dato di sessione, che ho chiamato “captcha_text”, che corrisponderà alla successione dei caratteri visualizzati nell’immagine.

<?php
#Comunichiamo al browser che o' che visualizzera' questo file sara' un'immagine, è necessario che il file non dia altro output oltre al contenuto dell'immagine, quindi facciamo molta attenzione ad eventuali spazi prima e dopo i tags php!
header("Content-type: image/png");
#Creiamo un'immagine alta larga 100px ed alta 50px
$im = imagecreate(100, 50);
#Impostiamo il colore di sfondo a nero (#000000), per convenzione il primo colore dichiarato e' quello dello sfondo
$background_color = imagecolorallocate($im, 0, 0, 0);
#Impostiamo anche un colore che sara' quello del testo
$text_color = imagecolorallocate($im, 233, 14, 91);
#Diamo inizio ad un ciclo "for", che generera' una successione di 30 numeri, la dichiarazione .= significa che cio' che segue andra' a finire dopo l'attuale contenuto della variabile "$randstr"
for($i=0;$i<30;$i++)
$randstr.=rand(0,9);
#Generiamo l'hash della stringa ottenuta con il ciclo precedente
$randstr=md5($randstr);
#Diminuiamo la lunghezza della stringa (attualmente lunga 30 caratteri), ora la stringa sara' lunga 5 caratteri a partire dal primo
$randstr=substr($randstr, 0, 5);
#Trasformiamo i caratteri minuscoli in caratteri maiuscoli, per rendere piu' comprensibile l'immagine
$randstr=strtoupper($randstr);
#Ora "sminuzziamo" la stringa, in modo da ottenere un array composto da 5 elementi: i 5 caratteri della stringa
$chars=str_split($randstr);
#Tramite 5 cicli i caratteri saranno posizionati in giro per l'immagine, con un offset di +/-2 pixel, sia in X che in Y, ogni carattere distera' da quello successivo di circa 15 pixel
for($i=0;$i<5;$i++)
imagechar($im, 5, 10+15*$i+rand(-2, +2), 15+rand(-2, +2), $chars[$i], $text_color);
#Con altri 5 cicli disturberemo lo sfondo, con altrettante rette che attraverseranno l'immagine partendo da due cordinate casuali ed arrivando ad altre due cordinate casuali
for($i=0;$i<5; $i++)
imageline($im, rand(0,100), rand(0,50), rand(0,100), rand(0,50), $text_color);
Diamo in output la nostra creazione
imagepng($im);
##Eliminiamo i dati temporanei relativi all'immagine dopo averla visualizzata
imagedestroy($im);
#Richiamiamo la sessione (un passaggio obbligatorio se vogliamo dichiarare delle variabili di sessione)
session_start();
#Attribuiamo alla variabile di sessione "captcha_text" il valore $randstr, ovvero la stringa composta da 5 caratteri generata qualche linea piu' su
$_SESSION['captcha_text']=$randstr;
#Chiudiamo i tags del php
?>


Secondo file: un form dove inserire il codice captcha (captcha.php)

Questo file conterrà i dati che si vogliono inviare e la conferma del nostro codice captcha, sarà quindi necessario richiamare l’immagine del codice, ecco come si presenterà il nostro file:

<?
#Controlliamo che esista il dato "submitted_code", che sarà impostato solamente se è già stato digitato il codice captcha e controlliamo
if((isset($_POST['submitted_code']))&&($_POST['submitted_code']==$_SESSION['captcha_text']))
{

#Facciamo partire la sessione, questo passaggio è obbligatorio per leggerne i dati e le veriabili
session_start();
#Output ed operazioni legate alla corretta digitazione del codice (es. mandare un'email, eseguire un'operazione sul database...)
echo "Messaggio di OK";
}

#Altrimenti riproponiamo l'inserimento del codice
else
{

?>
<form name="form1" method="post" action="#">
<p>
<input type="text" name="campoacaso">Un campo a caso<br>
</p>
<p>
<input name="verify_code" type="text" id="vcode">Copia il codice sottostante nel box<br>
<img src="
captcha.php" width="100" height="50"><br>
<input type="submit" name="Submit" value="Invia">
</p>
</form>

<? }
?>

Permalink 3 Commenti

Risoluto..

Venerdì 18 Aprile 2008 at 2:05 pm (OFF - TOPIC, Riflettere, Stranezze, Tutti i posts, incomprensibile) (, , , , , , , , )

Credo ormai di dover affermare che Ubuntu Linux mi sta ufficialmente sulle palle..
cioè.. non è che non mi piace..

proprio MI FA SCHIFO…

forse perchè dalla prima versione son cambiate molte cose..
il fatto è che .. se devo installarla.. e subito dopo eliminare e disattivare tutta la merda che ci piazza su…

a questo punto installo una distro base e poi sono io che AGGIUNGO e non che tolgo……

così ho deciso di installare AAAAAAAAAAAAAAAAAAAAARCHHHHHH

con un nome del genere e un “DON’T PANIC!” confortevole.. è iniziata l’avventura all’insegna della distro piu violenta che ci sia..

è uno wow dover configurare tutto a mano e risolvere con un semplice click della tastiera sui caratteri giusti….

poi una volta configurato x, audio, monopoli, banda bassotti.. è una distro come tutte le altre..

con un gestore dei pacchetti spettacoloso…

tra l’altro mi so scordato na cosa… come si cercano i files co apt????? mistero..

poi tipo quando ho kdemod attivo + kopete + firefox + konqueror + film in buona visione + skype co conferenza in corso e mi consuma 190 mb di ram.. direi WoW ….

e se nn mi basta, posso loggare su fluxbox e viva la velocità della luce..

parlando con un windowsiano sono rimasto stranito…
gli ho detto appunto.. mi consuma 200 mb di ram su 1 gb che ho..
e lui mi ha risposto: Vedi linux fa schifo , non sfrutta tutta la ram.. è una merda..

mhmhm … mistero della fede..

fine sfogo.. byez blog! ;)

Permalink 2 Commenti

HOW CAN I RESIST YOU

Martedì 20 Novembre 2007 at 4:50 am (Tutti i posts) (, , , , , , , , , , )

eravamo il nostro scopo della vita..
ma chi poteva saperlo a quell’età

 

devo ricominciare..

a ricordare..

a ricordare quei bellissimi momenti passati..

a scavar la terra per trovare i vermi eheheh..

a giocare coi copertoni delle ruote..

a pasticciare coi giocattoli..

a chieder perkè perkè perkè..

che bello le ranocchie.. guarda quante ranocchie..

bei giorni di pioggia erano.. tutte quelle bolle facevano le gocce d’acqua..

tutte quelle ranocchie.. queste bolle che riportavano a loro..

quanti bei sogni.. voglio fare..

voglio fare.. il mago!

no voglio fare il giocoliere!

no voglio fare il clown!

no il pompiere!!

ed ora.. voglio fare.. il militare..

sparare alla gente.. senza motivo.. senza nessun pensiero..

 

perkè .. così solo .. bisogno d’affetto

amo l’amore e nulla più.. scrivevo una volta..

amore amore amore amore amore amore amore amore amore..

quante volte vorrei ripetere questa parola..

alla mia dolce amata..

quando sarà di nuovo tempo di amare??

perkè ora devo soffrire così…

tutta questa dolcezza.. buttata al vento..

foglie che si lasciano andare ormai senza speranza..

desidero..

si desidero ancora..

sogno che..

si sogno ancora..

vorrei..

si vorrei ancora..

mi chiedo..

si .. per fortuna mi pongo ancora domande..

è morto il devil che voleva morire..

e cerca amore il devil desideroso di amare..

scherza con tutti il devil che ha bisogno di allegria..

litiga co qualcuno ogni tanto.. il devil guerrigliero.. il devil che mai la da vinta..

dedica tempo a se stesso.. gio..

disperazione..

sono perduto?.. no.. semplicemente non so leggere la mappa..

quindi mi sono perso..

no..semplicemente ho bisogno di uno che continui a insegnare..

spero di non aver imparato abbastanza..

bimbo mio vai a letto ora.. domani dovrai faticare..

sai la tua flotta dei pirati..

sai le micro machines…

sai l’amiga..

sai win 3.11

sai win 95..

sai win 98..

sai win xp..

sai la depressione..

sai linux..

sai l’amore..

sai la vita da adulto..

sai domani devi cercar lavoro.. basta stare a casa..

a volte vorrei dire basta..

a volte lo dico e basta..

 

dico quel che penso..penso quel che dico

sono me stesso.. e fa male.. ma almeno non sono ciò che odio..

continuerò ad amare anke chi mi odia a morte..

continuerò ad amare perkè è per l’amore che ora son qui….

continuerò ad amare.. perkè l’amore mi ha salvato.. l’amore mi ha cullato.. l’amore mi ha insegnato.. l’amore mi ha svezzato.. l’amore mi ha condannato..

 

notte blog..è tempo di sognare :)

 

Permalink Lascia un Commento

Superficiale.. questo mondo astrale

Venerdì 5 Ottobre 2007 at 2:30 am (Riflettere, Stranezze, Tutti i posts, incomprensibile) (, , , , , , )

ohi blog..

una cosa brutta brutta

ho paura che la gente non sappia piu volare

ho tanta paura..

Permalink Lascia un Commento

EMERGENZA CALDO

Venerdì 20 Luglio 2007 at 12:39 pm (OFF - TOPIC, Riflettere, Tutti i posts) (, , , , )

qui a milano, ogni giorno è sempre più caldo.. e questi poveri vecchi crollano..
Chi vien colto di infarto mentre gioca sotto il sole cocente con gli anni che si ritrova
e chi fa shopping col sole cocente con gli anni che si ritrova..

E così via , seguendo il post di prima, a dare seeeempre le stesse notizie su tutti i telegiornali WOW!!

e ci si chiede:
Come resistere al gran caldo??

  1. cappellino , detto poche volte in tv
  2. rinfrescare polsi e testa molte volte e camminare all’ombra dove possibile
  3. non andarsela a cercare stando nelle ore più calde del giorno sotto il sole : dalle 12.30 alle 16.00 .. circa son queste le ore più calde..

Strano che nn ci sono in tv i soliti medici che dicono in pratica queste 3 cose.. e in più aggiungono di mangiare molta frutta, e bere tanto..

Gli anziani però non se la devono cercare.. Se vogliono uscire, che vadano ai supermercati o in altri posti dove condizionatori sono una manna dal cielo..
Se con la pensione che ci si ritrova nn si può comprare un ventilatore o un condizionatore, usate un ventaglio.. è comodo e leggermente vi rinfresca la testa..

Please state attenti.. Fatelo per me :(

Permalink Lascia un Commento

Indiscrezioni sul mondo altrui

Venerdì 20 Luglio 2007 at 12:25 pm (OFF - TOPIC, Riflettere, Tutti i posts) (, , , , , , , )

Da circa una settimana ho configurato la mia home page ( http://www.google.it/ig ) , così da avere i feed che seguo tutti uno affianco all’altro e senza avere mille segnalibri in firefox..
Si notano cose divertenti ma scoccianti..
Premettendo che io scrivo solo quando mi va e quel che mi pare senza seguire la moda,
Si nota che:

I vari bloggHerS linuxiani scrivono i post sulla STESSA COSA, lo STESSO GIORNO, dando le STESSE OPINIONI..
Secondo la mia filosofia potreste pensare

” bhe che c’è di male? ognuno scrive quel che gli pare”

però è brutta una cosa così..
Si nota anche che:

Tra i vari giornali on line ( per es. repubblica, corriere, e cose così) , anche lì ci sono gli stessi articoli..
ma loro la fanno più furba, o per meglio dire più seria.. Un fatto, se lo scrive un giornale, loro lo scrivono o il giorno dopo o dopo 2 o 3 giorni.. Nei feed comunque si vede che sono gli stessi.. Però almeno la pagina del giorno è diversa ed è già più carino..

Il fastidio di ste cose non è tanto il contenuto, visto che molti bloggHerS sanno scrivere ( a differenza di me che so na capra , con tutto il rispetto pe le capre) , ma il fatto di leggere solo su 2 argomenti al giorno..

Tutti si affrettano ad aggiornare il post con le stesse notizie = noia totale

E dopo un po mi vien da scegliere il blog scritto meglio, leggo la notizia lì e basta.
Quindi se magari si scrivessero cose diverse o almeno a distanza di tempo sarebbe meglio.
Si leggerebbero più notizie al giorno sui differenti campi e cose così..

Per esempio:

Mania KDE4 .. ha cominciato a parlare il BIG, e tutti i biggini han seguito.. Le migliorie, novità , gli wow.. Ha smesso il BIG, e tutti i biggini han seguito.. Poi il BIG ha deciso di ” wow ho provato e17 che goduria” .. e tutti i biggini a dire ” che goduria il nuovo e17″ o la versione che è…
Cioè enlightenment che è sempre uguale da sempre e ha solo le icone in più sul desk, ora è diventato stra bellissimo.. e prima nn se lo cagava nessuno.. che cazz è ?? si fa così? quel porello lo lasciate sempre in solitudine e ora lo fate felici tutti insieme in un colpo solo? je viene un infarto !.. e cmq delle varie qualità mai nessuno, o pochissimi, ne han parlato.. tutti a postare lo stesso screenshot sulla schermata, a dire quali sono gli aspetti principali e cioè ” guarda che bella la barra in basso , guarda che belle finestre” .. e basta..
In questi due giorni invece è la TUXFEED mania ( e da pirla gli faccio anche pubblicità) .. bella iniziativa si.. ma non altrettanto bella quella che tutti i bloggHerS han fatto almeno un post su questa iniziativa..Tutti insieme.. lo stesso giorno… CHE NOIA..

Poi ogni tanto spunta il post “come dovrebbe essere un blog ” .. Questo ha effetto domino sugli altri.. e così spuntano le ” 10 regole per un blog di successo”, ” come creare un blog straordinario” , etc etc..Ovviamente cambia lo stile ma la sostanza è sempre la stessa.. e pure blog aggregatori come tuxfeed.. che secondo me è solo questo.. se acchiappa i post degli altri e co la scusa che so tutti i blog linux nella stessa pagina , selezionati, se fa di miliardi di visite.. e uno dice ok bella l’iniziativa etc.. ma mettere anke un post che dice ” non fare blog aggregatori perkè è na strunzata” .. mha.. sarà la politica di “mettiamo in bella vista così da nn esser colpevoli ” .. lui lo mette così si fa fiducia ma vabbè.. cos’ha di linux questo post nn lo so ma vabbè lui l’ha selezionato per noi.. :)
( regole per scrivere un blog serio o di successo o tutti e due auhauhahuhua : )

Ok il blog è un diario il blog è questo e quest altro.. ma se decidete di scrivere un blog che da informazioni.. vi prego datele diverse.. fate così: non osservate per due giorni i blog degli altri, facciamo tre.. e postate quel che vi salta in mente di novità o cose così.. o prendete spunto dai giornali che nn li leggono in molti.. così se copiate nn succede nulla.. almeno c’è più divertimento a leggere e imparare VARIE cose.. e non LA STESSA :P

Permalink Lascia un Commento

Prossima pagina »