25. Composer

Andrea Pastore 27/09/2020 0

Composer è un gestore di pacchetti per PHP. È nato nel 2015 e da allora si è imposto come lo standard per la gestione delle dipendenze.

Scaricare Composer

Per scaricare Composer visitare il sito https://getcomposer.org/ e a seconda del sistema operativo che avete avrete una diversa procedura di installazione.

Il file composer.json

Il file composer.json contiene tutte le dipendenze per gestire il nostro progetto. Quando dobbiamo utilizzare una libreria esterna ci basterà inserirla in questo file e automaticamente Composer la scaricherà per noi.

Esempio di composer.json :

{

    "require": {

        "monolog/monolog": "dev- master#2eb0c0978d290a1c45346a1955188929cb4e5db7",

        "acme/foo": "1.0.x-dev#abc123"

    },

    "autoload": {

        "psr-4": {

            "Monolog\\": "src/",

            "Vendor\\Namespace\\": ""

        }

    }
Potrebbero interessarti anche...

Andrea Pastore 26/09/2020

2. La notazione CamelCase

Quando scriviamo un programma e dobbiamo assegnare i nomi alle varie entità (variabili, classi, package ecc.) non possiamo usare spazi, ad esempio non scriveremo

int numero oggetti;

ma scriveremo

int numeroOggetti;

la lettera iniziale della parola oggetti è scritta in maiuscolo, per una pratica nata negli anni 70 definita notazione CamelCase. Per facilitare la lettura del codice, i programmatori cominciarono a scrivere le inizali di ogni parola successiva alla prima in maiuscolo, ed è una pratica caldamente consigliata ancora oggi.

Leggi tutto

Andrea Pastore 27/09/2020

15. Memorizzare dati sensibili sul database: le funzioni di hash

Ci sono dei dati che non possono essere memorizzati in chiaro, ad esempio prendiamo in considerazione una tabella di utenti dove vengono conservate, tra le alte cose, anche le password. Conservare le password in chiaro è un grave problema di sicurezza, perché se un malintenzionato riesce ad accedere al database avrà accesso alle password degli utenti.

Per evitare che questo accada si usano algoritmi di hash, ovvero algoritmi che data una stringa restituiscono una nuova stringa, molto più lunga e quindi più sicura. Per ottenere un hash di una stringa utilizziamo la funzione hash indicando come parametri l’algoritmo che vogliamo utilizzare e la stringa su cui vogliamo eseguire l’hash. Vediamo un esempio: supponiamo di voler effettuare l’hash della password admin:

	$hashStringa = hash("md5","admin");

Il risultato prodotto da questa funzione sarà la stringa sottostante:

21232f297a57a5a743894a0e4a801fc3

Esistono vari algoritmi di hash che si possono usare, qui sotto una tabella riassuntiva:

Algoritmo  Descrizione 
 md5 Produce una stringa di 32 caratteri. Oggi non è più considerato sicuro.
 sha1 Produce una stringa di 40 caratteri. Anche questo algoritmo è considerato troppo debole per gli standard moderni.
 sha256 Produce una stringa di 64 caratteri, è al limite e inizia ad essere considerato insufficiente come protezione.
 sha384 Produce una stringa di 96 caratteri
 sha512 Produce una stringa di 128 caratteri

Vediamo come creare uno script per il login che utilizzi un algoritmo di cifratura:

	  $user = $_POST['email'];

            // il parametro contenente la password viene passato alla funzione di hash insieme all'algoritmo che vogliamo utilizzare

            $psw  = hash("md5",$_POST['password']);

            $query = "SELECT * FROM utenti WHERE username LIKE '$user' AND password LIKE '$psw'";
Leggi tutto

Andrea Pastore 27/09/2020

14. PHP e MySQL

PHP mette a disposizione una serie di strumenti per collegarsi ai più noti database. Essendo utilizzato soprattutto in ambito web PHP è sempre associato al database MySQL, per il quale mette a disposizione la classe mysqli. Vediamo come funziona

Creazione dell’oggetto database

	  $db = new mysqli($host, $utenteDb, $passwordDb, $nomeDb);

            if (mysqli_connect_errno()) {

                echo "Errore durante la connessione al Database: ".mysqli_connect_error();

                exit();

            }

Specificare una porta diversa dalla porta di default

Potrebbe capitarci di lavorare in aziende con requisiti stringenti di sicurezza, che ad esempio hanno cambiato la porta di default a cui il server MySQL è in ascolto. È possibile specificarla, scrivendo:

	$db = new mysqli($host, $utenteDb, $passwordDb, $nomeDb,$portaMysql);

Esecuzione di una query

	if(!$risQuery = $db->query($query)) {
                    echo "Errore durante l'esecuzione della query: ".$db->error;
                    echo "<br>$query";
                exit();
          }

Recuperare i dati della query

Per recuperare i dati della query usiamo la funzione fetch_assoc invocata sull’oggetto $risQuery. Questa funzione restituirà un array associativo che potremmo poi utilizzare per stampare i dati che ci interessano, usando come indici i nomi dei campi del database.

	$oggetto = $risQuery→fetch_assoc();

supponendo che la tabella su cui abbiamo eseguito la query abbia i campi id e nome, dopo aver eseguito il codice qui sopra potremmo scrivere:

	echo $oggetto[“id”].” ”.$oggetto[“nome”];

Se la query ha restituito più di un risultato dobbiamo creare un ciclo per recuperarla:

	while($oggetto=$result->fetch_assoc()) {

// elaboro le singole righe

echo $oggetto[“id”].” ”.$oggetto[“nome”].”
”;  

}

Nota: nel ciclo while abbiamo aggiunto un tag
dopo la stampa, in modo che ad ogni riga del database corrisponda una riga diversa a video.

Conoscere il numero di elementi restituiti dalla query

Può capitare di dover conoscere il numero di elementi restituiti da una query. Questa operazione si può fare controllando la proprietà num_rows dell’oggetto restituito:

	$numeroRighe =  $result->num_rows;
Leggi tutto

Cerca...