- Home
- Categorie
- Coding e Sistemistica
- PHP
- FAQ - Php
-
FAQ - Php
Queste FAQ sono state create con il contributo di: Samyorn
- Cosa è il PHP?
- Cos?è una pagina dinamica?
- Perché usare il PHP?
- Cosa serve per usare PHP?
- Dove posso imparare?
- Come faccio a sapere se il mio server supporta PHP e che versione usa?
- Come si riconosce uno script PHP?
- Cosa è MySql?
- Cosa è un Database?
- Posso installare in locale un database server MySql?
- Dove posso reperirlo?
- Ho scaricato il modulo PHP, il Web Server Apache ed il database server MySql. Ed ora?
- Interfacciare tutti e tre i programmi è troppo laborioso. Non c'è un altro metodo?
- Cosa è PhpMyAdmin?
- Perché usare PHP e MySQL?
- Come faccio a recuperare i dati inviati tramite un form?
- **Come collego i miei script ad un Database?
** - Perché perdo parte dei dati trasmessi da un form?
- Quali sono gli operatori di confronto PHP?
- Quali sono gli operatori di confronto MySql?
- Come posso ottenere l'orario attuale?
- ** Cos'è il timestamp?**
- A cosa serve il simbolo @?
- Cosa sono i Riferimenti?
- **Come verifico la presenza di una stringa all'interno di un'altra?
** - Come creare un Database?
- Come eliminare un Database?
Queste FAQ sono state create con il contributo di: Samyorn
-
Cosa è il PHP?
PHP sta per “Personal Home Page”, o meglio questo era il suo nome originale, mentre adesso equivale a “PHP: Hypertext Preprocessor”. E’ un linguaggio di programmazione * open source* per la costruzione di pagine web dinamiche che sfrutta le potenzialità di script lato server per ottenere ciò che il WebMaster si è prefisso e, perché no, ciò che l’utente vuol vedere raffigurato nel proprio browser.
-
Cos’è una pagina dinamica?
Una pagina dinamica non è altro che una pagina web in grado di rispondere interattivamente alle richieste degli utenti e/o alle esigenze di un WebMaster. Al contrario di una semplice pagina in puro HTML ove il contenuto sarà inviato al browser e decodificato “così per come è”, uno script lato server trasmetterà “al volo” al browser dell'utente il risultato dello script stesso “costruendo” l’HTML che il browser dovrà decodificare.
-
Perché usare il PHP?
Il PHP è un linguaggio di programmazione appositamente studiato per facilitare la costruzione di pagine web. Facilmente integrabile con altri linguaggi di programmazione ed in grado di interfacciarsi con praticità e con pochi limiti, con vari Database (SQL Server, MySql, Oracle, Firebird, Access ed altri ancora). Dall'attuale versione in uso (PHP 5) la programmazione ad oggetti è stata migliorata notevolmente e, si spera presto, vedremo cosa apporterà al web l’attuale sviluppo della stessa e più in la’ il suo upgrade.
-
Cosa serve per usare PHP?
Solo il suo supporto, ovvero l'interprete ove risiedono le API e quanto giova per far riconoscere al server, ove gireranno gli script, che quel codice è PHP e quindi interpretarlo di conseguenza. Se intendete utilizzare PHP in locale potreste utilizzare l'interprete ufficiale da configurare per la piattaforma che lo ospiterà (prelevandolo dal sito www.php.net) o molti altri *pacchetti pronti all'uso (*Easyphp per citarne uno, anche se disponibile solo con modulo PHP 4). Se non è presente in uno dei pacchetti pronti all’uso o non è presente nel computer stesso, il tutto va in combinazione di un Web Server, ovvero un programma atto a trasmettere, al browser che lo interroga, il contenuto di una pagina Web o, nel nostro caso, il risultato di uno script lato server che costruirà la pagina Web per noi. Uno dei più diffusi Web Server è di certo Apache.
-
Dove posso imparare?
Esistono molte valide guide in rete, ne segnaliamo solo un paio:
http://www.giorgiotave.it/guida_php/sommario.php
http://php.html.it/guide/leggi/99/guida-php-di-base/
E per ogni dubbio e/o approfondimento c'è la sezione PHP-MySql del Forum GT o il sito ufficiale www.php.net.
-
Come faccio a sapere se il mio server supporta PHP e che versione usa?
Crea, anche con Notepad, i due seguenti file:
php_info.php:
[php] <?php
phpinfo();
?> [/php]php_ver.php:
[php] <?php
echo phpversion();
?> [/php]*Durante il salvataggio accertati che l'estensione dei file sia: .*php **(con Notepad seleziona “Tutti i formati” in “Salva come:” per evitare che ti venga creato il file con la seguente estensione: php_info.php.txt).
Creati i due file fai l'upload sulla root del tuo sito e quindi richiamali dal tuo browser, digitando:
www.miosito.ext/php_info.php e www.miosito.ext/php_ver.php. In tal modo otterrai tutte le informazioni che potranno tornarti utili nell'uso degli script PHP relativi al tuo webserver.....ed avrai fatto i tuoi primi due script PHP
-
Come si riconosce uno script PHP?
A parte l'estensione del file che lo contiene (nomefile.php) ogni istruzione PHP deve essere contenuta all'interno dei tag <?php e ?> (oppure <? e ?>):
[php] <?php
.....istruzione php.....
?> [/php]Un'istruzione PHP potrebbe anche essere solo una piccola porzione di una pagina in HTML (anche se l'estensione sarà comunque nomefile.php
[php]<html>
<head>
<title>Faq PHP</title>
</head>
<body>
........istruzioni HTML......
<?php
........istruzioni php.....
?>
........istruzioni HTML......
<br /><div style="z-index:3" class="smallfont" align="center">SEO by vBSEO 3.0.0 RC8 2007, Crawlability, Inc.</div></body>
</html>
[/php]In questo caso il nostro script PHP si trova all'interno del body della nostra pagina HTML, ma a seconda delle esigenze potrebbe trovarsi in qualunque posizione della nostra pagina.
-
Cosa è MySql?
E' un software DBMS (Database management system) relazionale, progettato per consentire la manipolazione, il controllo ed un discreto livello di sicurezza dei Database, in modalità multi-utente. Supportato sia da sistemi Unix che Windows, anche se il primo ha una “corsia preferenziale” solitamente. Supporta gran parte della sintassi SQL e con l'avanzare del suo sviluppo si prevede un'integrazione totale.
-
Cosa è un Database?
Non è altro che un archivio di dati strutturato che permette la gestione dei suoi contenuti (inserimento, aggiornamento, ricerca e cancellazione) da parte di applicazioni software.In poche parole il Database fa da archivio ai nostri dati mentre la gestione è affidata, nel caso trattato da questa sezione, al MySql.
-
Posso installare in locale un database server MySql?
Certo! Come altre tipologie di database è possibile installare il database server MySql anche su un normalissimo Personal Computer, senza per questo rinunciare alle sue potenzialità.
-
Dove posso reperirlo?
Dal sito ufficiale: www.mysql.com.
L'attuale versione in uso è la 5.
-
Ho scaricato il modulo PHP, il Web Server Apache ed il database server MySql. Ed ora?
Completa l'installazione dei tre pacchetti e quindi passa alla configurazione degli stessi al fine di poterli interfacciare tra loro. Puoi seguire le guide che trovi in rete, ne riportiamo qualcuna qui di seguito:
Windows: http://www.giorgiotave.it/forum/php-mysql/101-guida-php-installazione-lamp-su-win32.html
** Linux:** http://php.html.it/guide/leggi/92/guida-php-su-linux/
-
Interfacciare tutti e tre i programmi è troppo laborioso. Non c'è un altro metodo?
Risposta affermativa anche in questo caso. Esistono in rete molti pacchetti all-in-one che possono fare al caso tuo, riportiamo qui di seguito le specifiche di quelli più usati:Easyphp (ver. 1.8), pacchetto all-in-one contenente:
-
Web Server Apache (Ver. 1.3.33);
-
Database server MySql (Ver. 4.1.9);
-
Modulo PHP (Ver. 4.3.10);
-
PhpMyAdmin (Ver. 2.6.1), *sistema di amministrazione del vostro database server MySql*;
Reperibile su: http://www.easyphp.org/
XAMPP (ver. 1.6.5), altro pacchetto all-in-one contenente:
-
Web Server Apache (Ver. 2.2.6);
-
Database server MySql (Ver. 5.0.51);
-
Modulo PHP (Ver. 5.2.5 e Ver. 4.4.6, entrambe le versioni per poter testare i vostri script);
-
PhpMyAdmin (Ver. 2.11.3);
-
Filezilla FTP Server (Ver. 0.9.24);
-
Mercury Mail Transport System (Ver. 4.52);
-
OpenSSL (Ver. 0.9.8g).
Reperibile su: http://www.apachefriends.org/it/xampp.html
-
-
Cosa è un sistema di amministrazione database (PhpMyAdmin)?
Un sistema di amministrazione di database è un applicativo che permette di amministrare in maniera rapida e sicura, tramite un interfaccia web, un database. E' multi-utente e la gestione dei permessi è prerogativa del database stesso. Tramite l'interfaccia web di questa applicazione è possibile manipolare un database server MySql in maniera molto semplice. A livello base e senza ricorrere all'ausilio del linguaggio SQL è possibile effettuare: inserimento dati e cancellazione, creazione database, tabelle e relativa cancellazione, inquiry e molto altro ancora. Per “richieste” di livello più alto si potrà ricorrere al linguaggio SQL nell'apposito input-box.
-
Iterazione PHP-MySql.
Aver appreso le nozioni di un linguaggio di programmazione per Web dinamico (come PHP) ormai non basta, la quantità di informazioni, ed aggiornamenti delle stesse, diventa un grosso problema senza un “contenitore”, qualcosa che li memorizzi a tempo indeterminato, e va' di certo contro corrente con lo sviluppo attuale del Web: separare il contenuto dalla struttura stessa del sito. In tal modo si potrà manipolare l'uno, o l'altra, con facilità e senza dover “rifare” o “ridistribuire” un sito integralmente.
Grazie all'iterazione di un linguaggio di programmazione per pagine dinamiche ed un database, giusto per fare un esempio, potrai “rivestire” il tuo sito senza perdere alcun dato precedentemente memorizzato, o, viceversa, potrai mantenere la tua struttura intatta aggiornando i dati che questa presenterà all'utente, cliccando semplicemente un tasto.
L'accoppiata PHP-MySql attualmente è tra le più diffuse nel settore, offrendo a chi effettua tale scelta, e gratuitamente, un linguaggio ed un database di qualità tecniche non indifferenti.
-
Come faccio a recuperare i dati inviati tramite un form?
Tramite le variabili superglobali $_POST, $_GET (oppure, come vedremo, $_REQUEST).
Quale usare dipende dal metodo di trasmissione dei dati del form utilizzato.
Metodo GET
Immaginiamo di avere una pagina con il seguente form:
[html]<form action="page.php" name="form" method="GET">
<input type="text" name="name">
<input type="submit" value="Submit"></form>[/html]diciamo di aver digitato ForumGT nell'input box della form, il valore del campo name, come si potrà notare, verrà trasmesso alla pagina page.php tramite url:http://www.miosito.ext/page.php?name=ForumGT ```per poter recuperare in *page.php* il valore del testo digitato nel campo *name* della form, entra in gioco la variabile superglobale *$_GET*: [php]$name=$_GET['name']; echo $name; // risultato: ForumGT[/php]Come è facile intuire, tramite la variabile superglobale *$_GET* sarà possibile recuperare un qualunque valore passato tramite url al nostro script: [html]<a href="http://www.miosito.ext/page.php?name=ForumGT">ForumGT</a> <a href="http://www.miosito.ext/page.php?name=GT">GT</a>[/html]a seconda del link cliccato la variabile *$_GET* assumerà il valore assegnato a *name* [php]$name=$_GET['name']; // cliccando sul primo link echo $name; // risultato: ForumGT // invece cliccando sul secondo link echo $name; // risultato: GT[/php]Il metodo *GET* è solitamente consigliato quando i parametri da postare sono esigui in quantità ed in contenuto. Bisogna anche ricordare che l'url della pagina fa da postino ed un semplice refresh indurrebbe a rieseguire lo script dato che il valore di *name*, nel nostro caso, è ancora memorizzato nella nostra barra degli indirizzi. ;) ***Metodo POST*** Immaginiamo di avere una pagina con il seguente form: [html]<form action="page.php" name="form" method="POST"> <input type="text" name="name"> <input type="submit" value="Submit"></form>[/html]come per l'esempio usato per il metodo *GET*, diciamo di aver digitato *ForumGT *nella nostra input box. Diversamente dal metodo *GET*, invece, i valori inviati non daranno nessun output all'utente, in quanto questi *viaggeranno* in background. Per recuperare il valore digitato nella input box, bisognerà utilizzare la variabile superglobale *$_POST* in *page.php*: [php]$name=$_POST['name']; echo $name; // risultato: ForumGT[/php] ***$_REQUEST*** Sia che si utilizzi il metodo *GET* o che si utilizzi il metodo *POST*, esiste una variabile superglobale che memorizza i dati trasmessi con entrambi i metodi. Questa variabile è *$_REQUEST*. Il suo utilizzo è perfettamente uguale ai precedenti esempi: [php]$name=$_REQUEST['name'];[/php]
-
Ho creato un Database, cosa devo fare adesso per usarlo?
Ogniqualvolta dovrai lavorare sul tuo Database dovrai far eseguire al tuo script i seguenti comandi:
ipotizzando di aver "parcheggiato" il nostro Database su PC, il nostro host sarà localhost:
[php]$db_host = "localhost";[/php](o comunque quello che ci comunicherà il nostro hosting)
Conoscere dove si trova il Database ovviamente non basta, troppo facile ;), ci serviranno ovviamente il nome utente e la password d'accesso:
[php]$db_user = "nome_utente";
$db_psw = "password";[/php]Ma questo non basta, bisogna entrare nel vivo della nostra amministrazione di MySql. Infatti usando il comando mysql_connect, con i parametri poc'anzi creati, avremo accesso al nostro Database Server MySql:
[php]$connessione = mysql_connect ($db_host, $db_user, $db_psw) or die ("Connessione al server non stabilita");[/php]Se tutto è andato per il meglio e non verrà visualizzata la tanto temuta scritta "Connessione al server non stabilita", possiamo iniziare a muovere i primi passi all'interno del nostro Database Server MySql.
Il prossimo passo è quello di selezionare il Database ove intendiamo lavorare ovviamente, usando il comando mysql_select_db.
Ipotizziamo di aver creato un Database di nome pluto per il nostro esempio:
[php]$db_name = "pluto";
$db_pluto = mysql_select_db ($db_name, $connessione) or die ("Connessione al Db non stabilita");[/php]Anche in questo caso, se non otteniamo l'output della scritta "Connessione al Db non stabilita", significa che tutto è andato a buon fine, siamo connessi al nostro Database e possiamo liberamente lavorarci su.
Riepilogando, il nostro piccolo script che ci permetterà di connetterci al nostro Database sarà il seguente:
[php]$db_host = "localhost";
$db_user = "nome_utente";
$db_psw = "password";
$db_name = "pluto";$connessione = mysql_connect ($db_host, $db_user, $db_psw) or die ("Connessione al server non stabilita");
$db_pluto = mysql_select_db ($db_name, $connessione) or die ("Connessione al Db non stabilita");[/php]IMPORTANTE!!! Da non dimenticare MAI. Ogni volta che ci si connette al nostro Database bisogna ricordare di chiudere la connessione a fine lavoro (solitamente a fine della pagina che contiene il nostro script che lavorerà sul Db).
e per chiudere la nostra connessione basterà utilizzare il comando mysql_close:
[php]mysql_close($connessione);[/php]
-
**
Memorizzo una stringa in una variabile, ma se tramite un form invio il suo valore ad un altro script, la stringa passa incompleta. Perchè?**
Spesso si commette l'errore, forse meglio chiamarla svista, di non includere il valore della variabile dentro gli apici o doppie virgolette.
Infatti se abbiamo il seguente script:
[php]<?
$string="ciao sono uno script";
?>
<form action="page.php" method="post">
<input type="text" name="testo" value=<? echo $string; ?>>
.....
</form>[/php]il risultato del nostro script sarà il seguente codice HTML:
[html]<form action="page.php" method="post">
<input type="text" name="testo" value=ciao sono uno script>
.....
</form>[/html]Come potrai ben immaginare per lo script il valore di value (:D) sarà solo ciao, dato che lo spazio verrà inteso come fine vecchio attributo (value) e inizio nuova occorrenza (o nuovo attributo), occorrenza che non verra' interpretata dato che "sono", "uno", "script" non sono attributi HTML
Pertanto, lasciando così il form, il valore inviato alla pagina page.php sarà solo ciao:
page.php
[php]<?
$testo=$_POST['testo'];
echo $testo; // risultato: ciao
?>[/php]Per risolvere basterà, così come aviene per gli altri attributi, includere il valore di $string dentro apici o doppie virgolette:
[php]<?
$string="ciao sono uno script";
?>
<form action="page.php" method="post">
<input type="text" name="testo" value="<? echo $string; ?>">
.....
</form>[/php]il risultato del nostro script sarà il seguente codice HTML:
[html]<form action="page.php" method="post">
<input type="text" name="testo" value="ciao sono uno script">
.....
</form>[/html]e finalmente nella nostra page.php riusciremo ad ottenere quanto ci aspettavamo:
[php]<?
$testo=$_POST['testo'];
echo $testo; // risultato: ciao sono uno script
?>[/php]
-
**
Quali sono gli operatori di confronto PHP?**
Gli operatori di confronto PHP sono i seguenti: