Siamo giunti al punto di poter inserire i dati in un database Mysql non più da PHPMyAdmin ma creando delle pagine web. Pertanto ci occuperemo di Mysql, HTML e PHP.
Fonte delle informazioni presenti in questa guida: esperienza personale e W3CSchool.
Mysql: Il Database e le Tabelle
Tramite PHPMyAdmin predisponiamo le tabelle del nostro database.
Nell’esempio di questa guida ci occupiamo della registrazione dei dati anagrafici degli utenti pertanto creiamo una semplice tabella utenti con i seguenti campi: ID, Nome, Cognome e Data_Nascita.
Create database utenti;
Create table anagrafica(ID int primary key auto_increment, nome varchar(255) not null, cognome varchar(255) not null, data_nascita date not null);
HTML: Creiamo il modulo
Aprire il block notes di Windows o qualsiasi editore per generare file di testo e lo salviamo come scheda.html.
La pagina PHP di destinazione da utilizzare l’abbiamo chiamata inserire.php mentre il metodo utilizzando è POST.
Considerando che id è un campo auto incrementabile non è necessario l’inserimento.
Utilizziamo due semplici input testuale e uno temporale. Tutti i campi sono obbligatori.
Infine, tramite i pulsanti submit consentiamo l’invio mentre con reset cancella tutto ciò che è stato inserito nel modulo.
Da notare che si è preferito l’uso del tag <pre> preformattato così ciò che scriviamo sarà mostrato a schermo.
<html>
<head><title>Scheda Utente</title>
<body>
<pre>
<form action="inserire.php" method="POST" autocompilete="on">
<label for="nome">Nome</label>
<input type="text" name="nome" required>
<label for="cognome">Cognome</label>
<input type="text" name="cognome" required>
<label for="data">Data di Nascita</label>
<input type="date" name="data" required>
<input type="submit" value="INVIA"> <input type="reset" value="CANCELLA TUTTO">
</form>
</pre>
</body>
</html>
PHP: Collegamento al Database
Prima di procedere alla compilazione del file che si occuperà di inserire i dati nel database è necessario collegarsi a Mysql. Lo facciamo creando un unico file da richiamare in tutti i successivi documenti. Inserire un nome di facile collegamento come config o configurazione o db… deve avere in ogni caso estensione .php
Vengono dichiarate 5 variabile, ricordando che una variabile in PHP inizia sempre con il simbolo del dollaro $ e non può includere spazi. La dichiarazione, nel caso di stringhe, avviene con uguale seguito dall’apice ‘ o doppia apice “. Ogni istruzione php va chiusa con il punto e virgola;
L’ultima variabile, chiamata $conn compie la connessione tramite una funzione mysql denominata mysqli con l’aggiunta di tutte le altre variabile dichiarate.
<?php
$host="localhost";
$udb="root";
$pass="";
$db="utenti";
$conn=new mysqli($host,$udb,$pass,$db);
?>
I dati qui sopra riportati si riferiscono alla tipica impostazione di XAMPP dove l’host è appunto locale, il nome di utente è la radice (root) e non è prevista alcuna password.
A questo semplice codice si potrebbe aggiungere una condizione if che permette di verificare se la connessione sia avvenuta correttamente o meno.
Come si può vedere tramite il comando echo è possible stampare del testo, ma anche il contenuto delle variabili a schermo.
if ($conn==TRUE)
{echo "connessione avvenuta correttamente";}
else
{echo "errore";}
PHP: Invio Dati
Eccoci giunti all’atto finale: l’inserimento vero e proprio dei dati nel database.
Apriamo un nuovo file con il nostro editor e salviamolo con il nome inserire.php lo stesso dichiarato nell’attributo action del tag form in html.
Ipotizzando che il file contenente la configurazione del database sia stato salvato come config.php anziché dover riscrivere ogni volta il codice è possibile richiamarlo tramite un altro fondamentale comando di PHP require. Si potrebbe utilizzare anche include. La differenza tra i due comandi è dato dal fatto che require, se non trova il file, non consente il caricamento della pagina, e tenendo presente, che il file di configurazione è di fondamentale importanza riteniamo che sia opportuno usare il require piuttosto che include.
Tramite la supervariabile globale $_POST dichiariamo gli array inviati tramite HTTP POST.
$sql è una variabile dove preparare la query.
Il lancio della query avviene tramite $conn->query($sql) mentre con la variabile $result la utilizziamo per visualizzare un messaggio di successo o di errore a schermo con un if.
<?php
require("config.php");
$n=$_POST["nome"];
$c=$_POST["cognome"];
$d=$_POST["data"];
$sql="Insert into anagrafica(nome, cognome, data_nascita) values('$n','$c','$d');";
$result=$conn->query($sql);
if ($result==TRUE)
{
echo "Hai inserito i seguenti dati correttamente: $n, $c e $d";
}
else
{
echo "Errore nella connessione al database";
}
$conn->close();
?>
Differenza tra metodo GET e POST
Nell’esempio di questa guida abbiamo usato il metodo POST anziché GET ecco perché:
- con il metodo GET i dati inseriti dall’utente vengono mostrati nell’indirizzo url, con un rischio evidente di poter essere catturati tramite metodo di sniffing.
Ecco come viene visualizzata l’url dopo l’invio tramite metodo GET:
http://localhost/mio/inserire.php?nome=Alessandro&cognome=Alessandro&data=1900-01-01 - con il metodo POST i dati NON vengono visualizzati nell’indirizzo URL.
Ecco l’URL dopo l’invio mediante metodo POST:
http://localhost/mio/inserire.php
Il nuovo buono Premium è sottoscrivibile dal 14 novembre, la nuova liquidità che concorre, invece, inizia dall'8 novembre. Ulteriori dettagli…
Sono venuto a conoscenza il 13/11/2024 del 3% tramite posta elettronica ma la scadenza indicata è del 14/11/2024 . Quale…
Ho lo stesso problema con una sim poste mobile: tracker non abilitato. Sarò costretto a fare il reso.
L'ho ricaricato completamente, ma non sono mai riuscita ad accenderlo.
grazi delle vostre informazioni mi son state utili, visto che nel mio caso sono vent'anni che non adopero il computer…