Php problema su inserimento dati mysql

EffeElle

Utente Attivo
25 Set 2012
48
0
0
Mi da questo:
Deprecated: Function ereg() is deprecated in C:\wamp\www\accademia-del-sacro\admin\insert_data.php on line 60, 66, 72
come risolvo
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
E' la prima risposta che ti ho dato
Mi sembra che ereg si puo sostitutire con preg_match() dai un occhiata alla documentazione

o meglio cambia controllo
 

EffeElle

Utente Attivo
25 Set 2012
48
0
0
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?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
certo che puoi

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
 

EffeElle

Utente Attivo
25 Set 2012
48
0
0
Mi puoi dare un dritta per adottarlo nel mio codice non saprei propio come fare
 

EffeElle

Utente Attivo
25 Set 2012
48
0
0
Criric come posso modificare
PHP:
$NamePattern = "^[a-zA-Z]{3,20}$";
per avere lo spazio nel nome o cognome ad esempio La Pira, Maria Grazia non mi accetta lo spazio e le parole accendate òàèùì o l'apostrofo
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Non sono bravo con le espressioni regolari

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
 

EffeElle

Utente Attivo
25 Set 2012
48
0
0
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
 

EffeElle

Utente Attivo
25 Set 2012
48
0
0
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?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
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
 

EffeElle

Utente Attivo
25 Set 2012
48
0
0
Provo a buttare qualcosa e apro una nuova discussione alla prossima grazie per il tuo aiuto..:)
 

EffeElle

Utente Attivo
25 Set 2012
48
0
0
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 = '[email protected]'' at line 1
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
PHP:
$query = "SELECT * FROM preiscrizione-utenti " .
          "WHERE codicefiscale = '" . $_POST['codicefiscale'] . "'" .
          "OR email = '" . $_POST['email'] . "'";

stacca WHERE ed OD dalle virgolette.

Quando da quel tipo di errore è sempre una virgoletta maledetta
 

Monital

Utente Attivo
15 Apr 2009
778
2
18
Ho provato a staccare ma non va sarà sbagliata la sintassi che utilizzo

non ho testato

prova

PHP:
$query = "SELECT * FROM preiscrizione-utenti WHERE codicefiscale = '" . $_POST['codicefiscale'] . "' OR email = '" . $_POST['email'] . "'";
 

EffeElle

Utente Attivo
25 Set 2012
48
0
0
Non va niente da fare, non saprei saranno 4 righe di codice ma nn so propio
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
ciao,
un altro buon metodo per individuare lgli errore in una query è stampandola
PHP:
echo $query;

e postala
 

EffeElle

Utente Attivo
25 Set 2012
48
0
0
dove devo inserire echo questo è il codice che ho scritto ma mi sa che è proprio sbagliato

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
{
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
dopo la qquery
PHP:
$query = "SELECT * FROM preiscrizione-utenti " .
          "WHERE codicefiscale = '" . $_POST['codicefiscale'] . "'" .
          "OR email = '" . $_POST['email'] . "'"; 

echo $query;

ma non avevi anche il nome del database?
Codice:
SELECT * FROM accademiadelsacro.preiscrizione-utenti
 
Discussioni simili
Autore Titolo Forum Risposte Data
P [PHP] Problema inserimento nuove chiavi in array PHP 2
N [PHP/MySQL] Problema inserimento stringhe ' or ', ' and ' PHP 2
K [php] Problema con inner join PHP 4
K [PHP] Problema con variabili concatenate. PHP 1
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
D problema php mysql PHP 1
D problema php mysql PHP 1
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
A Problema checkout carrello php PHP 2
G Problema caricamento tabelle MySql da PhP PHP 0
M Problema con php per calcolo costo percentuale PHP 7
O Problema Formmail in PHP su Aruba PHP 0
WebmasterFioriniAndrea Chat e php [problema] PHP 3
L [PHP] Problema con Telegram PHP 1
WebmasterFioriniAndrea [PHP] Problema che non mi fa vedere niente PHP 2
K Help: problema con uno script di booking in php! PHP 0
A [PHP] Problema query insert [RISOLTO] PHP 14
N [Apache] problema con estensione php Apache 0
C [PHP] Problema con download file PHP 0
M [PHP] Problema con preg_match PHP 1
gandalf1959 [PHP] problema con l'utilizzo di Header PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
M [PHP] Problema con query select PHP 2
L Problema jQuery validation AJAX (PHP 7) PHP 6
L Problema funzione mail() PHP PHP 3
S [PHP] Problema con istruzione "use" PHP 23
A Problema PHP PHP 1
T [php] problema creazione query select-where PHP 5
M [PHP] problema if PHP 3
L [PHP] Problema su codice o server PHP 5
T [PHP] problema maggiore e minore PHP 4
Cosina [PHP] fwrite problema con le parole accentate PHP 9
M [PHP] Problema search form PHP 3
F [PHP] Problema con number_format PHP 3
L [PHP] problema count messo in una funzione. PHP 1
P [PHP] Progettino CRUD di esercitazione. Problema su $_FILE. PHP 9
trattorino [PHP] problema entrata immagini insert PHP 1
C Apache Cordova problema con php Programmazione 1
trattorino problema raccapricciante php conteggio query PHP 4
T PHP+MYSQL: problema con quelle maledette lettere accentate... PHP 5
F [PHP] Problema con array multidimensionale PHP 4
F Problema con pagine login in PHP PHP 2
M [PHP] Problema script ricezione e invio posta... PHP 1
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [PHP] Problema Invio Email Elseif PHP 2
A [PHP] Problema invio mail con funzione mail() PHP 3
gandalf1959 problema con la codifica caratteri accentati e speciali tra php e mysql PHP 3
L [PHP] Problema Script 'Not Found' PHP 4
webmachine [PHP][MYSQL] Problema con le SELECT PHP 5
alessandra86 [PHP] Popolamento database con form ricorsivi - problema array (foreach ) PHP 5

Discussioni simili