Php problema su inserimento dati mysql

  • Creatore Discussione Creatore Discussione EffeElle
  • Data di inizio Data di inizio
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
 
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
 
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?
 
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
 
Mi puoi dare un dritta per adottarlo nel mio codice non saprei propio come fare
 
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
 
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
 
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
 
Provo a buttare qualcosa e apro una nuova discussione alla prossima grazie per il tuo aiuto..:)
 
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
 
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
 
ciao,
un altro buon metodo per individuare lgli errore in una query è stampandola
PHP:
echo $query;

e postala
 
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
{
 
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