Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /home/w41258/domains/chiappucci.it/public_html/ServerScript/ban-ip/class.BanIp.php on line 15
giugno, 2008 | Guido Chiappucci's Blog

Guido Chiappucci's Blog

Archive for giugno, 2008

PHP: mail() e punti esclamativi

without comments

Oggi inviando email con la funzione mail() di php, per la prima volta, mi sono trovato di fronte a dei punti esclamativi (!) inseriti ad intervalli regolari all’interno del testo della mail, allora mi sono documentato ed ho scoperto che  è un limite fisico di Sendmail: una riga non può superare 990 caratteri, se questo avviene, viene interrotta con l’inserimento di un carattere di a capo (\n) e un punto esclamativo.
Per risolvere il problema ho passato alla funzione mail() il testo del messaggio codificato in base 64, base64_encode(), ed inserito nell’header del messaggio la stringa “Content-Transfer-Encoding: base64″.

Ecco un piccolo esempio:

1
2
3
<?php
mail($to,$subject,base64_encode($message),"From:<".$from.">\r\nMIME-Version: 1.0\r\nContent-type: text/html; charset=iso-8859-1\r\nContent-Transfer-Encoding: base64");
?>

In questa maniera si risolve il problema ma mi è capitato che alcuni client di posta come Libero e Gmail non vedano il testo della mail.
In conclusione, facendo riferimento allo script sopra riportato, consiglio di formattare la stringa $message passata alla funzione mail() inserendo interruzioni di riga (\n), dove è possibile, in maniera da non superare 990 caratteri. Operando in questo modo il problema non si presenta.

Link utile: http://bugs.php.net/bug.php?id=13044

Written by Guido

giugno 30th, 2008 at 5:28 pm

Posted in PHP

Tagged with , , ,

PHP: le costanti

with one comment

In php è possibile definire delle costanti, ovvero identificatori di valori che non possono essere modificati od eliminati. Un costante deve essere definita tramite la funzione define() e va richiamata senza l’utilizzo del $, attenzione perchè di default sono case sentitive. Le costanti sono sempre globali. Si può accedere alle costanti da qualsiasi punto dello script senza tenere conto della visibilità.

In pratica una costante si definisce così:

1
2
3
<?php
define("COSTANTE","hello");
?>

e si usa così:

1
2
3
4
<?php
echo COSTANTE;
/* Stampa: hello */
?>

Inoltre è possibile verificare se una costante è stata definita

1
2
3
4
5
<?php
if(defined("COSTANTE")){ 
   echo "definita";
}
?>

Written by Guido

giugno 27th, 2008 at 7:49 pm

Posted in PHP

Tagged with , ,

PHP: include() o require()

without comments

In php, per semplificare la stesura del codice e per riutilizzare script che vengono eseguiti più volte, è possibile includere all’interno di uno script altri file mediante include() o require().
La sintassi è la seguente:

1
2
3
4
<?php
include("script1.php");
require("script2.php");
?>

In sostanza il risultato che si ottiene è lo stesso, la differenza si ha nella restituzione di un eventuale errore di inclusione: include() genera un errore di tipo warning e continua ad eseguire lo script invece require() genera un fatal error bloccando l’esecuzione dello script.

Infine esistono altre modalità di inclusione: require_once() ed include_once() le quali si limitano ad includere una sola volta il file all’interno dello script anche se la chiamata viene fatta più volte.
In pratica se un file è già stato incluso non sarà incluso nuovamente.

1
2
3
4
5
6
7
<?php
include_once("script3.php");
require_once("script4.php");
 
/* Questa inclusione non verrà considerata: */
require_once("script4.php");
?>

Written by Guido

giugno 25th, 2008 at 3:54 pm

Posted in PHP

Tagged with , ,

PHP: Monitorare il file system

with 2 comments

Con questo script tengo sotto controllo lo spazio su disco, può darsi che php non sia lo strumento più adatto per fare questo tipo di controlli lato server ma ho raggiunto lo stesso il risultato che volevo ottenere.
In pratica imposto un limite di spazio utilizzato ($limit) e l’email a cui mandare la notifica ($to), inserito nel cron tab ad intervalli regolari ed il gioco è fatto!
Ovviamente per far si che il comando exec “funzioni”, php deve avere i permessi per eseguire il comando “df”.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
function DfCheck($limit,$to){
    if(exec("df",$output)){
        foreach($output as $v){
            if(strpos($v,"%")>-1){
                $ar = explode("%",$v);
                $perc = substr($ar[0],(strlen($ar[0])-2),strlen($ar[0]));
                if(is_numeric($perc)){
                    if($perc>=$limit){ $warning = 1; }
                    $return.= $perc."% : ".$ar[1]."\n";
                }
            }
        }
        if($warning==1){
            $mail_txt = date("d/m/Y - H:i:s")."\n".$_SERVER['SERVER_ADDR'].": ".$_SERVER['SERVER_SIGNATURE']."\n\n".$return;
            mail($to,"File system: ".$_SERVER['SERVER_ADDR'],$mail_txt,"From: DfCheck<".$_SERVER['SERVER_ADMIN'].">");
        }
    }else{
        return false;
    }
}
DfCheck(80,"nome[at]dominio[dot]com");
?>

Written by Guido

giugno 16th, 2008 at 3:22 pm

Posted in PHP

Tagged with ,

Roundcube update v0.1.1: bug fix

with 3 comments

Ho riscontrato un baco nell’update dalla versione 0.1 di Roundcube, in pratica non vengono più create in automatico le cartelle di default quando si accede alla casella.

Per risolvere il problema è necessario inserire nel file config/main.inc.php la seguente riga:

$rcmail_config['create_default_folders'] = TRUE;

RoundCube - elenco cartelle

Written by Guido

giugno 13th, 2008 at 4:38 pm

Posted in Software

Tagged with ,

Contribuite a stabilire un Guinness: scaricate Firefox 3!

without comments

Download Day

Written by Guido

giugno 12th, 2008 at 9:24 am

Posted in Internet

Tagged with ,

PHP: Array superglobale $_SERVER

without comments

Per visualizzare il nome del file che esegue lo script o l’indirizzo IP del client, php mette a disposizione l’array $_SERVER attraverso il quale si possono reperire varie informazioni scambiate tra server e client.

1
2
3
4
5
6
7
<?php
echo "<table>";
foreach($_SERVER as $k=>$v){
  echo "<tr><td>".$k."</td><td>".$v."</td></tr>\n";
}
echo "</table>";
?>

Output dello script:

SERVER_SOFTWARE : ……….
REQUEST_URI : ………./06
TEMP : ……….58/tmp
TMPDIR : ……….58/tmp
TMP : ……….58/tmp
USER : ……….
HOME : ……….58
FCGI_ROLE : ……….
REDIRECT_REDIRECT_UNIQUE_ID : ……….IAAG-Bmc0AAAAy
REDIRECT_REDIRECT_STATUS : ……….
REDIRECT_UNIQUE_ID : ……….IAAG-Bmc0AAAAy
REDIRECT_HANDLER : ……….
REDIRECT_STATUS : ……….
UNIQUE_ID : ……….IAAG-Bmc0AAAAy
HTTP_HOST : ……….ucci.it
HTTP_ACCEPT_ENCODING : ……….ip, deflate
HTTP_USER_AGENT : ……….(http://commoncrawl.
HTTP_ACCEPT : ……….application/xhtml+xm
HTTP_IF_MODIFIED_SINCE : ……….l 2017 08:32:51 GMT
PATH : ………./sbin:/usr/local/bin
SERVER_SIGNATURE : ……….
SERVER_NAME : ……….ucci.it
SERVER_ADDR : ……….2
SERVER_PORT : ……….
REMOTE_ADDR : ……….8
DOCUMENT_ROOT : ……….58/domains/chiappucc
REQUEST_SCHEME : ……….
CONTEXT_PREFIX : ……….p
CONTEXT_DOCUMENT_ROOT : ……….58/php-fpm
SERVER_ADMIN : ……….chiappucci.it
SCRIPT_FILENAME : ……….58/domains/chiappucc
REMOTE_PORT : ……….
REDIRECT_URL : ……….x.php
GATEWAY_INTERFACE : ……….
SERVER_PROTOCOL : ……….
REQUEST_METHOD : ……….
QUERY_STRING : ……….
SCRIPT_NAME : ……….x.php
ORIG_SCRIPT_FILENAME : ……….58/php-fpm
ORIG_PATH_INFO : ……….x.php
ORIG_PATH_TRANSLATED : ……….58/domains/chiappucc
ORIG_SCRIPT_NAME : ……….p
PHP_SELF : ……….x.php
REQUEST_TIME_FLOAT : ………..0718
REQUEST_TIME : ……….

Written by Guido

giugno 9th, 2008 at 6:31 pm

Posted in PHP

Tagged with , , ,

PHP: hello world!

without comments

E luce fu…

1
2
3
<?php
echo "Hello World!";
?>

Output dello script:

Hello World!

Written by Guido

giugno 9th, 2008 at 6:07 pm

Posted in PHP

Tagged with

Noi… Come eravamo!

without comments

Noi…
Noi che la penitenza era ‘dire fare baciare lettera testamento’.
Noi che ci sentivamo ricchi se avevamo ‘Parco Della Vittoria e Viale Dei ‘Giardini’.
Noi che i pattini avevano 4 ruote e si allungavano quando il piede cresceva.
Noi che chi lasciava la scia più lunga nella frenata con la bici era il più figo.
Noi che il Ciao si accendeva pedalando.
Noi che suonavamo al campanello per chiedere se c’era l’amico in casa.
Noi che dopo la prima partita c’era la rivincita, e poi la bella, e poi la bella della bella.
Noi che giocavamo a ‘Indovina Chi?’ e conoscevamo tutti i personaggi a memoria.
Noi che giocavamo a Forza 4.
Noi che giocavamo a nomi, cose, animali, città..e la città con la D era sempre Domodossola.
Noi che ci mancavano sempre quattro figurine per finire l’album Panini.
Noi che avevamo il ‘nascondiglio segreto’ con il ‘passaggio segreto’.
Noi che ci divertivamo anche facendo ‘Strega comanda color.’.
Noi che giocavamo a ‘Merda’ con le carte.
Noi che le cassette se le mangiava il mangianastri, e ci toccava riavvolgere il nastro con la bic.
Noi che avevamo i cartoni animati belli!!
Noi che litigavamo su chi fosse più forte tra Goldrake,Mazinga,Daitan3,Gundam,Astro-Robot e Daltanious.
Noi che ‘Si ma Julian Ross se solo non fosse malato di cuore sarebbe piu forte di Holly E Mark Lenders…’
Noi che guardavamo ‘La Casa Nella Prateria’ anche se metteva tristezza.
Noi che le barzellette erano Pierino, il fantasmaformaggino o un francese, un tedesco e un italiano
Noi che ci emozionavamo per un bacio su una guancia.
Noi che si andava in cabina a telefonare.
Noi che c’era la Polaroid e aspettavi che si vedesse la foto.
Noi che non era Natale se alla tv non vedevamo la pubblicità della Coca Cola con l’albero.
Noi che se guardavamo tutto il film delle 20:30 eravamo andati a dormire tardissimo.
Noi che suonavamo ai campanelli e poi scappavamo.
Noi che ci sbucciavamo il ginocchio, ci mettevamo il mercuro cromo, e Più era rosso più eri figo
Noi che nelle foto delle gite facevamo le corna e eravamo sempre sorridenti.
Noi che quando a scuola c’era l’ora di ginnastica partivamo da casa in tuta.
Noi che a scuola ci andavamo da soli, e tornavamo da soli.
Noi che se a scuola la maestra ti dava un ceffone, la mamma te ne dava 2.
Noi che se a scuola la maestra ti metteva una nota sul diario, a casa era il terrore.
Noi che le ricerche le facevamo in biblioteca, mica su Google.
Noi che il ‘Disastro di Cernobyl’ vuol dire che non potevamo bere il latte alla mattina.
Noi che si poteva star fuori in bici il pomeriggio.
Noi che se andavi in strada non era così pericoloso.
Noi che però sapevamo che erano le 4 perché stava per iniziare BIM BUM BAM.
Noi che sapevamo che ormai era pronta la cena perché c’era Happy Days.
Noi che il primo novembre era ‘Tutti i santi’, mica Halloween.
Noi che a scuola con lo zaino Invicta e la Smemoranda
Noi che se la notte ti svegliavi e accendevi la tv vedevi il segnale di interruzione delle trasmissioni con quel umore fastidioso
Noi che abbiamo avuto le tute lucide che facevano troppo figo
Noi che all’oratorio le caramelle costavano 50 lire
Noi che si suonava la pianola Bontempi
Noi che la Ferrari era Alboreto, la Mc Laren Prost, laWilliams Mansell,la Lotus Senna e Piquet e la Benetton Nannini e la Tyrrel a 6 ruote!!!!!
Noi che la merenda era la girella e il Billy all’arancia
Noi che le macchine avevano la targa nera..i numeri bianchi..e la sigla della provincia in arancione!!
Noi che guardavamo allucinati il futuro nel Drive In con i paninari
Noi che il Twix si chiamava Raider e faceva competizione al Mars
Noi che abbiamo passato belle serate in bagno dopo Colpo Grosso (per gli ometti!!!)
Noi che giocavamo col Super Tele
Noi che il tango costava ancora 5 mila lire e.. ‘stai sicuro che questo non vola…’
Noi che le All Star le compravi al mercato a 10.000 lire e c’erano le Nike Legend e le Clarck azzurre.
Noi che tiravamo le manine appiccicose delle patatine sui capelli delle femmine
Noi che abbiamo a vuto tutti il bomber blu/verde con l’interno arancione e i miniciccioli nel taschino.
Noi che se eri bocciato in 3° media potevi arrivare con il Fifty o il Cobra truccato ed eri un figo della Madonna!!!

NOI CHE SIAMO ANCORA QUI E CERTE COSE LE ABBIAMO DIMENTICATE E SORRIDIAMO QUANDO CE LE RICORDIAMO
NOI CHE SIAMO STATI QUESTE COSE E GLI ALTRI NON SANNO COSA SI SONO PERSI!!!

Written by Guido

giugno 5th, 2008 at 6:57 pm

Posted in Relax

Tagged with