Watermark e descrizione di un’immagine, con PHP!

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:
Una classe per gestire l’upload di un file in PHP
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
)
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);
?>
Google PageRank su Opera

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”).
Un modulo protetto da un’immagine captcha! (PHP + GD)
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>
<? }
?>
Risoluto..
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!
HOW CAN I RESIST YOU
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
Superficiale.. questo mondo astrale
ohi blog..
una cosa brutta brutta
ho paura che la gente non sappia piu volare
ho tanta paura..
Io. no
IL titolo di oggi può germogliare nuocendo la y dell’uomo.
Capitato qui dopo un capitombolo mi ritrovo a scrivere dopo tempo e ritempo in questo mio spero per voi carino blog.
la luce che mi colpisce è gialla.. un giallo rossastro.. la tv è accesa.. tg5 racconta..
il letto ancora disfatto.. tra poco dovrò tornarci a dormire..
forse è per questo che tutto
Se fossi un utente sarei una donna.. o un lupo mannaro..
Interessante la strategia dei corpi deformi.. soprattutto se incompresi..
Quando è il subconscio a scrivere per mano del potere.. forse la notte ancora non gravida..
Quando è la gente che legge ciò che si fece male durante la tragedia del 1922.. è bello..
senza la tua vita nessuno resiste alla fiducia dell’oscuro..
Senza il tuo sangue nessuno dice che sei realmente accaduto..
Una scomparsa precoce.. P.U.M .. e via……
Ma.. il tentativo scaduto riporta il re nel paese perduto..
accusando vari dolori.. egli si ferma.. e.. nota misera.. dovrò ricostruire tutto.. tutto ciò che nn ho mai costruito.. perciò l’impero esiste.. si .. l’impero esiste.. la tomba delle virtù.. dissacrata.. attende altro sangue.. non il mio perciò.. ho DONATO ABBASTANZA ..
ps: se lo leggo fra 1 anno.. ciao gio!.. spero non ti stia ricordando di me!! perkè sennò sei ancora te!! cioè sei ancora me.. e non va bbene.. la gente non mi capisCie.. capito?? .. e spero di no.. comunque.. salutami tanto mamma.. dije che je vojo bene.. e che piangere ogni tanto fa bene.. ogni tanto.. non ogni TANTO.. perkè sennò poi si naviga nel male.. cmq spero sia già diventato ricchissimo perkè io per ora lo sono.. ma solo nell’anima.. meglio perkè la gente è così vuota.. ma in questo mondo vincono i soldi non i ricchi..
ciau ciau
EMERGENZA CALDO
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??
- cappellino , detto poche volte in tv
- rinfrescare polsi e testa molte volte e camminare all’ombra dove possibile
- 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





