ho trovato questo tutorial:
Codice PHP:
<?php
if($_POST) {
inserisci_record();
}
else {
mostra_form();
}
function inserisci_record()
{
// richiamo il file di configurazione
require 'config.php';
// richiamo lo script responsabile della connessione a MySQL
require 'connect.php';
// recupero i campi di tipo "stringa"
$nome = trim($_POST['nome']);
$email = trim($_POST['email']);
$messaggio = trim($_POST['messaggio']);
// verifico se devo eliminare gli slash inseriti automaticamente da PHP
if(get_magic_quotes_gpc())
{
$nome = stripslashes($nome);
$email = stripslashes($email);
$messaggio = stripslashes($messaggio);
}
$nome = mysql_real_escape_string($nome);
$email = mysql_real_escape_string($email);
$messaggio = mysql_real_escape_string($messaggio);
// recupero gli altri campi del form
$sesso = isset($_POST['sesso']) ? intval($_POST['sesso']) : 0;
$newsletter = isset($_POST['newsletter']) ? 1 : 0;
$attivita = intval($_POST['attivita']);
// verifico la presenza dei campi obbligatori
if(!$nome)
{
$messaggio = urlencode("Non hai inserito il nome");
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
exit;
}
// preparo la query
$query = "INSERT INTO utenti (nome,email,sesso,newsletter,attivita,messaggio)
VALUES ('$nome','$email',$sesso,$newsletter,$attivita,'$messaggio')";
// invio la query
$result = mysql_query($query);
// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}
// recupero l'id autoincrement generato da MySQL per il nuovorecord inserito
$id_inserito = mysql_insert_id();
// chiudo la connessione a MySQL
mysql_close();
$messaggio = urlencode("Inserimento effettuato con successo (ID=$id_inserito)");
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
}
function mostra_form()
{
// mostro un eventuale messaggio
if(isset($_GET['msg']))
echo '[b]'.htmlentities($_GET['msg']).'[/b]
';
?>
<form name="form_registrazione" method="post" action="">
<label>nome:
<input name="nome" type="text" />
</label>
(obbligatorio)
<label>email:
<input name="email" type="text" />
</label>
</p>
Sesso:
<label>
<input type="radio" name="sesso" value="1" />
M</label>
<label>
<input type="radio" name="sesso" value="2" />
F</label>
</p>
<label>inviami newletter:
<input name="newsletter" type="checkbox" value="1" />
</label>
</p>
<label>attività:
<select name="attivita">
<option value="0">:: seleziona ::</option>
<option value="1">studente</option>
<option value="2">lavoratore</option>
<option value="3">disoccupato</option>
</select>
</label>
</p>
<label>messaggio:
<textarea name="messaggio" cols="40" rows="5"></textarea>
</label>
</p>
<input name="invia" type="submit" value="Invia" />
</p>
</form>
<?php
}
?>
In questo modo dici di proteggere:
Codice PHP:
if(get_magic_quotes_gpc())
{
$nome = stripslashes($nome);
$email = stripslashes($email);
$messaggio = stripslashes($messaggio);
}
$nome = mysql_real_escape_string($nome);
$email = mysql_real_escape_string($email);
$messaggio = mysql_real_escape_string($messaggio);
e poi alla fine passare quei valori, diciamo cosi "protetti" da mysql_real_escape_string, nella SELECT per l'autenticazione?