Creare un semplice guestbook

costruire un libro degli ospiti, meglio conosciuto come Guestbook.
Cominciamo con l'aprire il nostro editor e a salvare il primo file, chiamandolo config.php e inserendoci questo codice:
$msg_per_page = 5;
$mysql['host'] = "";
$mysql['pass'] = "";
$mysql['user'] = "";
$mysql['name'] = "";
@mysql_connect($mysql['host'], $mysql['user'], $mysql['pass']);
@mysql_select_db($mysql['name']);
?>
La prima variabile, $msg_per_page, ci serve per indicare il numero di messaggi che si vogliono visualizzare per ogni pagina; ovviamente, il numero è arbitrario, ma lasciatevi dare un consiglio... non alzate troppo la cifra altrimenti chi non ha connessioni veloci potrebbe aver difficolt? alla visualizzazione della pagina.
La seconda variabile, $mysql, è un array, e ci serve per indicare i dati del nostro database MySQL.
In questo file non sono presenti altre variabili, ma già incontriamo due funzioni: mysql_connect() e mysql_select_db().
Come è facile intuire le due funzioni sono legate a MySQL, infatti, la prima serve per la connessione al server e la seconda per selezionare il database che si vuole usare.
Passiamo ora alla creazione della tabella nel database MySQL.
Aprire un nuovo documento vuoto e inserire all'intorno questo codice:
require("config.php");
@mysql_query("DROP TABLE IF EXISTS gbook");
@mysql_query("CREATE TABLE gbook (
`id` INT(11) DEFAULT '0' NOT NULL AUTO_INCREMENT,
`nome` VARCHAR(255) NOT NULL,
`email` VARCHAR(255) NOT NULL,
`url` VARCHAR(255),
`messaggio` TEXT NOT NULL,
`ip` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`)
);");
echo "Operazione avvenuta con successo !!\n";
@mysql_close();
?>
Non ci sono variabili ma sono presenti due query al database, la prima ci serve per cancellare la tabella se esiste già, la seconda per crearla.
Fatte attenzione, la tabella che serve a noi, si chiama "gbook", e se esiste già verrà cancellata e tutti i dati presenti verrano cancellati e non saranno recuperabili in alcun modo.
Dopo aver visto la parte di configurazione, cominciamo ad entrare nel vivo dell'applicazione.
Ora, aprire un nuovo documento vuoto e salvarlo come: leggi.php ed ecco il codice che dovrà contenere:
require("config.php");
$count_mess = @mysql_query("SELECT COUNT(id) FROM gbook");
$res_count = @mysql_fetch_array($count_mess);
if ($res_count[0] == FALSE) {
echo "Nessun messaggio ? stato inserito nel database";
} else {
$tot_pages = ceil($res_count[0]/$msg_per_page);
$curr_page = (!$_GET['page']) ? 1 : (int)$_GET['page'];
$primo = ($curr_page - 1) * $msg_per_page;
$query = mysql_query("SELECT * FROM gbook ORDER BY id DESC LIMIT $primo,$msg_per_page");
while($result = mysql_fetch_array($query)) {
$result['messaggio'] = str_replace("\n", "
", $result['messaggio']);
echo " ? Nome: " . $result['nome'] . "
\n";
echo " ? E-Mail: " . $result['email'] . "
\n";
echo " ? URL: " . $result['url'] . "
\n";
echo " ? Messaggio:
" . $result['messaggio'] . "\n";
echo "
\n";
}
for($page = 1; $page <= $tot_pages; $page++) {
if($page == $curr_page) {
$pag .= "$page ";
} else {
$pag .= "$page ";
}
}
echo $pag . "
\n";
}
echo "Firma il Guestbook";
@mysql_close();
?>
Questo file servirà per visualizzare tutti i messaggi degli utenti.
Le prime due variabili, $count_mess e $res_count, ci serviranno per impaginare correttamente i messaggi presenti nel database.
Appena dopo queste due variabili ci troviamo davanti ad un if(), questo controllo ci è utile per vedere se sono presenti o meno messaggi nel database, se ce ne sono li stampa a video, in caso contrario viene fuori un messaggio di allerta.
Ora incontriamo tre variabile, che, anchesse servono per l'impaginazione dei messaggi.
Ed ecco finalmente che arriviamo alla parte 'importante' dello script.
Incontriamo subito la variabile $query che, tramite la funzione mysql_query() di php ci permette di inviare un 'comando' al database.
Subito dopo si nota un ciclo while() che serve per stampare a video il tutto.
Infine, stampiamo a video tutte le pagine tramie un ciclo for() e chiudiamo la connessione al database MySQL.
Nell'articolo precedente abbiamo visto come leggere i messaggi presenti nel database, ora vedremo come inserirli.
Creiamo un file chiamato firma.php e inseriamoci questo codice:
require("config.php");
if ($_POST['sign'] == FALSE) {
echo "
\n";
echo " - Nome *
\n";
echo " - E-Mail *
\n";
echo " - URL
\n";
echo " - Messaggio *
\n";
echo " \n";
echo " \n";
echo "
\n";
} else {
@mysql_query("INSERT INTO gbook (`id`, `nome`, `email`, `url`, `messaggio`, `ip`)
VALUES ('', '" . $_POST['nome'] . "',
'" . $_POST['email'] . "',
'" . $_POST['url'] . "',
'" . $_POST['messaggio'] . "',
'" . $_SERVER['REMOTE_ADDR'] . "');");
echo "Grazie per aver firmato il nostro Guestbook
";
echo "Leggi i messaggi\n";
}
@mysql_close();
?>
In questa parte del codice salta subito agli occhi che c'è un if(), che serve per controllare se una variabile è esistente o meno.
In caso positivo, inserisce il messaggio nel database tramite una query con la funzione mysql_query(), altrimenti visualizza il form.

Nessun commento: