errore in inserimento dati in Data Base

  • Creatore Discussione Creatore Discussione asevenx
  • Data di inizio Data di inizio

asevenx

Utente Attivo
7 Nov 2009
312
0
16
salve, ho creato un form per l'inserimento di alcuni dati, e rispettivo file per l'inserimento nel db. Sicuramente c'è un errore perché i dati non vengono registrati nel db, e talaltro non ho a video nessun tipo di errore ma bensì una pagina tutta bianca.

la pagina php è la seguente
PHP:
//dati form
$squadra = $_POST['squadra'];
$tel1 = $_POST['tel1'];
$tel2 = $_POST['tel2'];
$email = $_POST['email'];
$nome1 = $_POST['nome1'];
$cognome1 = $_POST['cognome1'];
$nome2 = $_POST['nome2'];
$cognome2 = $_POST['cognome2'];
$nome3 = $_POST['nome3'];
$cognome3 = $_POST['cognome3'];
$nome4 = $_POST['nome4'];
$cognome4 = $_POST['cognome4'];
$nome5 = $_POST['nome5'];
$cognome5 = $_POST['cognome5'];
$nome6 = $_POST['nome6'];
$cognome6 = $_POST['cognome6'];
$nome7 = $_POST['nome7'];
$cognome7 = $_POST['cognome7'];
$nome8 = $_POST['nome8'];
$cognome8 = $_POST['cognome8'];
$nome9 = $_POST['nome9'];
$cognome9 = $_POST['cognome9'];
$nome10 = $_POST['nome10'];
$cognome10 = $_POST['cognome10'];
$nome11 = $_POST['nome11'];
$cognome11 = $_POST['cognome11'];
$nome12 = $_POST['nome12'];
$cognome12 = $_POST['cognome12'];
$nome13 = $_POST['nome13'];
$cognome13 = $_POST['cognome13'];
$nome14 = $_POST['nome14'];
$cognome14 = $_POST['cognome14'];
$nome15 = $_POST['nome15'];
$cognome15 = $_POST['cognome15'];

//connessione e invio al DB
$connessione = mysql_connect($host,$username,$password) or die("Connessione DB fallita"); 
mysql_select_db($database,$connessione) or die("Selezione DB fallita");

//controlli

//inserisci i dati del form
$caricasquadre = "INSERT INTO $tabella(squadra,tel1,tel2,email,nome1,cognome1,nome2,cognome2,nome3,cognome3,nome4,cognome4,nome5,
cognome5,nome6,cognome6,nome7,cognome7,nome8,cognome8,nome9,cognome9,nome10,cognome10,nome11,cognome11,nome12,cognome12,nome13,
cognome13,nome14,cognome14,nome15,cognome15)
VALUES('$squadra,'$tel1','$tel2','$email','$nome1','$cognome1','$nome2','$cognome2','$nome3','$cognome3','$nome4','$cognome4',
'$nome5','$cognome5','$nome6','$cognome6','$nome7','$cognome7','$nome8','$cognome8','$nome9','$cognome9','$nome10','$cognome10',
'$nome11','$cognome11','$nome12','$cognome12','$nome13','$cognome13','$nome14','$cognome14','$nome15','$cognome15')
"; 

mysql_query($caricasquadre) or die (mysql_error('Errore...'));  
echo "squadra inserita correttamente!";

sapreste dirmi che errore faccio? Come struttura mi sembra che sia la stessa che uso sempre. grazie
 
$squadra = $_POST['squadra'];
$tel1 = $_POST['tel1'];
$tel2 = $_POST['tel2'];
$email = $_POST['email'];
$nome1 = $_POST['nome1'];
$cognome1 = $_POST['cognome1'];
$nome2 = $_POST['nome2'];
$cognome2 = $_POST['cognome2'];
$nome3 = $_POST['nome3'];
$cognome3 = $_POST['cognome3'];
$nome4 = $_POST['nome4'];
$cognome4 = $_POST['cognome4'];
$nome5 = $_POST['nome5'];
$cognome5 = $_POST['cognome5'];
$nome6 = $_POST['nome6'];
$cognome6 = $_POST['cognome6'];
$nome7 = $_POST['nome7'];
$cognome7 = $_POST['cognome7'];
$nome8 = $_POST['nome8'];
$cognome8 = $_POST['cognome8'];
$nome9 = $_POST['nome9'];
$cognome9 = $_POST['cognome9'];
$nome10 = $_POST['nome10'];
$cognome10 = $_POST['cognome10'];
$nome11 = $_POST['nome11'];
$cognome11 = $_POST['cognome11'];
$nome12 = $_POST['nome12'];
$cognome12 = $_POST['cognome12'];
$nome13 = $_POST['nome13'];
$cognome13 = $_POST['cognome13'];
$nome14 = $_POST['nome14'];
$cognome14 = $_POST['cognome14'];
$nome15 = $_POST['nome15'];
$cognome15 = $_POST['cognome15'];
Creare un array magari no? xD


Comunque metti in cima alla pagina error_reporting(E_ALL) e fammi sapere

Ps: lo script è vulnerabile a sql injection, quando hai trovato l'errore io opterei per fare cosi:
-Metti tutte le variabili in un array e usa addslashes(stripslashes($var)) per renderle sicure
 
Ultima modifica:
PHP:
mysql_query($caricasquadre) or die (mysql_error('Errore...'));
non ha senso, al limite:
PHP:
mysql_query($caricasquadre) or die("Errore...\n<br />Query: " . $caricasquadre . "<br />\nDettagli: (" . mysql_errno() . ") " . mysql_error());
 
Ultima modifica:
ma bensì una pagina tutta bianca.

Potrebbe essere un richiamo di una pagina o di una classe che non esiste

e tutto li il codice di quella pagina?
 
Intanto ingrazio tutti per le risposte. Allora ho provato come mi avete detto, cioè inserendo error_reporting(E_ALL) in cima e apportando la modifica suggerita da Eliox e ho questo errore a video:

Errore...
Query: INSERT INTO squadra(squadra,tel1,tel2,email,nome1,cognome1,nome2,cognome2,nome3,cognome3,nome4,cognome4,nome5, cognome5,nome6,cognome6,nome7,cognome7,nome8,cognome8,nome9,cognome9,nome10,cognome10,nome11,cognome11,nome12,cognome12,nome13, cognome13,nome14,cognome14,nome15,cognome15) VALUES('dfg,'124','124','sfdsg','dfg','dfg','dfgdfs','gdsf','gdsf','gdf','dfsgdf','dfs', 'dfsgdfs','dfg','gdfg','dfsgdfs','gdfsg','df','dfgdfs','dsfg','gdsfg','gdfgdfgdfs','dsfgsdfg','sdf', 'gdfsg','fgdfsg','dfdfsgd','gdfsg','fd','gdf','gfd','dfgdf','dsfdfdfsdfsgsdfgdfgsdfg','fdgdf')
Dettagli: (1064) 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 '124','124','sfdsg','dfg','dfg','dfgdfs','gdsf','gdsf','gdf','dfs
ovviamente ho messo valori a caso

Creare un array magari no? xD
non so usare molto bene gli array
 
Ciao,
come segnalato dall'errore che hai postato

Codice:
VALUES('dfg,'124',

manca un apice dopo squadra

PHP:
VALUES('$squadra,'$tel1',
 
Dettagli: (1064) 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 '124','124','sfdsg','dfg','dfg','dfgdfs','gdsf','g dsf','gdf','dfs

Puo essere causato dagli apostrofi non coperti (ti ho postato prima il codice per renderli sicuri)

Per l'altro errore prova a fare cosi

dopo questa riga INSERT INTO tabella(campo,campo...

fai cosi: `campo`,`campo`,...

e correggi anche l'errore detto da criric
 
ok, effettivamente era quello il problema, maledetti apici, ci casco sempre XD
Comunque ho creato la mia array (sperando di averla fatta bene, però funziona)
PHP:
$cognome = array(1 => 'cognome1','cognome2','cognome3','cognome4','cognome5','cognome6','cognome7','cognome8','cognome9','cognome10',
'cognome11','cognome12','cognome13','cognome14','cognome15',);
ora come faccio a renderla sicura?
 
ok, effettivamente era quello il problema, maledetti apici, ci casco sempre XD
Comunque ho creato la mia array (sperando di averla fatta bene, però funziona)
PHP:
$cognome = array(1 => 'cognome1','cognome2','cognome3','cognome4','cognome5','cognome6','cognome7','cognome8','cognome9','cognome10',
'cognome11','cognome12','cognome13','cognome14','cognome15',);
ora come faccio a renderla sicura?
Non serve richiamare un valore in questo caso comunque si dovrebbe fare ad ogni nome se vuoi darli un valore
quindi correggi l'array levando 1 => e poi usa un foreach cosi:

PHP:
foreach($cognome as $cogn) return addslashes(stripslashes($cogn));
//se decidi di usare i valori fai ($cognome as $cogn=>$var) e sostituisci $cogn con $var nella funzione
 
Scusate un attimo,

nell'array ci vorrebbero le variabili dei dati inviati via post quindi con il $ davanti

e cmq il post è già un array

si fa prima a ciclare direttamente il post

PHP:
foreach ($_POST as $key => $value) {
       $_POST[$key] = addslashes(stripslashes($value));
}
 
Scusate un attimo,

nell'array ci vorrebbero le variabili dei dati inviati via post quindi con il $ davanti

e cmq il post è già un array

si fa prima a ciclare direttamente il post

PHP:
foreach ($_POST as $key => $value) {
       $_POST[$key] = addslashes(stripslashes($value));
}
Non ci avevo pensato è meglio cosi allora, cosi basiamo tutto sull'array dei post
 
Non so se ho capito bene, ho provato a fare così...
PHP:
$nomearray = array(1 => 'nome1','nome2','nome3','nome4','nome5','nome6','nome7','nome8','nome9','nome10','nome11','nome12','nome13','nome14','nome15',);

foreach ($_POST as $nome => $arraynome) { 
       $_POST[$nome] = addslashes(stripslashes($arraynome)); 
}

In questo modo mi fa inserire i nomi nel database, ma se volessi applicare un filtro per evitare l'inserimento di un nome già presente nel database come faccio? Premetto che ho creato il form con 15 input (nome1, nome2 ecc) che registrano i dati in una tabella del db, nel campo "nome", quindi la ricerca va effettuata su di un unico campo. Ho provato in questo modo ma non funziona...
PHP:
$cerca2 = "SELECT * FROM $tabella2 WHERE nome='$nome'"; 
$risultato2 = mysql_query($cerca2,$connessione);
$riga2 =mysql_num_rows($risultato2); 
if ($riga2>0){ 
	while($resrow2 = mysql_fetch_row($risultato2))
		{
		$nome= addslashes($resrow2[1]);
		echo "il giocatore " .$nome. " è già presente nel database";
		}
	
	} else {
 
PHP:
WHERE nome LIKE '%$nome%'

vuol dire che contenga la parola $nome

PS: per un nuovo problema dovresti aprire una nuova discussione
 

Discussioni simili