Guide / tutorial per php. Guida per imparare a programmare in PHP, il miglior linguaggio di programmazione per siti web semplici ma anche complessi.
Visualizzazione post con etichetta php+guide. Mostra tutti i post
Visualizzazione post con etichetta php+guide. Mostra tutti i post

venerdì 13 ottobre 2017

Leggi il post

IF corta in php (short syntax)

La lezione di oggi sul php riguarda le istruzioni condizionali, e più precisamente il comando if.
Tradotte in italiano if, then, else significano se, allora, altrimenti, e sono istruzioni che consentono di scrivere del codice che fa delle verifiche sul verificarsi di alcune condizioni.

Ma vediamo subito di spiegare meglio con un esempio come funzionano le istruzioni condizionali, e poi vediamo la sintassi corta della if php (operatore ternario).

Se ad esempio dobbiamo scrivere una condizione del tipo "se variabile=1 allora fai questo, altrimenti fai quello", ecco cosa si dovrebbe scrivere:
<?php
$var=2;
 if($var==2) echo "la variabile è 2";
else echo "la variabile non è 2";
?>

Questa se vogliamo, è già una sintassi breve del comando if php, perchè nel caso le istruzioni da eseguire fossero state più di una, ecco cosa avremmo dovuto scrivere.
<?php
$var=1;
 if($var==2) 
{
    echo "la variabile è 2";
    $var=$var+1;
    echo ", ma ora è $var";
}
else 
{
    echo "la variabile non è 2";
   $var=2;
   echo ", ma ora è $var";
}
?>


Come usare la sintassi IF corta in php (short syntax)


Veniamo dunque al tema principale di questo post, la if short syntax.
Ecco cosa si può scrivere nei casi a seguito del controllo di una condizione se,allora,altrimenti, si voglia valorizzare una sola variabile con uno o con un altro valore:

$risultato=($variabile=="2"?"OK":"NO");

Quanto scritto sopra praticamente significa che, se la variabile usata come controllo è uguale a 2, allora si valorizza il valore della variabile risultato a OK, altrimenti si valorizza a NO.
Essendo poi 2 un valore numerico, avrei potuto anche scriverlo senza virgolette, che invece vengono usate quando si passa una stringa come parametro di controllo.

E con la if corta php è tutto, spero di esser stato sufficientemente chiaro :)
Grazie a questa sintassi breve sarà dunque possibile, alla lunga, risparmiare righe di codice.
Forse a video è un po' meno leggibile e chiara come sintassi, ma dopo un po' che la utilizzerete ci prenderete subito la mano, e non potrete più farne a meno :p

PS se si vuole conoscere la sintassi alternativa switch case, leggere questo post.

giovedì 12 ottobre 2017

Leggi il post

Verificare esistenza file con PHP

Micro post su come fare per verificare l'esistenza di un file con il php, in modo tale da poter creare degli script a prova di bomba.

Se ad esempio abbiamo caricato un file in una directory del nostro sito, prima di compiere qualsiasi operazione futura su di esso, è bene verificare se il file in questione esiste ancora, tramite una comoda, semplice, ed intuitiva funzione php.

Vediamo subito come fare.


Come verificare l'esistenza di file con il PHP


Per poter controllare se un file esiste o meno utilizzando il sacro php, basta utilizzare questa comoda funzione:

file_exists("file.estensione");

La funzione file_exists infatti, riporterà come risultato, il classico vero o falso, valore che potrà poi essere usato in un'istruzione condizionale.

Ovviamente, bisogna indicare l'esatto percorso del file da controllare, utilizzando eventuali sintassi dos per spostarsi di cartella (es. ../../cartella/file.txt);
Se infatti si sbaglia ad indicare la giusta locazione del file sul server, la funzione risulterà falsa anche se in realtà il file esiste... in un altra cartella però :)

E' tutto, verificare se un file esiste in php con la potentissima funzione file_exists, è importante per prevenire fastidiosi errori a video, cosa che l'utilizzatore medio del vostro sito internet potrebbe non gradire.

PS se volete invece sapere se vi trovate davanti ad un file o ad una directory, leggete quest'altro post.
Leggi il post

Funzione codice random php

Ti piacerebbe avere una bella funzione php per la creazione di un codice random di lunghezza variabile?
Nello specifico sto parlando di una funzione che è in grado di creare un codice alfanumerico casuale di lunghezza prestabilita, un codice che poi è possibile usare in diversi ambiti, ad esempio anche come secure code da spedire via email.

Con il php è ovviamente possibile fare questo ed altro, vediamo dunque come.

Come creare una funzione genera codice ramdom in php


Per poter generare dei codici alfanumerici random in php ci sono diversi modi, questo che ti propongo è uno fatto in casa.
Con questa funzione infatti, passando solo un parametro, corrispondente alla lunghezza desiderata del codice da generare, sarà possibile ottenere come risultato un codice composto da cifre e lettere.

Ecco la funzione da utilizzare, e come richiamarla:

<?php
function codicerandom($lunghezza)
{
    $codice="";
    for($i=1;$i<=$lunghezza;$i++)
    {  
        $lon=rand(1,2);
        if($lon==1)
        {
            $codice.=rand(0,9);
        }
        else
        {
            $lettera=chr(64+rand(1,26));
            $mom=rand(1,2);
            if($mom==1) $lettera=strtolower($lettera);
            $codice.=$lettera;
        }
    }
    return $codice;
}
 

echo codicerandom(20);
?>

Con questo semplice script php, potrai generare un codice random, utilizzando la funzione random, la funzione chr e la funzione strtolower, abbinate insieme per poter determinare il tipo di carattere che singolarmente uno dopo l'altro serve ad ottenere il risultato finale.

Nell'esempio specifico quindi, è stato possibile ottenere una stringa casuale di 20 numeri e lettere, maiuscole e minuscole.

Come dicevo poco sopra comunque, questo è solo un modo per poter generare codici random in php, probabilmente c'è anche di meglio in giro, ma diciamo che questo script fa quello che dice.
Buon coding!

martedì 10 ottobre 2017

Leggi il post

Lettera random in PHP

La desiderata del giorno è quella di estrarre una lettera casuale con il php.
I motivi per voler compiere questa operazione possono essere molteplici, e non sono certo argomento di questo post, quindi veniamo subito al dunque.


Come estrarre una lettera random in php


Per poter compiere questa semplice operazione, bisogna utilizzare una funzione che ho già spiegato in passato, la famosa random.

L'altra funzione necessaria per l'estrazione di una lettera casuale in php è la chr, ovvero quella funzione che consente di tradurre i numeri in lettere.
O per meglio dire, ad ogni lettera o carattere, corrisponde un numero, che se passato alla chr, viene tradotto a video nel corrispondente formato.

Vediamo subito un esempio pratico di come ottenere una lettere dell'alfabeto random in php:

echo chr(64+rand(1,26));

Ed ecco che, passando un numero che va da 1 a 26, alla funzione chr preimpostata con 64 di partenza, si ottiene una lettera dell'alfabeto casuale.

Ad un osservatore attento però, non sarà sfuggito il fatto che le suddette lettere/caratteri sono tutte in maiuscolo (uppercase).
Nessun problema ovviamente, basta trasformarle in minuscole con l'apposita funzione, come spiegato in questo post.
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 :)

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.

lunedì 28 agosto 2017

Leggi il post

Definire costanti in PHP

Oltre alle variabili ovviamente, esistono anche le costanti php, come in ogni altro linguaggio di programmazione che si rispetti.
La differenza sostanziale rispetto alle variabili è che, come suggerisce il nome, di norma le costanti sono usate per settare tutti quei valori che non cambiano nel tempo.
Si può dunque salvare in una costante la stringa di connessione ad un database, o qualsiasi altro valore che possa tornare utile avere memorizzato nel codice php.

Bene, vediamo ora come utilizzare le php costants.


Come definire e richiamare le costanti in PHP


Ecco la sintassi da utilizzare per definire una costante php:

define("nome-costante","valore-costante");

Con la funzione php Define infatti, avremo definito la nostra costante, sia come nome che come valore assegnato.

Per richiamare una costante php, e riottenere così il contenuto memorizzato dentro di lei, utilizzare invece la seguente sintassi:

echo nome-costante;

Come salta subito ben all'occhio, le costanti php non hanno il classico simbolo del dollaro $ davanti, come per le variabili.
Questo forse per diversificarle da quest'ultime.
Inoltre, salvo diversamente specificato, le costanti sono case sensitive, ovvero vanno richiamate scrivendole esattamente con il nome con cui sono state definite (maiuscole e minuscole esatte).

Se invece si vuole avere una costante case insensitive, basta aggiungere true dopo averne settato il valore:

define("nome-costante","valore-costante",true);

Le costanti possono essere usate ad esempio, anche per evitare di includere più volte la stessa libreria, o per meglio dire, per evitare di far eseguire due volte lo stesso codice.
Ad esempio in questi casi, io controllo se una costante è stata definita, e solo in caso contrario, la definisco ed includo quello che devo includere.
Come sapere se una costante è definita? Semplice, con questa sintassi:

if (!defined('nome-costante')) {//definisco costante ed eseguo il codice}

Nel caso specifico, il punto esclamativo da vanti vuol dire "non", ovvero "se la costante non è definita, allora...".
E con le costanti php direi che è proprio tutto.

sabato 20 maggio 2017

Leggi il post

PHP: consentire esecuzione codice con tag breve

Oggi mi sono ritrovato a dover rimettere mano a delle pagine php sviluppate secoli fa, però su una nuova installazione del php sul mio pc windows (tramite il sacro wamp).
A parte a dover risistemare del codice ormai obsoleto, mi sono ritrovato subito davanti ad un birrazzo comportamento del browser, o per meglio dire del php stesso.
A video infatti, non veniva eseguito il codice php contenuto nella pagina, ma veniva proprio mostrato a video (in poche parole " il tag corto <? stampa/mostra codice php a video e non lo egegue più").

Dopo aver cercarto un attimo in rete, ho capito il perchè di questo comportamento, e risolvere la problematica è stato semplicissimo.
Ed eccomi dunque a scrivere l'ennesimo post guida tutorial :)


Come consentire l'esecuzione di codice php con tag breve


Come si evince dal titolo scelto per questo post, il succo della questione è proprio quello di far eseguire codice php contenuto nei tag brevi.

Ma che cos'è un "tag breve" in php?
Be', se come me rimetti mano a questo linguaggio di programmazione dopo secoli, per aprire un comando per stampare a video un messaggio, ti verrà naturale scrivere così:

<?
echo "ciao";
?>

Ecco, scrivere <? significa in realtà utilizzare un tag breve, o per meglio dire, un tag d'apertura breve in php (short open tag).

La sintassi completa e giusta per aprire un tag php, invece sarebbe:

<?php
echo "ciao";
?>

Aprendo infatti con il tag completo <?php, a video non si riceveranno più errori/warning o codice stampato a video.

Ora la domanda sorge spontanea: ma è possibile continuare ad utilizzare il tag d'apertura breve senza dover modificare decine e decine di pagine di codice?
La risposta è SI, per fortuna :)

Per poter abilitare i tab brevi in php, basta andare come sempre a modificare il php.ini.
Bisognerà infatti trovare la seguente riga di codice:
short_open_tag = Off
e sostituirla ovviamente con:
short_open_tag = On

Così facendo, dopo un riavvio (con wamp basta un restart all services), sarà possibile utilizzare i tag d'avvio brevi nelle pagine php, e tutti gli script già creati con quella sintassi, torneranno magicamente a funzionare.

Trovi la videoguida di quanto appena spiegato, a questo indirizzo:
https://youtu.be/-fFxYRUfKvQ

Buon coding!

giovedì 13 aprile 2017

Leggi il post

Connessione openldap con PHP

Tramite il linguaggio di programmazione php è possibile collegarsi ad un database utenti che usa il protocollo openldap.
Questo tipo di connessione consente infatti di fare dei semplici controlli per una login d'accesso, nel caso in cui il database utenti sia presente su un db open ldap.

Nell'esempio che andrò a riportare, sarà mostrato come effettuare il controllo, tramite php, del match username e password, in modo da verificare se un utente ha inserito le corrette credenziali d'accesso ad un sito con area riservata.


Come fare la connessione ad openldap con il PHP


Per potersi collegare ad un database openldap tramite php, utilizzare il seguente script:

<?php
$userid=trim($_GET['u']);
$password=trim($_GET['p']);
$ad = ldap_connect('ldap://$SERVER') or die("Errore, impossibile connettersi al server LDAP");
ldap_set_option($ad, LDAP_OPT_PROTOCOL_VERSION, 3) or die("Errore versione LDAP");
ldap_set_option($ad, LDAP_OPT_REFERRALS, 0) or die("Errore riferimenti LDAP");
$bd = ldap_bind($ad, 'uid='.$userid.',ou=people,dc=$NOMESERVER,dc=it', $password) or die("Errore, username o password errate");
?>


Lo script di connessione è molto semplice ed intuitivo, tuttavia vanno fatte alcune doverose precisazioni.

$userid e $password sono ovviamente due variabili php che potete valorizzare come meglio credete (nel mio esempio le passo tramite url a mano), anche tramite la costruzione di una apposita form di login ldap.

Poi c'è la variabile $SERVER, che di solito si valorizza con l'ip della macchina che ospita l'ldap.

Infine, la funzione di verifica credenziali ldap_bind, è composta dalla tipica stringa di connessione ldap, che ovviamente varia a seconda di come è stato strutturato il vostro database ldap.
Dove ad uid (o cn in alcuni casi) si associa la username d'accesso, poi ci potrebbe essere l'ou (nel mio esempio il gruppo people), ed i dc che compongono le varie parti del nome del server (es. nomedominio.it).

Lo script è testato e funzionante, ma se dovesse riportarvi che da errore di user e password, prima di scerverlarvi di verificare 1000 volte le vostre credenziali d'accesso, verificato di aver scritto correttamente i vari dc, perchè basta la minima imprecisione ed il tutto non funziona.
Io ad esempio, avevo usato cn per la username, al posto di uid, e non mi funzionava niente... e ci ho perso molto tempo prima di risolvere il problema!

Bene, ora che l'autenticazione openldap php non ha più segreti per voi, potrete creare dei siti web con area riservata, il cui baciono di utenti accinge direttamente da un database ldap, magari condiviso con altri siti o applicazioni web.

sabato 18 febbraio 2017

Leggi il post

Differenza date PHP (quanti giorni mancano ad una data)

Oggi volevo calcolare quanti giorni mancano ad una determinata data, e mi sono messo lì a fare i calcoli a mente.
Se però la data è abbastanza in là nel tempo, la cosa potrebbe non risultare poi così rapida e semplice, soprattutto senza un calendario alla mano.

Ecco dunque che ci viene in contro il php, con la sua bella funzione diff, che come suggerisce il nome stesso, ci consente di fare la differenza tra due date, e nel nostro caso specifico quindi, di calcolare la differenza in giorni.


Differenza date PHP (Diff)


Per calcolare quanti giorni mancano ad una data, usare la funzione Diff del php, come nel seguente esempio:

<?php
$dStart = new DateTime('2017-02-18');
$dEnd  = new DateTime('2017-04-15');
$dDiff = $dStart->diff($dEnd);
echo $dDiff->days;
?>


Nel codice sopra indicato, abbiamo creato due variabili di date (inizio e fine), da usare come range per fare la differenza date.
Usando poi la funzione diff, abbiamo fatto la differenza tra le due date, e l'abbiamo convertita in giorni (days) prima di stamparla a video.

Altri linguaggi di programmazione hanno la comoda funzione datediff che fa tutto in un colpo solo passandogli i parametri data iniziale, data finale, formato differenza (giorni, mesi, anni, ecc...).
Ma anche senza avere una php datediff, con la diff si può ottere praticamente lo stesso risultato.

lunedì 12 dicembre 2016

Leggi il post

Come criptare una password con il php (MD5)

Con gli infiniti poteri del linguaggio php è possibile anche criptare le password, in modo da renderle più sicure e meno intercettabili quando vengono salvate nei database.
Ci sono diversi modi per criptare una password con il php, uno dei più storici e sicuri è quello di usare l'algoritmo di criptazione chiamato MD5.


Come criptare una password con il php


Criptare una password con il php con la funzione MD5 è semplicissimo, basta chiamare la funzione stessa, passandogli la stringa da cifrare.
La sintassi da usare è la seguente:

md5("password-da-criptare");

Provate ad esempio a scrivere questa riga di codice:
echo md5("cipiriniello");

Vi restituirà a video una stringa cifrata del genere:
404e9730caa072bef472388ea941a7af

Se poi volete fare un controllo sulla cifratura, potete scrivere una cosa del genere:
if (md5("cipiriniello")=="404e9730caa072bef472388ea941a7af") echo "ok";
Ed a video dovreste ricevere la scritta ok.

Ovviamente, criptare una password prima di salvarla in un database è cosa buona e giusta, ma non può non mancare il buon senso a monte.
Se infatti i vostri utenti sceglieranno come password il nome del loro cane, per un hackerozzo non sarà poi così difficile scoprire i loro dati d'accesso.

mercoledì 9 novembre 2016

Come commentare in PHP

Il php, come qualsiasi altro linguaggio di programmazione, consente di inserire dei commenti nel codice, in modo da poter scrivere delle annotazioni utili al suo interno, oppure semplicemente per evitare di far eseguire delle determinate righe di codice.


Come commentare in PHP


Inserire un commento in php è molto semplice, e lo si può fare per commentare una singola riga di codice, oppure più righe di uno script contemporaneamente.

Commentare una riga di codice php
Ecco come fare:
<?php // echo "Questa frase non apparirà a video";?>

Commentare parti di codice php in un colpo solo
Ecco commentare più righe php in una volta sola:
<?php
/*
echo "Riga 1 nascosta<br/>";
echo "Riga 2 nascosta<br/>";
*/
?>


Qui di seguito la videoguida pratica:
https://youtu.be/5bxOlwU7J3k



I commenti in php sono quindi molto importanti sia per scrivere una descrizione al nostro codice, sia per non fare eseguire interi script, senza però cancellarli dai nostri file php.

venerdì 4 novembre 2016

Leggi il post

Estrazione numeri random con PHP

L'altro giorno l'ho fatto in python, oggi facciamo lo invece con il php, estraiamo dei numeri random per la lotteria :)
Estrarre un numero casuale con il php è una cosa molto semplice, vediamo come fare.


Estrazione numeri random con PHP


La funzione php di riferimento per ricavare dei numeri casuali si chiama rand().
Vediamo subito un esempio pratico di estrazione casuale di numeri interi col php:

echo rand(1,100);

Con questa semplice riga di codice, potremo generare un numero casuale con il php, che va da 1 a 100.
Ovviamente, sostituendo i parametri 1 e 100 (il range), potremo estrarre un numero con un intervallo diverso.

Vediamo ad esempio lo script php per estrarre i numeri del lotto:
for($i=1;$i<6;$i++) echo rand(1,90)." ";

Bene, adesso che siete maestri di estrazioni random con il php, non vi resta che diventare ricchi :p

venerdì 28 ottobre 2016

Leggi il post

Come fare un redirect con PHP

Il linguaggio di programmazione per il web chiamato php, tra le sue tante funzionalità, consente di fare dei redirect da una pagina php ad un'altra, reindirizzando il navigatore su di una nuova pagina web, presente sullo stesso sito internet di provenienza, o addirittura su di un altro sito web esterno.
Vediamo subito come si fa.


Come fare un redirect con PHP


Ecco il codice php da usare per fare una redirect tramite php:

<?php
header("Location: http://www.oggieunaltropost.it");
die("Attendere, prego");
?>


La funzione php header, con il parametro location valorizzato da un url o una pagina specifica, consente al php di forzare il reindirizzamento della pagina su di un sito esterno o su un indirizzo interno.
La funzione die invece, serve per bloccare tutto il codice che ci sarebbe dopo alla redirect, in modo da non caricare il resto della pagina, ed inoltre volendo può anche contenere un messaggio per l'utente (che probabilmente non leggerà mai perchè subito reindirizzato, ma in caso di rallentamenti potrebbe sempre tornare utile).

Questo codice possiamo posizionarlo dove vogliamo all'interno della nostra pagina php, ma se lo mettiamo come prima riga, prima delle intestazioni della pagina, è meglio :)

giovedì 27 ottobre 2016

Leggi il post

Come creare un'area riservata con il PHP (senza database)

In questo nuovo articolo vi spiegherò come metter su in pochi secondi un'area riservata per il vostro sito, usando il php e le sessioni, senza quindi aver bisogno di alcun database di supporto.

Questo semplice metodo, non sarà il massimo come sicurezza (salvare le password nel codice non è mai bello), ma è pratico e veloce... e soprattutto funziona :)


Come creare un'area riservata con il PHP senza usare il database


Per realizzare una semplice area riservata in php, ti bastano solo 3 file:
  • index.php
  • verifica.php
  • login.php

index.php è la pagina d'esempio, quella protetta da password.
verifica.php è lo script da includere in tutte le pagine che devono esser protette da password.
login.php... chettelodicoaffare (cit.).

Vediamo di analizzare il contenuto di ciascun file:

index.php

<?php include("verifica.php");?>
<html>
<head>
    <title>Area riservata</title>
</head>
<body>
Questo contenuto lo vedi solo da loggato!
<br />
<a href="login.php">Logout</a>
</body>
</html>


Nella prima riga c'è l'inclusione allo script php che fa il controllo che gli utenti possano accedere a questa pagina.
Il resto è semplice html, con l'aggiunta del tasto per fare il logout.


verifica.php

<?php
    session_start();
    if(trim($_SESSION["collegato"])!="si")
    {
        header("location: login.php");
        die("...Attendere, prego...");
    }
?>


Questo è il file php che verifica se l'utente ha attiva la sessione per poter navigare sul sito, in caso contrario si viene rispediti alla pagina di login.


login.php

<?php
    session_start();
    unset($_SESSION["collegato"]);
    $user=trim($_POST["username"]);
    $pwd=trim($_POST["password"]);
    $mex="";
    if($user!=""&&$pwd!="")
    {
        if ($user=="ciccio"&&$pwd=="bello")
        {
            $_SESSION["collegato"]="si";
            header("location: index.php");
            die("...Attendere, prego...");
        }
        else $mex="<br />Errore: Username o Password errate!<br /> <br />";
    }
?>
<html>
<head>
    <title>Area riservata</title>
</head>
<body>
<strong>Login</strong>
<br />
<?php if($mex!="") echo $mex;?>
<form method="post" action="login.php" enctype="multipart/form-data">
Username: <input type="Text" name="username" maxlength="20" size="10" />
<br />
Password: <input type="Password" name="password" maxlength="20" size="10" />
<br />
<input type="Submit" value="Entra" />
</form>
</body>
</html>


In questo esempio, la pagina di login fa anche da logout, in quanto quando un utente vi ci finisce, la session php viene azzerata.
Quindi abbiamo un semplice form html che chiede user e password, ed un controllo php, dove utente e password sono cablate nel codice.
Potrete quindi salvare in questo file tutte le user e le password degli utenti che possono accedere all'area riservata del vostro sito php.
Ovviamente, essendo password memorizzate in chiaro nel codice php, pur essendo al sicuro (salvo violazioni pesanti sul server), fossi in voi non ci salverei la vostra password della banca :)

Con questi 3 file avete quindi creato un'area riservata in php in un attimo.

Se volete aggiungere altre pagina protette da password (es. pagina2.php), basta aggiungere come prima riga di ogni pagina da proteggere, questo codice php:
<?php include("verifica.php");?>
Per avere così una rudimentale area protetta da password in php, senza l'ausilio di nessun database.

Un'ultima nota va fatta al tipo di accesso, ovvero tramite sessioni.
Questo vuol dire che basterà chiudere il browser per scollegarsi dal sito e non esser più loggati, tuttavia non dimenticatevi di aggiungere sempre un bel tasto logout, come ho fatto io in index.php.

Buon divertimento :)
Leggi il post

Come distruggere una sessione PHP

Con il linguaggio di programmazione per il web, il php, è possibile usare le variabili di sessione per memorizzarci dentro dei dati di vario genere, necessari per l'esperienza utente.
Quando però abbiamo finito di usare le sessioni, è bene distruggerle, in modo da eliminare ogni variabile di sessione utilizzata dall'utente.


Come distruggere una sessione PHP


Per distruggere una sessione php possiamo agire in diversi modi.
Innanzitutto va detto che le sessioni php vengono eliminate in automatico alla chiusura del browser.
Se però vogliamo cancellare una specifica sessione php, possiamo tranquillamente farlo con le seguenti righe di codice:

session_start();
unset($_SESSION["NOMESESSIONEDACANCELLARE"]);
Questa semplice riga di codice php serve per distruggere la specifica sessione (session php), chiamandola per nome.

Se invece volessimo eliminare tutte le sessioni php aperte (l'equivalente della chiusura del browser), potremmo usare questi metodi:
session_start();
session_unset();
session_destroy();
$_SESSION = array();


Avremo così distrutto ogni sessione in un colpo solo (in teoria dovrebbe bastare solo $_SESSION = array(); per distruggere tutte le sessioni php aperte).

Se poi vogliamo ricreare sessioni php, basta usare il metodo descritto in questo post.
Leggi il post

Come creare una sessione con il PHP

Il PHP consente di salvare delle variabili di sessione che ci consentono di svolgere alcune operazioni molto utili, soprattutto a livello di sicurezza del nostro sito web.
Vediamo quindi come salvare e richiamare una sessione in php.


Come creare una sessione con il PHP


Per salvare una sessione con il php, bisogna prima aprire la sessione (session) con il seguente comando:
session_start();

Poi possiamo creare la sessione con il comando:
$_SESSION["NOMESESSIONE"]="VALOREDASALVARE";

Con due semplici linee di codice avremo così salvato una variabile di sessione php con dentro un valore a nostra scelta.

La sessione appena creata sarà valida per tutta la durata della navigazione dell'utente sul sito, e si distruggerà automaticamente dopo la chiusura del browser.

PS se non sai come eliminare sessioni php leggi questo articolo.

sabato 4 giugno 2016

Leggi il post

Sfogliare una tabella mysql con il php

Dopo aver appreso come fare una semplice connessione ad un db mysql, vediamo come sfogliare una tabella mysql con il php.

Con il php infatti, è possibile fare query sql per sfogliare un database mysql, vediamo come fare una semplice select e mostrare i risultati a video in una pagina web.

Innanzitutto apriamo la connessione al db:
$mysqli = new mysqli("localhost", "user", "password", "database");
if ($mysqli->connect_errno) {die("Impossibile collegarsi a MySQL");}

Ora eseguiamo la query vera e propria:
$query="SELECT campo FROM tabella WHERE condizione ORDER BY campo";
$res = $mysqli->query($query) or die('Errore sql: '.$mysqli->error);
$trovati=$res->num_rows;
if($trovati>0)
{
    while ($row = $res->fetch_assoc())
    {
        $campo=trim($row['campo']);
        echo "$campo<br/>\n";
    }
}
else
{
    echo "Nessuna record presente\n";
}


Con queste semplici righe di codice abbiamo scritto la query da eseguire nella variabile $query, poi l'abbiamo eseguita, salvando il risultato in $res.
Abbiamo verificato se c'era qualche risultato tramite la funzione num_rows, ed in caso affermativo abbiamo sfogliato i risultati usando la funzione fetch_assoc dentro un ciclo while, stampando a video ogni singola riga della tabella, o meglio (in questo caso), solo il dato del db che abbiamo salvato nella variabile $campo.

Ovviamente alla fine, ricordiamoci di chiudere la connessione:
mysqli_close($mysqli);

Ma se il risultato da mostrare a video fosse solo uno?
Nei casi in cui il risultato da mostrare a video sia solo uno (tipo quando passiamo un id nella query sql), al posto che sfogliare tutto con un ciclo while, possiamo fare direttamente così:
$row = $res->fetch_assoc();
$campo=trim($row['campo']);

Ovvero salviamo i risultati della query direttamente dentro l'array $row senza creare un ciclo while.
Basta poco, che ce vò (cit.)