Vai al contenuto

Utente:Valerio Bozzolan/Sandbox

Da Wikiversità, l'apprendimento libero.
lezione
lezione
Valerio Bozzolan/Sandbox
Tipo di risorsa Tipo: lezione
Materia di appartenenza Materia: Linguaggi di programmazione web
PHP
Autore PHP Group
Data di origine 17 marzo 2011
Ultima versione 5.3.6
Utilizzo
Paradigmi
Tipizzazione
Implementazione di riferimento
Sito web www.php.net

Introduzione

[modifica]

Cos'è PHP

[modifica]

PHP ("PHP: Hypertext Preprocessor", preprocessore di ipertesti; originariamente acronimo di "Personal Home Page"[1]) è un linguaggio di scripting, originariamente concepito per la programmazione di pagine web dinamiche. L'interprete PHP è un software libero (ma la sua licenza è incompatibile con la GNU General Public License).

Attualmente è principalmente utilizzato per sviluppare applicazioni web lato server, ma può essere usato anche per scrivere script a riga di comando o applicazioni stand-alone con interfaccia grafica.

Un esempio di software scritto in PHP è MediaWiki, su cui si basano progetti wiki come Wikipedia e Wikiversità.

Il PHP è simile come sintassi al C e al Perl.

I vantaggi del PHP sono, fra i molti, un'eccezionale presenza di moduli che gli permettono di interfacciarsi a praticamente qualsiasi tipo di software, database, tecnologia.

Concetti di base

[modifica]

Integrare PHP nelle pagine

[modifica]

Una pagina PHP solitamente ha estensione .php e per fare in modo che il suo codice venga interpretato deve essere contenuto fra i seguenti tag di apertura e chiusura:

<?php
// Il mio script PHP
?>

È possibile aprire codice in PHP anche utilizzando il tag abbreviato, ma occorre una determinata configurazioni per farlo, ed è da aggiungere che non è esattamente un'utilizzo standard:

<?
// Il mio script PHP
?>

Pertanto occorrerebbe fin da subito decidere di utilizzare il primo metodo a tag estesi <?php ?> per evitare spiacevoli problemi di incompatibilità spostandosi su altri web-server, ma anche per un principio di coerenza con gli standard più diffusi.

Commenti

[modifica]

Per rendere più leggibile il codice si usano i commenti. I commenti non vengono elaborati dall'interprete PHP. Vi sono 3 diversi stili di commenti:

<?php
// Commento tipo C (collocato anche non ad inizio riga)

/*
 * Commento in stile C++:
 * Tutto quello compreso tra quei due tag "slash asterisco" e "asterisco slash"
 * viene ignorato anche se su più righe.
 * Gli asterischi intermedi non sono obbligatori ma migliorano la leggibilità
 * del commento stesso.
 */

# Commento in stile Perl a riga singola (collocato a inizio riga)
?>

Ricordando che i commenti non sono interpretati, non è per cui possibile annidare commenti dentro altri commenti. Esempio scorretto:

<?php
// Commento /* Inizio altro commento multilinea
	Ancora commento? No!
*/ 
?>

È errato poichè la parte "Ancora commento? No!" viene interpretata, generando un errore fatale di compilazione.

Stampare a video

[modifica]

Anteposto il concetto che ogni porzione di testo fuori dai tag <?php ?> viene mostrata a video, al contrario ogni porzione di codice all'interno dei tag <?php ?> non viene mostrata a video ma bensì elaborata. Vi sono per cui determinate istruzioni per mostrare a video un valore da PHP. Un esempio è l'istruzione echo:

<?php echo 1+2+3; ?>

Output: 6

O in versione "ridotta":

<?= 1+2+3; ?>

Output: 6

Inutile dire che anche per questo secondo metodo ridotto valgono gli stessi svantaggi di compatibilità discussi osservando i tag ridotti di apertura del codice PHP.

Variabili

[modifica]

La gestione delle variabili in PHP è particolarmente "potente" rispetto a molti altri linguaggi di programmazione similari, in quanto una caratteristica del PHP è il non essere un linguaggio di tipizzazione forte:

  • In PHP non si pretende la dichiarazione del tipo durante l'inizializzazione di variabili
  • In PHP l'inizializzazione e la dichiarazione di variabili possono avvenire nello stesso momento
  • In PHP per creare una variabile è sufficiente assegnargli un valore
  • In PHP persino il tipo di una variabile può variare nel corso dello script
  • In PHP una variabile può essere rimossa anche in corso dello script tramite l'istruzione unset($variabile)

Altre caratteristiche tecniche:

  • In PHP le variabili sono sempre precedute dal simbolo del dollaro (esempio: $variabile)
  • In PHP le variabili sono case sensitive (c'è differenza tra $wiki e $WIKI)

Vediamo alcuni esempi:

<?php
$variabile = 20;                 // Inizializzazione di una variabile intera
echo $variabile;                 // Mostro a video

$variabile = 'W Wikiversità!';   // Inizializzazione una stringa
echo $variabile;                 // Mostro a video

$variabile = 2.3;                // Inizializzazione una variabile a virgola mobile
echo $variabile;                 // Mostro a video
?>

Output: 20W Wikiversità2.3

È divertente il fatto che è stato usata la stessa variabile per contenere uno dopo l'altro 3 tipi diversi di variabile, senza nencessariamente distruggere la variabile tramite l'istruzione unset($variabile).

Funzioni di controllo utili:

  • isset($variabile)[2]. Per controllare se una variabile esiste
  • empty($variabile)[3]. Per controllare se una variabile è considerata vuota (ovvero se la variabile non esiste o se assume valori di default come false, 0, stringa vuota (), null ecc.)

Funzioni utili per il debug:

  • var_dump($variabile)[4]. Mostra a video tutte le informazioni reperibili da una variabile.

Esempio misto:

<?php
$frase = 'Wikiversità è meravigliosa!';

if( isset($frase) ) {
	echo "La variabile chiamata frase esiste. ";
}

unset($frase);

if( !isset($frase) ) {
	echo "La variabile chiamata frase è ora sparita. ";
}

$frase = '';

if( empty($frase) ) {
	echo "La variabile chiamata frase risulta vuota. ";
}

var_dump($frase);
?>

Output: La variabile chiamata frase esiste. La variabile chiamata frase è ora sparita. La variabile chiamata frase risulta vuota. string(0) "". Da notare come l'ultima parte, quella generata da var_dump() ci aiuti a capire che la variabile $frase sia veramente una stringa vuota poichè ci viene mostrato come contenga zero caratteri (string(0) "").

Dinamicità

[modifica]

Peculiarità interessante del PHP è la possibilità di richiamare dinamicamente il contenuto di una variabile attraverso il suo nome in formato di stringa. Per fare ciò si utilizza il costrutto ${'nome_variabile'}. Questo concetto si chiama variabili variabili[5]. Esempio:

<?php
$frase = 'A video vedrò solo questa frase.';

$nomevariabile = 'frase';

echo ${$nomevariabile};
?>

Output: A video vedrò solo questa frase.

Per capire meglio l'esempio ipotizziamo di essere l'interprete di PHP e osservare l'ultima riga. "Pseudo elaborazione" passo-passo:

  1. echo ${$nomevariabile}
  2. echo ${'frase'} (Questo perchè $nomevariabile contiene la stringa 'frase')
  3. echo $frase
  4. Output: A video vedrò solo questa frase

Questo argomento si può approfondire notevolmente dal manuale ufficiale[6][5].

Stringhe

[modifica]

Una stringa è un insieme di caratteri. In PHP una stringa si istanzia in due modi: con apici doppi o singoli. Con gli apici doppi eventuali testi speciali dentro alla stringa vengono elaborati (per esempio nomi di variabili inizianti con il dollaro ($) oppure caratteri speciali come la tabulazione \t). Con gli apici singoli la stringa è salvata così com'è.

Si può dire che gli apici singoli si utilizzino per creare stringhe più velocemente in quanto non vengono processati eventuali contenuti dinamici. Le doppie stringhe per le restanti occasioni.

L'operazione tipica delle stringhe è la concatenazione, è ciò si esegue con il punto (.).

Esempio di composizione della frase "Wikipedia è meravigliosa" in due modi: concatenandola con apici singoli e doppi:

$uno = 'Wikipedia';
$due = 'è';
$tre = 'meravigliosa';

echo $uno . ' ' . $due . ' ' . $tre;
echo "$uno $due $tre";

Array

[modifica]

Questo argomento tratta di variabili multidimensione. Se non hai esperienza con altri linguaggi di programmazione ti consigliamo di leggere prima gli operatori e le strutture di controllo

PHP gestisce gli array come delle mappe associative, ovvero come un elenco di chiavi a cui per ognuna si associa un certo valore. Gli array in PHP possono perciò essere usati sia come un comune array ma anche come una lista (vettore), una stack, una coda, e molto altro. Inoltre un qualsiasi elemento dell'array può a sua volta contenere altri array (anche multidimensionali)[7] e tutti gli elementi dell'array o dei sotto-array possono essere dei tipi di variabile più diversa, Lasciando così la possibilità di creare strutture dati anche molto complesse. Ciò fa degli array una vera peculiarità del PHP.

La dinamicità degli array sta anche nel fatto che i singoli elementi possono essere rimossi tramite unset();.

Gli array in PHP (essendo associativi) possono essere attraversati tramite un costrutto speciale chiamato foreach che rende praticabile l'attraversamento ricavando tutte le singole associazioni di chiavi=>valore di un array.

Codice d'esempio di un array associativo in cui ad ogni nome di città corrisponde il numero di abitanti. Si mostrerà a video ogni città con il rispettivo numero di abitanti e in seguito si mostrerà la somma di tutti gli abitanti.

<?php
$abitanti = array(
	'Torino' => 908551,
	'Milano' => 1315791,
	'Roma' => 2753000
);

$somma = 0;

foreach($abitanti as $chiave=>$valore) {
	echo "La città $chiave ha circa $valore abitanti. ";
	$somma += $valore;
}

echo "E in tutto ci sono $somma abitanti!";
?>

L'output del codice sarà: La città Torino ha circa 908551 abitanti. La città Milano ha circa 1315791 abitanti. La città Roma ha circa 2753000 abitanti. E in tutto ci sono 4977342 abitanti!

Gli utilizzi degli array e di tutte le relative funzioni e costrutti (compreso il foreach) sono argomenti talmente ricchi di funzionalità che consigliamo di approfondirli accuratamente attraverso il manuale online ufficiale[7].

Per capire a cosa servono gli array e come si utilizzano in PHP leggi la sezione dedicata

Array predefiniti

[modifica]

È opportuno sapere che vi sono una serie di array predefiniti[8] da PHP è che non bisognerebbe mai sovrascrivere.

Alcuni fra i più utilizzati:

  • $_SERVER[9] - Informazioni sull'ambiente di sviluppo e sul server
  • $_GET[10] - Array associativo di variabili HTTP GET
  • $_POST[11] - Array associativo di variabili HTTP POST
  • $_FILES[12] - Array associativo di file caricati in upload tramite HTTP
  • $_SESSION[13] - Array associativo di variabili di sessione
  • $_ENV[14] - Variabili d'ambiente
  • $_COOKIE[15] - Array associativo di variabili COOKIE

Costanti

[modifica]

Una costante è un contenitore (come le variabili) che non può variare il suo contenuto nell'esecuzione dello script, comportando un minor utilizzo di memoria. Le costanti dichiarate sono sempre di visibilità globale. Una costante, all'interno di codice generico, si dichiara tramite l'istruzione define[16]:

<?php
define('nome_costante', 'valore');

echo nome_costante;
?>

Output: valore.

Mentre se si è all'interno di una classe è possibile creare costanti utilizzando la parola chiave const[17]:

<?php
class mia_classe {
	const COSTANTE = 34;
}

echo mia_classe::COSTANTE;
?>

Output: 34

Esempio di utilizzo di costanti e variabili:

<?php
define('a', 17);
define('b', 16);
define('frase_fatta', 'Il prodotto è: ');

$prodotto = a * b;
echo frase_fatta . $prodotto;              // Ricordiamo che il punto (.) concatena in formato stringa due elementi
?>

Output: Il prodotto è: 272.

Costanti magiche

[modifica]

In PHP esistono costanti predefinite (nota: non è possibile dichiarare costanti con lo stesso nome se esistono già), alcune delle quali si chiamano costanti magiche[18] poichè nella teoria sono vere e proprie costanti (poichè non possiamo assegnar loro alcun valore) ma in realtà il loro valore può variare "da solo" nel corso dello script per cause esterne, appunto, quasi magicamente:

Costanti magiche più note:

  • __LINE__ Contiene il numero di riga dove la costante è richiamata, ad ogni riga la costante varia
  • __FILE__ Contiene il nome del file dove si sta eseguendo il codice PHP attualmente (ad ogni inclusione la costante cambia)
  • __DIR__ Contiene il nome della cartella dove si sta eseguendo il file in PHP
  • __FUNCTION__ Richiamata dentro ad una funzione, questa costante contiene il nome della funzione stessa
  • __CLASS__ Richiamata dentro ad una classe, questa costante contiene il nome della classe stessa

Operatori

[modifica]

Operatori matematici

[modifica]

Gli operatori matematici utilizzabili sono:

$a + $b Addizione

$a - $b Sottrazione

$a * $b Moltiplicazione

$a / $b Divisione

$a % $b Modulo (resto)

alcuni esempi sono

<?php
$a = 5;
$b = 3;
$risultato = $a % $b;
echo $risultato;
?>
Risulterà 2

Operatori di confronto

[modifica]

Gli operatori di confronto tra stringhe sono:

$a == $b Se contengono gli stessi dati

$a === $b Identici: se contengono gli stessi dati e sono dello stesso tipo (es. se sono numeri o valori letterali)

$a != $b Se $a è diverso da $b.

$a <> $b Se $a è diverso da $b.

$a !== $b Non identici: se $a è diverso da $b o se essi non sono dello stesso tipo.

$a < $b Se $a è minore di $b.

$a > $b Se $a è maggiore di $b.

$a <= $b Se $a è minore o uguale di $b.

$a >= $b Se $a è maggiore o uguale di $b.

Strutture di controllo

[modifica]
<?php
$a = 1;
if($a==0) {
 echo $a.'è zero';
} elseif($a % 2 == 0) {
 echo $a.' è pari diverso da zero';
} else {
 echo $a.' è dispari';
}
?>
Risulterà dispari.

Switch

[modifica]
<?php
 $a = 'uno';

 switch($a){
  case 'uno':
   echo 'Sono il numero uno';
  break;
  case 'due':
   echo 'Sono il numero due';
  break;
// Se $a è vuota
  default:
   echo 'Nessun numero!';
  break;
 }
?>
Risulterà "Sono il numero uno"

E' importante mettere il break dopo ogni case, se si vuole far sì che venga eseguito solo il codice dentro il primo case verificato; omettere il break può servire comunque in particolari situazioni. esempio:

<?php
 $a = 1;

 switch($a){
  case 1:
   echo 'Sono il numero uno';
  case $a>0:
   echo 'Sono qualcuno';
  break;
// Se $a è vuota
  default:
   echo 'Nessun numero!';
 }
?>
Risulterà "Sono il numero unoSono qualcuno". Notare che quando voglio usare un operatore diverso da == nei case devo scrivere $variabile operatore valore.
Se tolgo anche l'ultimo break mi uscirà sempre e comunque anche il testo di default.
<?php
 $a = 1;

 switch($a){
  case 1:
  case $a>0:
   echo 'Sono qualcuno';
  break;
// Se $a è vuota
  default:
   echo 'Nessun numero!';
  break;
 }
?>
Risulterà "Sono qualcuno"

Operatore Ternario

[modifica]

Sintassi

<?php
 /* se la condizione è vera restituisce il valore1 altrimenti restituisce il valore2 */
 $variabile = condizione ? valore1 : valore2;
?>


Esempio

<?php
 $a = 1;

 $b = $a==1 ? "La variabile a vale uno" : "La variabile a è diversa da uno";
 echo $b;
?>
Risulterà "La variabile a vale uno"

Funzioni

[modifica]

Le funzioni in PHP possono avere un mix di parametri opzionali con valori predefiniti o parametri obbligatori (per questo motivo il concetto di w:overloading in PHP è perfettamente inutile). Esempio di funzione con un parametro obbligatorio e uno opzionale con valore predefinito.

<?php
function apprezza( $soggetto, $apprezzamento = "libera" ) {
	return "Lasciatemi dire che $soggetto è $apprezzamento poiché contribuire è facile!";
}

echo apprezza("Wikipedia");                        // Output: Lasciatemi dire che Wikipedia è libera poiché contribuire è facile!

echo apprezza("Wikidizionario", "meraviglioso");   // Output: Lasciatemi dire che Wikidizionario è meraviglioso poiché contribuire è facile!
?>

Qualunque variabile di qualunque tipo creata dentro alla funzione diventa locale. Per specificare variabili globali dentro alla funzione si usa global $variabile. Esempio:

<?php
function esperimento() {
	global $a;
	$a = "tre";
	$b = "quattro";
	echo "Durante: $a $b";
}

$a = "uno";
$b = "due";

echo "Prima: $a $b";
esperimento();
echo "Dopo: $a $b";
?>

Il risultato sarà: Prima uno due Durante tre quattro Dopo tre due.


Cicli

[modifica]

Sintassi

<?php
 for (assegnamenti_iniziali; condizioni_entrata_ciclo; istruzioni_uscita_di_ogni_ciclo)
 {
  istruzioni_ciclo;
 }
?>

Il ciclo for inizialmente applica gli assegnamenti indicati come assegnamenti_iniziali (che eventualmente possono essere omessi), poi verifica le condizioni_entrata_ciclo: se risultano vere si entra nel ciclo. All'uscita del ciclo vengono effettuate le istruzioni_uscita_ogni_ciclo e poi si verificano nuovamente le condizioni per stabilire se si deve ciclare un'altra volta oppure se si può uscire dal ciclo. Ovviamente si continua a ciclare fino a che le condizioni_entrata_ciclo non siano complaessivamente false. Per sua natura il ciclo for è usato principalmente per ciclare i valori di un vettore, per il resto il funzionamento è identico ad un ciclo while, tanto che i due costrutti possono essere interscambiabili.


Esempio

<?php
 $array = array("uno", "due", "tre", "quattro");  // dichiaro un array di quattro elementi

 // parti con l'indice uguale a 0 (in quanto gli array cominciano da 0 in php)
 // entra nel ciclo fino a quando l'indice $i è minore del numero di elementi dell'array (count($array))
 // ad ogni ciclo incrementa l'indice di uno ($i++)
 for ($i=0; $i<count($array); $i++)
 {
  echo "Elemento $i: " . $array[$i] . "<br />";
 }
?>

L'esempio stamperà:

Elemento 0: uno
Elemento 1: due
Elemento 2: tre
Elemento 3: quattro

Foreach

[modifica]

Sintassi

<?php
 foreach ($array as $array_element)
 {
  istruzioni_ciclo;
 }
?>

Il ciclo foreach è simile al ciclo for, solo che non necessita di indici o condizioni perché cicla direttamente dall'inizio alla fine di un insieme di valori, tipicamente un array. La variabile $array contiene l'insieme di valori, il ciclo scorrerà tutto l'array inserendo nella variabile $array_element il valore dell'elemento corrente dell'array. Il ciclo termina quando si giunge alla fine dell'array.


Esempio

<?php
 $array = array("uno", "due", "tre", "quattro");  // dichiaro un array di quattro elementi

 // per ogni elemento dell'array entra nel ciclo
 foreach ($array as $array_element)
 {
  echo $array_element . "<br />";
 }
?>

L'esempio stamperà:

uno
due
tre
quattro

While

[modifica]

Simile a for, non richiede un inizio, una fine e un "passo", ma semplicemente esegue il codice al suo interno fintanto che una condizione viene soddisfatta:

<?php
 $a = 1;
while($a<10) {
echo $a;
$a++
}
?>
Stamperà i numeri da 1 a 9.

Nota che in certi casi il ciclo potrebbe non essere eseguito nemmeno una volta.

Do While

[modifica]

Simile a while, ma in questo caso si è sicuri di eseguire il ciclo almeno una volta:

<?php
 $a = 1;
do {
echo 'ecco il ciclo';
} while($a<0) {
echo 'Sono positivo';
}
?>
Risulterà "Ecco il cicloSono positivo".

Si noti che in questo caso il codice che viene eseguito la prima volta + finché si verifica la condizione del while è quello dentro il do, mentre il codice dentro while viene eseguito al primo fallimento del ciclo.

Variabili globali

[modifica]

Una delle variabili globali di PHP è $_GET['valore'] e restituisce il valore di una variabile passata attraverso il metodo GET.

Supponiamo di avere una pagina in un server locale chiamata "index.php" e di caricarla inserendo dei valori con sintassi GET alla fine. Per fare questo basta digitare l'indirizzo della pagina e, in seguito, aggiungere i valori.

http://localhost/index.php?esempio=67&pippo=163

A questa pagina passiamo due variabili: esempio, con valore uguale a 67, e pippo, con valore uguale a 163. Per far utilizzare questi dati il codice di index.php sarà più o meno questo:

<?php
//assegno il valore della variabile $_GET['valore'] ad una nuova variabile appena dichiarata
$esempio = $_GET['esempio'];
$pippo = $_GET['pippo'];

//mando in output il valore delle variabili appena prese
echo $esempio." ".$pippo."\n";

//faccio la somma fra le due variabili
$somma = $esempio + $pippo;
echo "La somma è: ".$somma;

//chiudo lo script
?>

In questo caso l'output sarà quindi:

67 163
La somma è: 230

Come ultima cosa correlata all'uso di GET e del passaggio di variabili occorre ricordare che un indirizzo web non può essere più lungo di 255 caratteri e che di conseguenza non possono essere inviati valori molto lunghi. Per il passaggio di valori grandi o che preferireste non far vedere nell'indirizzo considerate l'utilizzo del metodo POST.

POST

[modifica]

Un'altra delle variabili globali di PHP è $_POST['valore'] e restituisce il valore di una variabile passata attraverso il metodo POST.

Per inviare dei dati attraverso il metodo POST ad una pagina web dobbiamo utilizzare un'altra pagina web con un form. Il codice sarà simile a questo:

Sorgente di "dati.php":

<html>
<body>

<form action="elab.php" method="POST">
<input type="text" name="esempio">
<input type="text" name="pippo">
<input type="submit">
</form>

</body>
</html>

In questo form passiamo le due variabili esempio e pippo alla pagina "elab.php". Il valore non è esplicito ma deve essere inserito nei campi del form. Per questo esempio supponiamo di inserire 10 nel primo campo di testo e 35 nel secondo campo.

La ricezione delle varibili è uguale a quella utilizzata con il metodo GET. Il codice risulta quindi questo:

Sorgente di "elab.php":

<?php
//assegno il valore della variabile $_POST['valore'] ad una nuova variabile appena dichiarata
$esempio = $_POST['esempio'];
$pippo = $_POST['pippo'];

//notiamo che a questo punto il programma risulta essere identico al programma con GET

//mando in output il valore delle variabili appena prese
echo $esempio." ".$pippo."\n";

//faccio la somma fra le due variabili
$somma = $esempio + $pippo;
echo "La somma è: ".$somma;

//chiudo lo script
?>

In questo caso l'output sarà quindi:

10 35
La somma è: 45

Al contrario di GET, POST può inviare dati con limite di grandezza imposta dalla varibile post_max_size nel file di configurazione php.ini del proprio server. Generalmente questo limite si aggira intorno ai 3MB o superiori.

[modifica]

I cookie con le sessioni sono una delle più usate caratteristiche di PHP e della programmazione web in generale perché usati come sistema per il Login/Logout. Generalmente quando apriamo una pagina web sappiamo che il client manda una richiesta http al server e che il server elabora il codice PHP (se dovesse esserci) e poi restituisce il risultato in html. Il problema si pone quando il server deve distinguere un client dall'altro o deve in poche parole riconoscere sempre lo stesso client. Dopotutto sarebbe molto stressante dover fare il login ad ogni pagina web che si cambia, giusto? Vengono quindi usati i cookies che sono dei file di testo che risiedono nel computer del client e che vengono inviati al server ogni qualvolta si carica una pagina. Con i cookies si possono memorizzare variabili che possono essere usate nelle applicazioni web attraverso la sintassi generica $_COOKIE['var'].

Ma vediamo subito come settare ed eliminare i cookies. Prima di tutto c'è da ricordarsi che i cookies fanno parte degli header http e che quindi devono essere inviati prima di qualsiasi output html. Questa è in dettaglio la funzione per settare i cookies in PHP:

<?php
setcookie("nome_cookie", "valore_cookie", time()+3600);
?>

Come si può capire il primo parametro della funzione sta ad indicare il nome del cookie, il secondo parametro indica il valore del cookie mentre il terzo indica il tempo di scadenza. Il cookie nell'esempio verrà cancellato automaticamente entro un'ora visto che 3600 secondi sono un'ora. Ma per cancellarli?

La cancellazione di cookie avviene in modo quasi identico con una piccola differenza: il tempo di scadenza.

<?php
setcookie("nome_cookie", "valore_cookie", time()-3600);
?>

Questa funzione cancella un cookie immediatamente visto che il suo tempo di scadenza è negativo e impostato ad un'ora fa.

Una volta impostati dei cookie con dei valori, questi ultimi possono essere richiamati in modo quasi analogo a GET e POST in tutta la pagina in qualsiasi momento. Il codice sottostante ad esempio stampa il valore del cookie "esempio" supponendo che sia stato impostato.

<?php
echo $_COOKIE['esempio'];
?>

Sono comunque stati ricontrati diverse impostazioni predefinite e modi di gestire i cookies nei vari browser e per questo è consigliabile fare uso anche di sessioni.

Sessioni

[modifica]

Le sessioni sono delle variabili globali che rimangono in memoria fino all'uscita dal sito. La loro gesione è molto semplice:

<?php
session_start(); //inizio una sessione
$_SESSION['nome']='mario';
echo $_SESSION['nome'];
?>
Stampa "mario"

Se vogliamo eliminare tutte le sessioni senza dover far uscire l'utente dal sito (ad esempio questo sistema si usa nelle pagine di logout):

<?php
session_destroy();
?>

Database

[modifica]

MySQL

[modifica]

MySQLi

[modifica]

Glossario

[modifica]

<?php $n1 = 1; $n2=5000; if ( !$p_file = fopen("miofile.txt","r")) { echo "Spiacente, non posso aprire il file miofile.txt"; }

else {

while(!feof($p_file))

{ //legge la prima linea del file $linea = fgets($p_file, 255); // lascia solo i numeri nella linea $linea= eregi_replace("([a-z.-]+)","",$linea); echo "rule-match-replace ".$n1++ ."//".$n2++ "$linea
"; } fclose($p_file); } ?>

Funzioni sulle stringhe

[modifica]

Funzioni sugli array

[modifica]

Funzioni sui file

[modifica]

Note

[modifica]
  1. Storia del PHP e progetti correlati
  2. Manuale PHP - isset
  3. Manuale PHP - empty
  4. Manuale PHP - var_dump
  5. 5,0 5,1 Manuale PHP - Variabili variabili
  6. Manuale PHP - Variable scope
  7. 7,0 7,1 Manuale PHP - Array
  8. Manuale PHP - Variabili Predefinite
  9. Manuale PHP - $_SERVER
  10. Manuale PHP - $_GET
  11. Manuale PHP $_POST
  12. Manuale PHP $_FILES
  13. Manuale PHP $_SESSION
  14. Manuale PHP $_ENV
  15. Manuale PHP $_COOKIE
  16. Manuale PHP - define
  17. Manuale PHP - Costanti di classe
  18. Manuale PHP - Costanti magiche

Altri progetti

[modifica]