Visualizzazione post con etichetta PHP. Mostra tutti i post
Visualizzazione post con etichetta PHP. Mostra tutti i post

sabato 16 giugno 2018

Relations between models


Relations between models are a fundamental topic in ORM and a key knowledge in coding and is not easy to find good explanations.

Here it is some good articles about it:

Relation Many to Many
Pivot tables and many-to-many relationships

domenica 26 novembre 2017

Howto preview sql query code generated in Eloquent

The simplest method to show the query generated by Eloquent is by utilizing a ->toSql() method.
We only need to replace the closing ->get() with ->toSql() and then print out the results with dd() or die() funnction.

Here is an example:

    
    $users = DB::table('users')
        ->where('email', 'x@y.xxx')
        ->where('is_active', true)
        ->toSql();
//        ->get();
    dd($users);

This is the output:

"select * from `users` where `name` = ? and `is_active` = ?"

A little more complex and complete way is to enable and use the QueryLog method.

Here the example:

    DB::enableQueryLog();
    $users = DB::table('users')
    ->where('email', 'x@y.xxx')
    ->get();

    dd(DB::getQueryLog());

This is the output:

array:1 [
  0 => array:3 [
    "query" => "select * from `users` where `email` = ?"
    "bindings" => array:1 [
      0 => "x@y.xxx"
    ]
    "time" => 61.13
  ]
]

venerdì 30 giugno 2017

Aumentare la dimensione massima di file caricabili sul server in post

Occorre intervenire su sulla configurazione di PHP e sul web server.
Ipotizziamo di utilizzare un macchina Ubuntu 16.04 con PHP 7.0 e web server nginx.
Per quanto riguarda php occorre modificare nel file php.ini i valori dei parametri

upload_max_filesize
post_max_size

Per quanto riguarda il server web, ipotizzando di utilizzare nginx,

  • in caso di modifica per tutto il server occorre modificare il file nginx.conf inserendo il valore client_max_body_size nel blocco http
  • in caso di modifica per un solo dominio occorre modificare il file di configurazione del dominio (/etc/nginx/sites-avalible/.conf) inserendo la stesso stringa nel blocco server

In caso di file di dimensioni particolarmente elevate occorre intervenire anche sul tempo massimo di durata dello script sia in PHP che in nginx

Finite le modifiche ricordarsi di riavviare PHP e nginx

sudo service php7.0-fpm restart
sudo service nginx restart

Riferimenti 

  • https://easyengine.io/tutorials/php/increase-file-upload-size-limit/
  • https://easyengine.io/tutorials/php/increase-script-execution-time/

giovedì 1 giugno 2017

Script time evaluation in PHP

Piccolo promemoria del codice per valutare il tempo di esecuzione di uno script:

Registro l'inizio
$time_start = microtime(true);

Eseguo lo script script
...

Registro la fine
$time_end = microtime(true);

Calcolo la durata
$execution_time = ($time_end - $time_start);          

La stampo
echo 'Total Execution Time: '.$execution_time.' Secs'; //execution time of the cicle in seconds


giovedì 25 maggio 2017

mercoledì 16 novembre 2011

Securimage PHP captcha

Securimage è un CAPTCHA in PHP open-source che, attraverso la generazione di immagini complesse e codice di controllo, protegge i form del proprio sito dagli spam bots.

Può facilmente essere inserito in un form già esistente, richiede un web server con PHP e le librerie grafiche GD e fornisce anche una versione audio del codice.

Può essere scaricato a questo indirizzo: http://www.phpcaptcha.org/download/

Installazione
Securimage non richiede particolari congigurazioni; una volta scaricato occorre visualizzare l'immagine del captcha all'intetno del form e far controllare il codice inserito dall'utente al codice di controllo.
Una volta scaricato il codice e caricati i file sul web server nella directory www.yoursite.com/securimage/ inseriamo l'immagine nel form con il codice:


Ora inseriamo il campo input per raccogliere l'input dell'utente:

Quindi inseriamo all'inizio del file che valida i dati del form l'attivazione delle variabili di sessione:



Ora inseriamo la parte di codice che effettua il controllo dell'input:
// Creo un istanza della classe securimage
include_once $_SERVER['DOCUMENT_ROOT'].'/securimage/securimage.php';
$securimage = new Securimage();

// Effettuo il controllo che il codice inserito sia corretto
if ($securimage->check($_POST['captcha_code']) == false) {
  // Se il codice è errato gestisco l'errore
  echo "Il codice inserito non risulta corretto.

"; echo "Riprova."; exit; }
Per maggiori informazioni il sito di riferimento è http://www.phpcaptcha.org/