Tag: php

Corso PHP: 18 – Gestione cookies

18. Gestione cookies

18.1 Generalità.

I cookies sono piccoli files utilizzati per memorizzare dati nel browser remoto e tenere traccia degli utenti o identificarli al loro ritorno. Sono necessari per esempio per tener traccia della navigazione dell’utente attraverso le nostre pagine utilizzando le sessioni oppure per i siti di e-commerce per consentire la procedura di ordini prodotti. Sono utilizzati inoltre dalle società di advertising per raccogliere dati sulle preferenze di navigazione degli utenti e presentare così gli annunci più pertinenti.

A seconda dei diversi scopi per i quali vengono utilizzati, si possono suddividere in tre categorie:

  • Cookies tecnici
  • Cookies di profilazione
  • Cookies di terze parti

Continua a leggere…

Corso PHP: 17 – Inviare email con PHP (Parte 2^)

Come promesso la passata lezione, scriviamo dunque una pagina che conterrà il form ‘Contatti’ e separatamente una funzione che avrà il compito di eseguire i controlli ed inviare l’email se tutto è corretto, oppure popolare il form con i relativi messaggi di errore nel caso contrario.

L’esempio che costruiamo è funzionante e potete anche provarlo in locale se avete un server installato localmente, ad esempio xampp come abbiamo spiegato all’inizio del corso. Alla fine del sorgente troverete il link per il download.

Continua a leggere…

Corso PHP: 17 – Inviare email con PHP

17.  Inviare email

PHP ha una funzione chiamata mail() che consente l’invio di email da programma.

Perché la funzione si disponibile occorre che PHP abbia accesso al programma sendmail in fase di compilazione. Come è facilmente verificabile con phpinfo la directory dove usualmente è collocato sendmail è /usr/sbin/.

La configurazione del server email è definita nel file php.ini.

La sintassi della funzione mail() è la seguente:

bool mail (string $a, string $oggetto, string $messaggio [, string $header ] )

Vediamo il significato dei parametri:

  • $a = Destinatario dell’email
  • $oggetto = Oggetto dell’email
  • $messaggio = Messaggio
  • $header                 = Intestazioni addizionali (es. mittente dell’email)

La funzione mail() invia automaticamente il messaggio indicato in $messaggio al destinatario $a. Si possono specificare destinatari multipli separando i diversi indirizzi con una virgola.

Corso PHP: 16 – Le Sessioni

16.  Le Sessioni

 Le sessioni sono uno strumento che PHP mette a disposizione per memorizzare informazioni differenti per ciascun utente che accede al sistema. Le sessioni non sono altro che un insieme di variabili memorizzate sul server riferite separatamente a ciascun utente. Per mezzo delle sessioni sarà così possibile tra l’altro passare delle variabili specifiche per un utente da un pagina ad un’altra del sito.

Ma come fa PHP a distinguere un utente da un altro? Viene assegnato a ciascun utente un ID di sessione univoco generato con un routine di randomizzazione. Questo ID di sessione viene quindi memorizzato in un cookie lato client per associarlo all’utente e sul server per associarlo a tutte le variabili riferite a quell’utente.

Nel caso di un utente che abbia disabilitato i cookies PHP ha previsto che l’ID di sessione venga trasmesso come parametro GET nell’URL di ciascuna chiamata utente. E’ evidente come questo introduca seri problemi di sicurezza in quanto l’ID sarebbe visibile a tutti dando così potenzialmente libertà di accesso ai dati dell’utente. Dalla versione di PHP 4.2.0 la direttiva session.use_trans_sid è disabilitata per default nel PHP.ini impedendo l’invio del SID (Session ID) via URL. Dal PHP 4.3.0 esiste anche la direttiva session.use_only_cookies per default impostata a 1 (VERO) che forza PHP ad usare comunque solo i cookies.
Continua a leggere…

Corso PHP: 15 – Data e Ora (Parte 3^)

15.4 Verifica di una data

Verificare se una data è corretta può venir utile se chiedete ad un utente di inserire una data, naturalmente se non si usa una funzione di datepicker (calendario su cui scegliere una data con un click). Per verificare la correttezza di una data ci può venire incontro la funzione checkdate() che ha la sintassi seguente:

bool checkdate (int $mese, int $giorno , int $anno)

E’ una funzione che restituisce un valore booleano: TRUE se la data inserita è valida, FALSE altrimenti. Una data è considerata valida se:

  • l’anno è compreso tra 1 e 32767
  • il mese è compreso tra 1 e 12
  • il giorno è entro i limiti per il dato mese. Gli anni bisestili sono presi in considerazione.

Come si evince dalla sintassi i parametri vanno dati secondo l’ordine tipico americano, cioè prima il mese, poi giorno ed anno.

Se, come spesso accade, abbiamo una data espressa nel formato ‘AAAA-MM-GG’ e vogliamo controllarne la correttezza possiamo usare la funzione seguente, basata appunto sulla funzione checkdate() di PHP:
Continua a leggere…

Corso PHP: 15 – Data e Ora (Parte 2^)

15.3. Ottenere il timestamp di data e ora corrente

Come detto, data e ora vengono memorizzate in un unico numero a 64 bit. Abbiamo visto come ottenere una data e ora formattata in modo intelleggibile dall’essere umano a partire dal timestamp, ma dobbiamo ora vedere il processo contrario.

Il modo più semplice se si vuole ottenere il timestamp del giorno e ora attuale è quello di usare la funzione time(). La sintassi è:

int time (void)

Va quindi usata senza parametri. Ad esempio:

$today = time();

Se tuttavia si vuole il timestamp di una determinata data e ora si deve utilizzare la funzione generale mktime() che ha la seguente sintassi:

int mktime (int $hour, int $minute, int $second, int $month, int $day, int $year [, int $is_dst])

Continua a leggere…

Corso PHP: 15 – Data e Ora

15. Data e Ora

La gestione delle date e delle ore in PHP non è tra le cose più semplici (per usare un eufemismo).

Cercheremo di fornire gli elementi essenziali per la gestione di date e ore contribuendo soprattutto con esempi e funzioni già scritte per i casi più frequenti e/o utili.

Come prima cosa tuttavia è necessario sapere che le informazioni relative ad una data e a ore minuti e secondi sono tutte memorizzate in un unico numero a 64 bit, cosa che consente di poter gestire date a partire da 292 miliardi di anni fa ad altrettanti nel futuro. Questo numero, chiamato timestamp, rappresenta il numero di secondi passati dal 1° Gennaio 1970 ed ovviamente può essere negativo per le date precedenti. Questo sistema tuttavia ci complica un po’ la vita perché costringe a continue conversioni da/al formato di data e ora intelleggibile agli umani.

Vediamo quindi le funzioni più importanti iniziando da quella che è probabilmente la più usata:

15.1 Ottenere data e ora corrente

Se vogliamo sapere la data e/o l’orario correnti ci viene in aiuto una funzione del PHP chiamata getdate() la cui sintassi è:

array getdate ([ int $timestamp ])

Continua a leggere…