Tag: php

Pillole Laravel – protezione contro attacchi XSS

Laravel consente di proteggere con semplicità le applicazioni dagli attacchi cross site (CSRF – Cross Site Request Forgery). I CSRF sono un tipo di sfruttamento malevolo dei programmi web in cui comandi non autorizzati vengono eseguiti al posto di un utente autenticato. Attenzione: In particolare questi attacchi si possono verificare anche se non c’è alcuno …

Continue reading

Pillole Laravel: errore HTTP 500 accedendo ad una applicazione

Errore 500 e questo messaggio di log: PHP Parse error: syntax error, unexpected ‘?’ in /vendor/symfony/http-foundation/Response.php Come trovato qui, si risolve togliendo php7.0 (attualmente sto girando con php7.2) $ sudo apt-get purge php7.0 php7.0-common ; sudo apache2ctl restart L’errore sparisce.

Pillole Laravel: come evitare di creare implicitamente due colonne chiave sulla stessa tabella

Lo strumento delle migrazioni di Laravel è molto comodo per definire le tabelle di uno schema ma anche per le conseguenti ricadute positive sull’ORM Eloquent ai fini di produrre query con le join già fatte. Mi riferisco al fatto che è possibile definire i vincoli di chiave esterna (foreign key). Solo che la definizione è …

Continue reading

PHP 7 – what’s new – III

Dichiarazioni di tipo ritornato da una funzione Dal PHP7 è possibile specificare il tipo di ritorno di una funzione, cioè qual è il tipo della variabile ritornata da una funzione. I tipi disponibili sono i quattro riportati nell’articolo precedente (int, string, float, bool). // 6.php function sum(array $array): int { return array_sum($array); } $s = …

Continue reading

PHP7 – what’s new – II

Classe TypeError Dalla versione 7 di PHP, come visto nell’articolo precedente, abbiamo a disposizione una nuova classe che permette di gestire gli errori di tipo; in un esempio come quello sopra possiamo gestire in autonomia l’errore: declare(strict_types=1); // Coercive mode function sumOfInts(int …$ints) { //echo gettype($ints).”\n”; return array_sum($ints); } try { var_dump(sumOfInts(2, ‘3’, 4.1)); } …

Continue reading

PHP7 – what’s new – I

Tipizzazione degli scalari Facciamo una piccola introduzione. PHP è un linguaggio debolmente tipizzato, il che lo rende inviso a molti coders. Esso consente di fare cose strane del tipo $a = ‘0’; $b = $a + 1; <—- questa è la cosa strana $echo $b; echo ‘:’; echo gettype($b) // Output 1:integer Ovvero l’operatore + …

Continue reading

PHP7 – what’s new

Oggi inizio a pubblicare delle pillole di PHP che riguardano le nuove caratteristiche introdotte nel PHP7. Seguono quelle enunciate nel sito php.net ma le commento e aggiungo qualche esempio. Comincio con  Passaggio di un numero indefinito di argomenti ad una funzione Questo argomento non rapresenta una novità introdotta in PHP 7 ma è in qualche modo propedeutico …

Continue reading

Upgrade Ubuntu da 15.04 a 16.04 LTS Dapper Drake

Ho aggiornato il mio Ubuntu 15.04 alla 16.04 LTS Dapper Drake, rimanendo in attesa dell’8 luglio per poter ulteriormente aggiornare alla 18.04 LTS Bionic Beaver Sono successi alcuni inconvenienti, non gravissimi, che elenco: MySQL non parte più. In questo caso ho dovuto reinstallare mysql-server e aggiornare il file di configurazione di Apparmor che non consentiva …

Continue reading

Creiamo un’applicazione con Laravel

Con questo articolo creiamo da zero una applicazione PHP+Laravel. PHP Ci posizioniamo nella cartella htdocs della installazione del nostro web server (Apache, Ngnix, LiteSpeed,…) $ composer create-project laravel/laravel middleware 5.2.* MySQL mysql > create database middleware; mysql > grant all privileges on middleware.* to ‘middleware’ identified by ‘secret’; Modifichiamo il file .env DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=middleware …

Continue reading

Gestione delle relazioni tra entità in Laravel

Nel mio Wiki trovate un nuovo articolo che spiega come si gestiscono le relazioni tra tabelle, di tipo 1 a molti, molti a molti, le tabelle di pivot (che consentono di realizzare le relazioni molti a molti) e le query che contemplano tre tabelle. Buona lettura, lasciate un Like se lo trovate utile.