• Community Manager

    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 😉


  • Community Manager

    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.


  • Community Manager

    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.


  • Community Manager

    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.


  • Community Manager

    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à.


  • Community Manager

    Dove posso reperirlo?
    Dal sito ufficiale: www.mysql.com.
    L'attuale versione in uso è la 5.


  • Community Manager

    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/


  • Community Manager

    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


  • Community Manager

    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.


  • Community Manager

    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.


  • Community Manager

    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]

  • Community Manager

    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]


  • Community Manager

    **
    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]


  • Community Manager

    **
    Quali sono gli operatori di confronto PHP?**
    Gli operatori di confronto PHP sono i seguenti:
    image


  • Community Manager

    Quali sono gli operatori di confronto MySql?
    Gli operatori di confronto MySql sono i seguenti:
    image


  • Community Manager

    Come posso ottenere l'orario attuale?
    Puoi procedere in vari modi, uno dei possibili metodi è il seguente:
    prelevare il timestamp del server ove si esegue lo script tramite la funzione time() e quindi formattare questo valore tramite la funzione date() per ottenere la data secondo le nostre esigenze:
    [php]$data=time();
    $data=date('Y-m-d H:i:s', $data);
    echo $data; // risultato: 2008-02-20 19:13:00[/php]Questo metodo pero' restituisce, come detto, l'orario del server dove risiede lo script, quindi se questo si trovasse all'estero e con un fuso orario diverso dal nostro dovremmo elaborare il valore ottenuto tramite time() aggiungendo o sottraendo il valore in secondi dei fusi orari che ci separano da quello del server.
    Portando un esempio, diciamo di lavorare su un server che si trova in Inghilterra, che, come sappiamo, ha un'ora di fuso orario dall'Italia, in meno. Per ottenere l'ora italiana prelevando l'orario del server inglese procederemo nel seguente modo:
    [php]$data=time() + 3600; // aggiungo il valore in secondi equivalente ad un'ora
    $data=date('Y-m-d H:i:s', $data);
    echo $data; // risultato: 2008-02-20 20:13:00[/php]


  • Community Manager

    **
    Cos'è il timestamp?**
    Il timestamp, o meglio l'UNIX timestamp, è un intero lungo il cui valore è il numero di secondi che separa la data/orario specificate dalla UNIX Epoch che equivale al 01 Gennaio 1970 00:00:00.


  • Community Manager

    A cosa serve il simbolo @?
    @ è un operatore di controllo degli errori che si utilizza come prefisso ad un'espressione di PHP per far ignorare eventuali Warning o messaggi di errore che la stessa espressione potrebbe generare.
    Qualora fosse abilitata la track_errors, eventuali messaggi di errore e Warning verranno salvati nella variabile globale $php_errormsg, quest'ultima, essendo una variabile e non un array, conterrà ovviamente l'ultimo warning generato.
    Quì di seguito alcuni esempi classici di utilizzo dell'operatore @:
    [php]$handle = fopen ( $file, 'a+'); // se non va a buon fine restituisce un E_WARNING
    $handle = @fopen ( $file, 'a+'); // in questo modo non verrà restituito alcun messaggio di errore

    $query = @mysql_query ($sql, $conn);

    $value = @$array[$id]; // se l'indice $id non esiste non verranno restituiti messaggi di errore[/php]Come detto l'utilizzo di questo operatore è specifico per espressioni del linguaggio, ovvero tutto cio' che puo' restituire un valore o una risorsa da utilizzare(Es. una query).


  • User Attivo

    Cosa sono i Riferimenti?
    I riferimenti, sono metodi speciali che PHP usa per gestire le variabili e le interazioni tra queste.
    Prendiamo in esempio due variabili $a e $b:

    [php]
    $b = 5;
    $a = $b;

    echo $a; //Ris: 5
    echo $b; //Ris: 5
    [/php]

    $a ed $b sono due variabili indipendenti, in questo caso, entrambe assumono il valore 5.
    Se durante l'esecuzione modifico il valore di $a e lo pongo uguale a 6 viene:

    [php]
    $b = 5;
    $a = $b;

    echo $a; //Ris: 5
    echo $b; //Ris: 5

    $a = 6;

    echo $a; //Ris: 6
    echo $b; //Ris: 5
    [/php]

    Si nota subito che le due variabile anche se vengono ugualiate e contengono gli stessi valori ($a = $b) sono due oggetti indipendenti.
    Questo è uno dei metodi più semplici utilizzati per la gestione delle variabili in PHP.
    Con l'uso dei riferimenti, invece non succede più così.
    Quando si precende il nome di una variabile con il simbolo &, non si ottiene più il valore della variabile, ma un riferimento ad essa, l'equivalente dei puntatori in C.
    Con i riferimenti, una variabile diventa un alias di un'altra variabile ($a è l'alias di $b, oppure $a punta a $b).

    [php]
    $b = 5;
    $a =& $b; //Altra Sintassi: $a = & $b; oppure $a = &$b;
    [/php]

    Ora le due variabili $a e $b condividono lo stesso spazio di memoria, quindi un cambiamento al valore dell'una si riflette sul valore dell'altra.

    [php]
    $b = 5;
    $a =& $b;

    echo $a; //Ris: 5
    echo $b; //Ris: 5

    $a = 10;

    echo $a; //Ris: 10
    echo $b; //Ris: 10
    [/php]

    Il concetto di fondo è quello di chiamare lo stesso oggetto variabile con due nomi differenti.

    Per eliminire un alias di un oggetto, si utilizza la funzione unset();
    Avendo definito più nomi ad un oggetto, con la funzione unset(); non si perde il dato, ma solo un puntatore, quindi se le variabile $a e $b puntano allo stesso oggetto, se "distruggo" $b, mi rimane sempre $a per recuperare l'oggetto desiderato.

    [php]
    $b = 5;
    $a =& $b;

    echo $a; //Ris: 5
    echo $b; //Ris: 5

    $a = 10;
    echo $a; //Ris: 10
    echo $b; //Ris: 10

    unset($b);
    echo $a; //Ris: 10
    echo $b; //Ris: VARIABILE NON DEFINITA
    [/php]

    L'utilità dei riferimenti si vede nell'utilizzo di funzioni.
    Passare un riferimento di una variabile come argomento della funzione è molto più veloce e permette di allocare meno spazio in memoria rispetto alla normale copia della variabile.

    [php]
    function funzione(&$valore)
    {
    $valore += 5;
    }

    $a = 10;
    funzione($a);

    echo $a; //Ris: 15
    [/php]

    Di conseguenza, anche una funzione può restituire un puntatore ad una variabile.

    [php]
    function &funzione()
    {
    static $valore = 0; //STATIC: $valore ha visibilità (può essere usata) solo all'interno della funzione
    $valore++;
    return $valore;
    }

    echo funzione(); //Ris: 1
    echo funzione(); //Ris: 2
    echo funzione(); //Ris: 3

    $a =& funzione();
    $a = 10;

    echo funzione(); //Ris: 11
    [/php]

    In conclusione, l'utilizzo dei riferimenti porta benefici come la riduzione della memoria utilizzata dal server, in particolare nell'uso di grandi strutture dati come gli array.


  • Consiglio Direttivo

    Come posso verificare la presenza di un parola, o di una stringa, all'interno di un'altra stringa?
    Un metodo molto immediato è quello di utilizzare la funzione strstr();.
    Questa funzione restituirà FALSE qualora non venisse trovata alcuna occorrenza della parola, o stringa, ricercata.
    [php]<?
    $string = "ForumGT";
    $search = "GT";
    if (strstr ($string, $search))
    {
    // eseguo le istruzioni
    }
    else
    {
    echo "Nessuna occorrenza di $search è contenuta nella stringa";
    }
    ?>[/php]
    La suddetta funzione è, pero', case sensitive, pertanto se cercassimo all'interno della nostra stringa "ForumGT", la stringa "gt", otterremo FALSE come risultato. Per ovviare a questo "problema" possiamo ricorrere all'equivalente non case sensitive di questa funzione, ovvero stristr();