martedì 10 ottobre 2017

Leggi il post

Come verificare la validità di una data in PHP

Il linguaggio di programmazione per il web di nome php ha ovviamente un suo bello e vasto repertorio di funzioni per la gestione delle date.
Tra queste funzioni ce n'è una in particolare che risolve le esigenze della maggior parte degli sviluppatori, ovvero quella funzione che consente di verificare la validità di una data.

Mettiamo ad esempio che abbiamo in una variabile una data, magari una data acquisita tramite una pagina web, tramite dunque il classico form dove l'utente inserisce a mano i dati.
Se non ci sono controlli javascript, o se questo è disabilitato, potenzialmente il compilatore potrebbe inserire qualsiasi cosa nel campo riservato alla data, magari facendo andare in errore la pagina.
Vediamo dunque come risolvere la cosa con il php.


Come verificare la validità di una data in PHP


Senza troppi indugi, la funzione che consente di validare una data in php è la famosa checkdate.
Ecco la sintassi da utilizzare per questa funzione:

checkdate ($mese, $giorno, $anno)

Grazie a questo controllo php infatti, è possibile verificare la correttezza del formato della data, passando alla funzione checkdate direttamente i 3 parametri attesi, nel seguente ordine: mese, giorno, anno.
Se ad esempio si passerà un mese di 32 giorni, la funzione restituirà il valore false, e quindi il controllo risulterà negativo.

Ecco un esempio di controllo applicabile:

if(!checkdate(5,32,2018)) echo "Formato data errato";

Il risultato del controllo validità data php sarà un bel picche, dato che non esiste il giorno 32 :)
Fine breve tutorial sui controlli delle date in php.

lunedì 9 ottobre 2017

Leggi il post

Come validare email in PHP

Sono passati molti anni da quando si potevano validare email in php utilizzando le potentissime espressioni regolari.
Le regex php erano e sono infatti, uno strumento molto potente per validare le stringhe, uno strumento che può essere utilizzato in molti ambiti ed in molti modi.

Con l'avvento del php 5 però, e più precisamente dalla 5.20 in sù, è entrata in vigore una nuova potentissima funzionalità, una funzione che semplifica ulteriormente i controlli sulle email in php.
Vediamo subito come utilizzare questo "nuovo" strumento.


Come validare email in PHP


Per poter verificare la correttezza di un indirizzo email utilizzando il php, è possibile utilizzare la funzione filter_var.
Grazie a questo strumento infatti, è possibile validare email senza dover scrivere alcuna regola con le "espressioni regolari", ma semplicemente utilizzando una costante definita a sistema.

Ecco la sintassi da utilizzare per il controllo email php:

filter_var($email, FILTER_VALIDATE_EMAIL)

La costante da passare alla filter_var per poter ottenere la validazione di un indirizzo di posta elettronica, è la FILTER_VALIDATE_EMAIL, un valore che si spiega da solo.

Quindi, volendo creare una funzione per il controllo email in php, ecco cosa si potrebbe scrivere:
<?
function controlla_email($email)

{
    return filter_var($email, FILTER_VALIDATE_EMAIL);
}

?>

Che potrebbe essere usata con un controllo del genere:
<?
if(controlla_email("xx@yy.it")) echo "Email corretta";
else echo "Email sbagliata"

?>

Grazie a questa veloce e potente funzione, ora è possibile validare indirizzi email in maniera rapida ed efficace, nativamente tramite php.
Sono finiti i tempi in cui si prendeva per buono quanto scritto da altri in complicatissime espressioni regolari... scherzo :p
Leggi il post

Ricavare giorno / mese da una data variabile (PHP)

L'altro giorno vi avevo spiegato come ricavare l'ora corrente in php, grazie alla funzione date();
Oggi invece vi spiegherò come fare più o meno lo stesso, ma ottenendo il giorno, mese, l'ora o l'anno, da una variabile passata dal php, e quindi non semplicemente l'ora corrente del server.

Infatti, per ricavare il giorno da una data variabile php è necessario un piccolo accorgimento che vi spiegherò a breve.
Il tutto è ovviamente easy, se si sa come fare.


Come ricavare il giorno / mese da una data contenuta in una variabile in PHP


Per ottenere il mese avendo la data salvata in una variabile php, o qualsiasi altro parametro desiderato (giorno, anno, ora, minuti, ecc...), occorre usare la seguente sintassi:

<?php
    $data="2018-05-25";
    $mese=date("m",strtotime($data));
?>

La funzione chiave da utilizzare è infatti la strtotime(), che converte la data, passata in formato inglese, in un unix timestamp, ovvero il formato digerito dalla funzione date() per poter estrapolare solo il mese dalla data passata tramite variabile php.

Ecco un altro esempio per estrarre il giorno da una data in php:

<?php
    $data="2018-02-20";
    $giorno=date("d",strtotime($data));
?>


Ovviamente è possibile passare a queste funzioni anche ora, minuti e secondi, basta seguire il formato inglese anno, mese, giorno.
Ecco quindi un esempio su come ricavare l'ora da una data variabile php, ecco come fare.

<?php
    $data="2019-02-20 14:50:02";
    $ora=date("H",strtotime($data));
?>


E con le date php per oggi è tutto :)

domenica 8 ottobre 2017

Leggi il post

Barzelletta sui Mammoth

Una simpatica barzelletta su un Mammoth secolare:

Un custode guida un gruppo di turisti per le vaste sale di un museo di storia naturale, giunto davanti ad un enorme scheletro esclama:
- Ed ecco qui davanti a voi lo scheletro di un Mammoth che ha addirittura 15.008 anni.
Un turista allora, chiede incuriosito:
- Ma come fa a sapere con un esattezza l'età del Mammoth?

Ed il guardiano risponde con fare sicuro:
- E' molto semplice, otto anni fa, quando sono stato assunto in questo museo come custode, mi hanno detto che aveva 15.000 anni!

sabato 7 ottobre 2017

Ottenere i nomi colonne delle tabelle mysql

Prendiamo ad esempio che vogliate creare delle tabelle dinamicamente con il vostro prode mysql, magari partendo da una tabella con una struttura da utilizzare come base, come potreste mai fare?
Quello che vi serve di sicuro conoscere per questo esercizio, sono i nomi delle colonne di tabella, in modo da sapere come si chiamano i vari campi, e che attributi hanno.

In questo breve articolo vi spiegherò dunque quale sintassi sql utilizzare per poter ottenere la struttura di una tabella mysql, in modo tale da poterne fare quello che vi pare.


Come ottenere i nomi delle colonne delle tabelle Mysql


La sintassi mysql da utilizzare per ricavare la struttura di una tabella, è la seguente:

SHOW COLUMNS FROM tabella

Lanciando questa semplice query infatti, si otterranno a video le seguenti colonne:
  • Field: il nome del campo
  • Type: il tipo del campo (es. varchar)
  • Null: se il dato accetta i valori nulli
  • Key: il tipo di chiave utilizzata
  • Default: il valore di default
  • Extra: es l'attributo auto_increment

A questa sintassi è ovviamente possibile passare dei parametri, tramite il comando WHERE, in modo tale da ottenere ad esempio solo i campi (field) che si chiamano in un certo modo, o di un certo tipo (type).

Tornando all'esempio citato ad inizio post, se volessimo creare dinamicamente una tabella mysql, magari facendo scegliere all'utente solo determinati campi dalla lista, potremmo anche giocarcela inserendo un valore nei commenti dei campi.
Se ad esempio decidiamo di inserire nei campi da non mostrare, il commento nonmostrare, potremmo mostrare solo i nomi dei campi di una tabella mysql che non hanno quel commento.

Ad un osservatore attento a questo punto non sarà sfuggita una cosa: con la sintassi spiegata poco sopra la query non riporta i commenti (comments) ed altri parametri della struttura della tabella.
Per mostrare tutte le colonne di una tabella mysql, anche quelle nascoste, occorre aggiungere il comando FULL.
Ecco come verrebbe la query che mostra anche i commenti presenti nelle colonne della tabella mysql:

SHOW FULL COLUMNS FROM tabella

Ottenere i nomi colonne delle tabelle mysql

Bene, ora sapete come ottenere i nomi di tutte le colonne presenti in una tabella mysql, anche quelli normalmente nascosti.
Ciclando queste informazioni vi sarà possibile farci un po' quello che vi pare, anche ricreare una tabella mysql partendo da un'altra che fa da stampo, il tutto senza conoscerne a priori i nomi ed i tipi di campi utilizzati.

Oppure, un'altra possibile applicazione che mi viene in mente che è possibile fare con questa "show columus", è quella di esportare dinamicamente il contenuto di una tabella in formato csv.
Se infatti la desiderata è quella di creare un csv che abbia in testata il nome di colonna di ogni campo che poi verrà esportato, ecco che questa sintassi fa proprio al caso nostro.
Leggi il post

Barzellette sui nomi

Qualche barzelletta / freddurra della categoria Nomi:

Come si chiama il Santo protettore dei sadici?
San Guinario


Come si chiama la seconda più grande prostituta americana?
JULY SLIP


Come si chiama il più forte pugile scozzese?
TYROMP O'COOL


Come si chiama il più frequentato barbiere giapponese?
AKAPA TORASATO


Come si chiama il più brutto figlio italiano?
OSCAR RAFONE

venerdì 6 ottobre 2017

Waist Deep - Strade dannate

Waist Deep - Strade dannate è un film azione del 2006 diretto da Vondie Curtis-Hall, con Tyrese Gibson, Meagan Good, Larenz Tate, Kimora Lee Simmons, The Game.

Waist Deep - Strade dannate

Trama

O2 è un ex carcerato che sta cercando di rigare dritto per poter stare con il proprio figlio.
Libero con la condizionale, O2 finisce per mettersi nei guai quando dei malviventi rubano la sua auto con a bordo suo figlio.
Il furto d'auto si trasforma subito in rapimento e ricatto, così O2 decide di mettersi in azione per trovare i soldi per salvere suo figlio, aiutato suo malgrado dalla bellissima Coco.


Recensione

Waist Deep - Strade dannate è il classico film d'azione americano, un film del 2006 con il famoso attore di colore Tyrese Gibson.
Trama semplice e già strausata al cinema: il classico rapimento con riscatto, dove il padre di turno deve fare la consueta corsa contro il tempo per cercare di salvare il proprio figlio.
Cos'altro abbiamo di tipico in questo film d'azione? A giusto, la gnocca di turno, interpretata dalla bellissima Meagan Good.
Concludendo, "Waist Deep - Strade dannate" è il classico film d'azione con la trama un po' tirata ed il finale a dir poco scontato.

giovedì 5 ottobre 2017

Leggi il post

Che ore sono in PHP

Post veloce veloce che spiega come ottenere l'ora corrente in php.
La funzione che andrò a spiegare è infatti una delle più basiche ed utili di questo linguaggio di programmazione per il web, quindi è una nozione indispensabile da sapere se si sceglie il php come linguaggio di sviluppo.


Che ore sono in PHP


Per sapere "che ore sono" con il php, basta avvalersi di una delle più famose funzioni esistenti, la famigerata date();

Grazie a questa funzione infatti, è possibile ricavare l'ora corrente, con una semplice riga di codice:

echo date("h:i");

Con questa semplice stringa di codice php infatti, è possibile stampare a video l'ora ed i minuti correnti.
I parametri che la funzione date riconosce sono diversi, ma nello specifico di questo esempio a noi interessano al massimo solo 2 o 3 parametri, ovvero: h, i, s, che ovviamente stanno per ore, minuti e secondi.

Utilizzando inoltre le maiuscole o le minuscole nell'ora, è possibile variare il formato dell'orario stampato a video.
H al posto di h infatti, mostra le ore 15 al posto delle 3.

Se tutto ciò che ho appena ho scritto è chiaro, che cosa stamperà mai a video la seguente sintassi php:
echo date("H:i:s");
???
Facile vero? :)

Contare numero totale record in query con Limit in mysql

Una necessità che potrebbe insorgere quando si sviluppa un'applicazione che mostra a video solo un numero limitato di risultati (usando la paginazione), è quella ottenere lo stesso il numero totale di record nella query con limit.
Se infatti si usa la sintassi mysql limit e poi si contano i record estratti utilizzando la classica sintassi num_rows, il risultato ottenuto sarà legato al limite impostato nella query.

Ecco dunque che sql ci viene in contro con un'apposita sintassi che risolve questo annoso problema.


Come contare il numero totale di record in una query che usa Limit in mysql


La sintassi mysql da utilizzare per ottenere a video solo un numero limitato di risultati da una query, ma allo stesso tempo sapere anche quanti sono i record totali della query senza limit, è la seguente:

SELECT SQL_CALC_FOUND_ROWS * FROM tabella LIMIT n;
SELECT FOUND_ROWS();


Grazie infatti alla funzione SQL_CALC_FOUND_ROWS, si predispone la query al conteggio totale dei record nonostante la presenza del limit, ed i dati vengono poi pescati dalla funzione FOUND_ROWS().

Il risultato ottenuto sarà il totale dei record presenti nella tabella, pescati con la query originale, senza però tener presente del limit.

totale record in query con Limit in mysql

Questa sintassi SELECT FOUND_ROWS abbinata al FOUND_ROWS funziona perfettamente dalla console di sql, se però la lanciate dal phpmyadmin, vi restituirà come risultato 1, che è il numero delle righe interessate e non il conteggio richiesto.
Questo perchè probabilmente phpmyadmin considera le due query come scollegate, mentre la console mysql no.

mercoledì 4 ottobre 2017

Leggi il post

Ciclo FOR in PHP

Come ogni linguaggio di programmazione che si rispetti, web e non, anche il php ha ovviamente le sue istruzioni per eseguire i cicli.
Un cliclo infatti, consente di eseguire più volte un gruppo di istruzioni in esso contenute, senza dover riscrivere il codice più volte.

Vediamo nel dettaglio come funziona il ciclo for php, uno dei più comuni ed usati durante la programmazione delle pagine web.


Come usare il ciclo FOR in PHP


La sintassi php da utilizzare per utilizzare il ciclo for è la seguente:

<?
    for ($i=1; $i<=5; $i++)
    {
        echo "$i<br/>\n";
    }
?>


Per usare un ciclo for infatti, bisogna inizializzare una variabile, bisogna mettere la condizione d'uscita dal ciclo, ed infine incrementare questa variabile ad ogni giro del ciclo, in modo da evitare di creare un loop infinito.


Come uscire da un ciclo FOR php


Per poter interrompere un ciclo for immediatamente, senza che questi abbia raggiunto la condizione dichiarata ad inizio ciclo, è sufficiente utilizzare l'istruzione break;

Ecco un esempio di sintassi per forzare l'uscita da un ciclo:

<?
    for ($i=1; $i<=5; $i++)
    {
        echo "$i<br/>\n";
        if($i==2) break;
    }
?>


Tramite l'istruzione break utilizzata nell'esempio infatti, il ciclo viene interrotto dopo il secondo giro, al posto che al quinto, come specificato ad inizio istruzione.