Se io non stampo la query mi da tutto ok e indirizzo l'utente in una pagina che la compilazione è avvenuta con successo ma io posso modificare il mio codice e adottare il tuo metodo descritto a inizio discussione?
per il controllo sui campi ti basta usare una delle funzioni di php per ripulire da caratteri indesiderati o per verificarne la lungezza ,ma dare in pasto tutte le stringhe ad un espressione regolare mi pare troppo dispendioso
cmq ripeto secondo me non servono puoi semplicemente fare cosi
PHP:
// se non è settato o se è vuoto
if (!isset($_POST['cognome']) || empty($_POST['cognome'])) {
//reindirizzi
header("Location: insert.php?alert=2");
die();
} else {
// altrimenti ripulisci il valore
$_POST['cognome'] = mysql_real_escape_string($_POST['cognome']);
}
ti rimando ad un post di Alessandro se vuoi crearti una funzione piu accurata per ripulire le stringhe prima di inserirle nel database
Adesso do un occhiata al post di alessandro mentre se vorrei completare la registrazione che ovviamente ci saranno altri campi non solo questi 5, se vorrei completarla con un email di converma che arrivi all'utente e lui cliccando sul link arriva in una pagina dove ci sarà il testo che ad esampio l'iscrizione è avvenuto con successo
Ho seguito il tuo consiglio sullo script da te postato in effetti non serve a nulla avere ogni campo un alert e poi viene difficile gestirli, mentre per quan riguarda un email di conferma sapreste darmi un aiuto?
non è semplicissimo, alcuni passaggi li ignoro anchio
in linea di massima dovrebbe funzionare cosi
aggiungi un campo alla tabella confermato int 1 ( sara 1 o 0 ) oppure enum('1','0') io preferisco int 1
subito dopo la insert che imposterai a 0 invii una mail con un link ad una pagina di conferma
dove devi verificare se la mail corrisponde al record 0 che hai nel database ( sicuramente ci andra qualche altro controllo )
se tutto va a buon fine imposti il campo confermato a 1 con un update
nel login dovrai verificare che il campo sia settato a 1
prova a buttar giu qualcosa e apri una nuova discussione se trovi qualche problema
Criric non so se è il caso di aprire una nuova discussione vorrei ultimare lo script prima di inserire la conferma iscrizione via email con una verifica del campo codicefiscale e email o sola email presenti sul database ti posto il codice con il suo relativo messaggio di errore che mi da
PHP:
<?php
$EmailPattern = "^([a-zA-Z0-9])+([a-zA-Z0-9]+[-_\.]?)*([a-zA-Z0-9])+(@)([a-zA-Z0-9])+([a-zA-Z0-9]+[-_\.]?)*([a-zA-Z0-9])+(\.[a-z]{2,4})$";
if (empty($_POST['cognome']) OR empty($_POST['nome']) OR empty($_POST['codicefiscale']) OR empty($_POST['sesso']) OR empty($_POST['statocivile']) OR empty($_POST['titolostudio']) OR empty($_POST['datanascita']) OR empty($_POST['paesenascita']) OR empty($_POST['comunenascita']) OR empty($_POST['provincianascita']) OR empty($_POST['comuneresidenza']) OR empty($_POST['provinciaresidenza']) OR empty($_POST['indirizzo']) OR empty($_POST['numerocivico']) OR empty($_POST['telefono']) OR empty($_POST['cellulare']) OR empty($_POST['email']))
{
header("Location: preiscrizione-step1.php?alert=1");
die;
}
// se non è settato o se è vuoto
if (!isset($_POST['cognome']) || empty($_POST['cognome'])) {
//reindirizzi
header("Location: preiscrizione-step1.php?alert=1");
die();
} else {
// altrimenti ripulisci il valore
$_POST['cognome'] = mysql_real_escape_string($_POST['cognome']);
}
if (!isset($_POST['nome']) || empty($_POST['nome'])) {
header("Location: preiscrizione-step1.php?alert=1");
die();
} else {
$_POST['nome'] = mysql_real_escape_string($_POST['nome']);
}
if (!isset($_POST['codicefiscale']) || empty($_POST['codicefiscale'])) {
//reindirizzi
header("Location: preiscrizione-step1.php?alert=1");
die();
} else {
$_POST['codicefiscale'] = mysql_real_escape_string($_POST['codicefiscale']);
}
if ($_POST['sesso'] != "M" && $_POST['sesso'] != "F")
{
header("Location: preiscrizione-step1.php?alert=1");
die;
}
if ($_POST['statocivile'] != "Celibe/Nubile" && $_POST['statocivile'] != "Coniugato/a" && $_POST['statocivile'] != "Vedovo/a" && $_POST['statocivile'] != "Separato/a")
{
header("Location: preiscrizione-step1.php?alert=1");
die;
}
if ($_POST['titolostudio'] != "Licensa-Media" && $_POST['titolostudio'] != "Diploma" && $_POST['titolostudio'] != "Laurea/1Livello" && $_POST['titolostudio'] != "Laurea/2Livello")
{
header("Location: preiscrizione-step1.php?alert=1");
die;
}
if ($_POST['titolostudio'] != "Licensa-Media" && $_POST['titolostudio'] != "Diploma" && $_POST['titolostudio'] != "Laurea/1Livello" && $_POST['titolostudio'] != "Laurea/2Livello")
{
header("Location: preiscrizione-step1.php?alert=1");
die;
}
if (!isset($_POST['datanascita']) || empty($_POST['datanascita'])) {
header("Location: preiscrizione-step1.php?alert=1");
die();
} else {
$_POST['datanascita'] = mysql_real_escape_string($_POST['datanascita']);
}
if (!isset($_POST['paesenascita']) || empty($_POST['paesenascita'])) {
header("Location: preiscrizione-step1.php?alert=1");
die();
} else {
$_POST['paesenascita'] = mysql_real_escape_string($_POST['paesenascita']);
}
if (!isset($_POST['comunenascita']) || empty($_POST['comunenascita'])) {
header("Location: preiscrizione-step1.php?alert=1");
die();
} else {
$_POST['comunenascita'] = mysql_real_escape_string($_POST['comunenascita']);
}
if (!isset($_POST['provincianascita']) || empty($_POST['provincianascita'])) {
header("Location: preiscrizione-step1.php?alert=1");
die();
} else {
$_POST['provincianascita'] = mysql_real_escape_string($_POST['provincianascita']);
}
if (!isset($_POST['comuneresidenza']) || empty($_POST['comuneresidenza'])) {
header("Location: preiscrizione-step1.php?alert=1");
die();
} else {
$_POST['comuneresidenza'] = mysql_real_escape_string($_POST['comuneresidenza']);
}
if (!isset($_POST['provinciaresidenza']) || empty($_POST['provinciaresidenza'])) {
header("Location: preiscrizione-step1.php?alert=1");
die();
} else {
$_POST['provinciaresidenza'] = mysql_real_escape_string($_POST['provinciaresidenza']);
}
if (!isset($_POST['indirizzo']) || empty($_POST['indirizzo'])) {
header("Location: preiscrizione-step1.php?alert=1");
die();
} else {
$_POST['indirizzo'] = mysql_real_escape_string($_POST['indirizzo']);
}
if (!isset($_POST['numerocivico']) || empty($_POST['numerocivico'])) {
header("Location: preiscrizione-step1.php?alert=1");
die();
} else {
$_POST['numerocivico'] = mysql_real_escape_string($_POST['numerocivico']);
}
if (!isset($_POST['telefono']) || empty($_POST['telefono'])) {
header("Location: preiscrizione-step1.php?alert=1");
die();
} else {
$_POST['telefono'] = mysql_real_escape_string($_POST['telefono']);
}
if (!isset($_POST['cellulare']) || empty($_POST['cellulare'])) {
header("Location: preiscrizione-step1.php?alert=1");
die();
} else {
$_POST['cellulare'] = mysql_real_escape_string($_POST['cellulare']);
}
if (!ereg($EmailPattern, $_POST['email']))
{
header("Location: preiscrizione-step1.php?alert=2");
die;
}
// richiamo il file di configurazione
require 'connessione.php';
// richiamo lo script responsabile della connessione a MySQL
require 'config.inc';
mysql_select_db("miodatabase");
//Verifico che il codicefiscale e email non siano già presenti sul DataBase
$query = "SELECT * FROM preiscrizione-utenti " .
"WHERE codicefiscale = '" . $_POST['codicefiscale'] . "'" .
"OR email = '" . $_POST['email'] . "'";
$result = mysql_query($query) or die (mysql_error());
if (mysql_num_rows($result) != 0)
{
while ($row = mysql_fetch_array($result))
{
//Se il codicefiscale esiste
if ($row['codicefiscale'] == $codicefiscale)
{
header("Location: preiscrizione-step1.php?alert=2");
die;
}
//Se l'email esiste
if ($row['email'] == $_POST['email'])
{
header("Location: preiscrizione-step1.php?alert=2");
die;
}
}
}
else
{
$query = "INSERT INTO `miodatabase`.`preiscrizione-utenti`
SET cognome = '" . $_POST['cognome'] . "',
nome = '" . $_POST['nome'] . "',
codicefiscale = '" . $_POST['codicefiscale'] . "',
sesso = '" . $_POST['sesso'] . "',
statocivile = '" . $_POST['statocivile'] . "',
titolostudio = '" . $_POST['titolostudio'] . "',
datanascita = '" . $_POST['datanascita'] . "',
paesenascita = '" . $_POST['paesenascita'] . "',
comunenascita = '" . $_POST['comunenascita'] . "',
provincianascita = '" . $_POST['provincianascita'] . "',
comuneresidenza = '" . $_POST['comuneresidenza'] . "',
provinciaresidenza = '" . $_POST['provinciaresidenza'] . "',
indirizzo = '" . $_POST['indirizzo'] . "',
numerocivico = '" . $_POST['numerocivico'] . "',
telefono = '" . $_POST['telefono'] . "',
cellulare = '" . $_POST['cellulare'] . "',
email = '" . $_POST['email'] . "'";
// invio la query
$result = mysql_query($query);
header("Location: preiscrizione-step2.php");
}
?>
Questa è solo la parte che ho scritto per la verifica
PHP:
//Verifico che il codicefiscale e email non siano già presenti sul DataBase
$query = "SELECT * FROM preiscrizione-utenti " .
"WHERE codicefiscale = '" . $_POST['codicefiscale'] . "'" .
"OR email = '" . $_POST['email'] . "'";
$result = mysql_query($query) or die (mysql_error());
if (mysql_num_rows($result) != 0)
{
while ($row = mysql_fetch_array($result))
{
//Se il codicefiscale esiste
if ($row['codicefiscale'] == $codicefiscale)
{
header("Location: preiscrizione-step1.php?alert=2");
die;
}
//Se l'email esiste
if ($row['email'] == $_POST['email'])
{
header("Location: preiscrizione-step1.php?alert=2");
die;
}
}
}
else
{
Se tolgo quella tutto funziona il controllo dei campi e l'inserimento sul database ma come faccio per la verifica?
il messaggio di errore è questo:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-utenti WHERE codicefiscale = 'bgdfsgafdgd'OR email = 'io@virgilio.it'' at line 1