Controllo FORM e invio dati al DB

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
ciao
posta il dump della tabella

tutto giusto

Notice: Undefined variable: salva_file in C:\Program Files (x86)\EasyPHP-12.1\www\Tropina\form\formTxT.php on line 138

Notice: Undefined variable: salva_file in C:\Program Files (x86)\EasyPHP-12.1\www\Tropina\form\formTxT.php on line 138

Notice: Undefined variable: salva_file in C:\Program Files (x86)\EasyPHP-12.1\www\Tropina\form\formTxT.php on line 138

Notice: Undefined variable: salva_file in C:\Program Files (x86)\EasyPHP-12.1\www\Tropina\form\formTxT.php on line 138
string(386) "INSERT INTO immobile(nickname, denominazione, indirizzo, localita, descrizione, estensioneTerreno, estensioneSupAbit, tipo, status, referente, nCamere, nBagni, prezzo, speseCondominiali, giardino, immagine,img2,img3,img4, data, ins_mail, boxauto) VALUES('gino','bifamiliare','','','bello spazioso','0','0','ciao','vendita','','0','0','500','0','','',',','','10101999','[email protected]','')"
Notice: Undefined variable: messaggio in C:\Program Files (x86)\EasyPHP-12.1\www\Tropina\form\formTxT.php on line 140

Notice: Undefined variable: mess_err in C:\Program Files (x86)\EasyPHP-12.1\www\Tropina\form\formTxT.php on line 140
i tuoi dati sono stati inseriti

questo quello che mi compare, (non preoccuparti dei Values '' o '0' , li ho messi apposta per provare )

riga 138 -> è quella con VALUES ('$nome' ...ecc..
riga 140 -> è quella con $err=$mess_err.$messaggio......
 

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
ciao
se non sbaglio hai fatto sparire il conteggio $cnt e l'inizializzazione dell'array $salva_file=array("","","","")
Ho messo come dici tu:confused: ...boh mi sembra strano
cè sia
PHP:
// percosrso destinazione immagini la cartella deve esistere e il percorso deve essere corretto
		$dir = "../images_immobili";
		$salva_file=array("","","","");
che

PHP:
if (!move_uploaded_file($v, "$dir/$nomefile")) {
								$mess_err .= "<br/>Impossibile spostare il file $k";
								} else {
									$mess_err.= "<br/>Immagine $k caricata con successo<br />"; 
									$cnt=0;
									$salva_file[$cnt]="images_immobili/$nomefile";//$cnt va da 0 al numero di immagini caricate -1 
									}
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
come ti sembra strano?
se porti fuori dal foreach di caricamento immagine (come giusto) l'istruzioni di insert, in qualche modo devi portarti dietro il nome dei file (se caricati) quindi:
l'istruzione
$salva_file=array("","","","");
crea un array fatto così
$salva_file[0] =>""
$salva_file[1] =>""
$salva_file[2] =>""
$salva_file[3] =>""
cioè con valori vuoti, ma che esistono
poi uso il contatore che avevi messo per valorizzarli col nome del/dei file/s se ci sono
ipotizziamo che l'utente inserisca due foto tu ottieni
$salva_file[0] =>"images_immobili/pinco.jpg"
$salva_file[1] =>"images_immobili/pallo.jpg"
$salva_file[2] =>""
$salva_file[3] =>""
quando vai a fare l'insert
.....VALUES('..','.....','$salva_file[0]','$salva_file[1],'$salva_file[2],'$salva_file[3]','...')";
non corri il rischio che per l'indice 3 e 4 ti dia "undefinited index (o variable) ... on line...
tutto questo perchè l'utente puo caricare "nessuna immagine" o sino ad un max di 4.
l'unica cosa che devi verificare è che in tabella i campi relativi sia settati a NULL no a NOT NULL
 

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
ciao
come ti sembra strano?
se porti fuori dal foreach di caricamento immagine (come giusto) l'istruzioni di insert, in qualche modo devi portarti dietro il nome dei file (se caricati) quindi:
l'istruzione
$salva_file=array("","","","");
crea un array fatto così
$salva_file[0] =>""
$salva_file[1] =>""
$salva_file[2] =>""
$salva_file[3] =>""
cioè con valori vuoti, ma che esistono
poi uso il contatore che avevi messo per valorizzarli col nome del/dei file/s se ci sono
ipotizziamo che l'utente inserisca due foto tu ottieni
$salva_file[0] =>"images_immobili/pinco.jpg"
$salva_file[1] =>"images_immobili/pallo.jpg"
$salva_file[2] =>""
$salva_file[3] =>""
quando vai a fare l'insert
.....VALUES('..','.....','$salva_file[0]','$salva_file[1],'$salva_file[2],'$salva_file[3]','...')";
non corri il rischio che per l'indice 3 e 4 ti dia "undefinited index (o variable) ... on line...
tutto questo perchè l'utente puo caricare "nessuna immagine" o sino ad un max di 4.
l'unica cosa che devi verificare è che in tabella i campi relativi sia settati a NULL no a NOT NULL

ci ho capito poco :(
io sono a questo punto:
PHP:
if(isset($_POST['submit'])){ 
    $err="";//metti a vuoto una stringa 
// ......Qui vanno i vari if else relativi al controllo del testo...
  if($err==""){
  //......Qui ci va il controllo relativi all'immagine( che non ho ben capito per i contatori)
 }
// connex al db
// sql e INSERT TO
} // chiusa graffa dell ISSET

o sbaglio? riusciresti a scrivermi meglio il caricamento img con i contatori e gli array che dici tu?
graziee
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
scusa ho guardato un po' meglio: stai facendo un po' di caos senza contare che stai mescolando mysqli a oggetti con mysql procedurale. o uno o l'altro
 

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
ciao
scusa ho guardato un po' meglio: stai facendo un po' di caos senza contare che stai mescolando mysqli a oggetti con mysql procedurale. o uno o l'altro

helppp mee :dipser:
penso che alla fine il problema sia il caricamento img, perchè i controlli testo son abb facili
 

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
Mi son fermato ancora qui, non mi carica nel database le informazioni.
Non riesco a far conciliare il tutto:
PHP:
if(isset($_POST['submit'])){ 
  // ..........controllli di testo
	if($err==""){ 
		//*********************C A R I C A M E N T O    I M M A G I N I ****************************
		// limite peso in byte 
		$peso_file = 1024 * 1024;
		// inizializziamo il messaggio
		$messaggio = "Carica una o piu immagini, fino ad un massimo di 4 consentite:";
		// estensioni ammesse
		$estensioni = array("jpg", "png", "bmp", "gif");
		// percosrso destinazione immagini la cartella deve esistere e il percorso deve essere corretto
		$dir = "../images_immobili";
		$salva_file=array("","","","");//creo l'array per i nomi dei file in modo che sia sempre di 4 posti anche se vengono inserite meno di 4 immagini 
		
		// azzeriamo il messaggio
			$mess_err = "";
		// recuperiamo e uniamo le informazionei sulle immagini
			$infoimages = array_combine($_FILES["image"]['name'], $_FILES["image"]['tmp_name']);
		// cicliamo le immagini
				foreach ($infoimages as $k => $v) {
				// nome del file
				$nomefile = strtolower($k);
				// controlliamo il peso immagine
					if (filesize($v) < $peso_file) {
					// recuperiamo l'estensione
					$estensionefile = pathinfo($nomefile, PATHINFO_EXTENSION);
					// controlliamo il tipo immagine
						if (in_array(strtolower($estensionefile), $estensioni)) {
						// controllo caricamento
							if (is_uploaded_file($v)) {
							// spostiamo il file nella cartella immagini
								if (!move_uploaded_file($v, "$dir/$nomefile")) {
								$mess_err .= "<br/>Impossibile spostare il file $k";
								} else {
									$mess_err.= "<br/>Immagine $k caricata con successo<br />"; 
									$cnt=0;
									$salva_file[$cnt]="images_immobili/$nomefile";//$cnt va da 0 al numero di immagini caricate -1 
									}
							} else {
								$mess_err .= "<br/>Errore nell'upload del file $k.";
								}
						} else {
							$mess_err .= "<br/>Tipo immagine non consentito : $k";
							}
					} else {
						$mess_err .= "<br/>Immagine $k non caricata : limite peso superato";
						}
				} 
		
	} 
	   echo "tutto giusto<br>"; 
        //..... fai quello che devi fare con i dati e metti l'avviso su $err 
        $err="i tuoi dati sono stati inseriti<br />";
	
		$sql = new mysqli("localhost", "root", "", "myDB");	
		$query="INSERT INTO immobile(.., ..,.....,immagine,img2,img3,img4,....,...) 
	VALUES('$nome','$denominazione','','','$descrizione','.........,'$salva_file[0]','$salva_file[1],'$salva_file[2],'$salva_file[3]','...','..','')";
				var_dump($query);//e qui verifichi che venga scritta come dovrebbe
				$err=$mess_err.$messaggio."i tuoi dati sono stati inseriti<br />";
			 
		//mostri il messaggio 
		echo $err; 
    //e torni al form pulito dopo 303 secondi (content ='303;...) 
    echo "<meta http-equiv='Refresh' content='303; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>"; 
}

qualcuno può darmi una mano?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
dove si incastra?
comunque non vedo l'istruzione per salvare i dati
PHP:
<?php
//....
				$query="INSERT INTO immobile(.., ..,.....,immagine,img2,img3,img4,....,...) VALUES('$nome','$denominazione','','','$descrizione','.........,'$salva_file[0]','$salva_file[1],'$salva_file[2],'$salva_file[3]','...','..','')";
                var_dump($query);//e qui verifichi che venga scritta come dovrebbe
                mysql_query($query) or die)mysql_error()); // cioè questa ******
				$err=$mess_err.$messaggio."i tuoi dati sono stati inseriti<br />";
             
        //mostri il messaggio 
        echo $err; 
//...
?>
 

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
ciao
dove si incastra?
comunque non vedo l'istruzione per salvare i dati
PHP:
<?php
//....
				$query="INSERT INTO immobile(.., ..,.....,immagine,img2,img3,img4,....,...) VALUES('$nome','$denominazione','','','$descrizione','.........,'$salva_file[0]','$salva_file[1],'$salva_file[2],'$salva_file[3]','...','..','')";
                var_dump($query);//e qui verifichi che venga scritta come dovrebbe
                mysql_query($query) or die)mysql_error()); // cioè questa ******
				$err=$mess_err.$messaggio."i tuoi dati sono stati inseriti<br />";
             
        //mostri il messaggio 
        echo $err; 
//...
?>

la var_dump mi da la query esatta, però non li vedo nel db.
In che senso salvare i dati?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
questa
$query="INSERT INTO immobile(....ecc...
è solo una stringa (che serve per preparare l'istruzione di inserimento) e il var_dump te la presenta in modo da vedere se è scritta bene o no, però da sola non fa niente di niente.
se vuoi salvare i dati nella tabella (sempre che la $query sia scritta giusta) devi dare l'apposita istruzione
mysql_query($query);
se non dai l'istruzione mai e poi mai php si sogna di salvare i dati
 

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
ciao
questa
$query="INSERT INTO immobile(....ecc...
è solo una stringa (che serve per preparare l'istruzione di inserimento) e il var_dump te la presenta in modo da vedere se è scritta bene o no, però da sola non fa niente di niente.
se vuoi salvare i dati nella tabella (sempre che la $query sia scritta giusta) devi dare l'apposita istruzione
mysql_query($query);
se non dai l'istruzione mai e poi mai php si sogna di salvare i dati

l'ho inserita mysql_query($query); subito dopo l'istruzione var_dumb, però nonostante questa non carica nel database.
La query è giusta, se vuoi provare tu, ti invio la tabella db, se non ce l'hai ancora dallo scorso thread.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ho messo una parentesi errata
mysql_query($query) or die)mysql_error()); // cioè questa ******
correggi in
mysql_query($query) or die(mysql_error()); // cioè questa ******
 

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
ciao
ho messo una parentesi errata
mysql_query($query) or die)mysql_error()); // cioè questa ******
correggi in
mysql_query($query) or die(mysql_error()); // cioè questa ******

PHP:
$sql = new mysqli("localhost", "root", "", "my_luca");	
		$query="INSERT INTO immobile(nickname, denominazione, indirizzo, localita, descrizione, estensioneTerreno, estensioneSupAbit, tipo, status, referente, nCamere, nBagni, prezzo, speseCondominiali, giardino, immagine,img2,img3,img4, data, ins_mail, boxauto) 
				VALUES('$nome','$denominazione','','','$descrizione','0','0','ciao','$stato','','0','0','$prezzo','0','','$salva_file[0]','$salva_file[1],'$salva_file[2],'$salva_file[3]','$data','$email','')";
				var_dump($query);//e qui verifichi che venga scritta come dovrebbe
				mysql_query($query) or die(mysql_error());	
				$err=$mess_err.$messaggio."i tuoi dati sono stati inseriti<br />";

risultato:
tutto giusto
string(428) "INSERT INTO immobile(nickname, denominazione, indirizzo, localita, descrizione, estensioneTerreno, estensioneSupAbit, tipo, status, referente, nCamere, nBagni, prezzo, speseCondominiali, giardino, immagine,img2,img3,img4, data, ins_mail, boxauto) VALUES('llllllllllll','llllllllll','','','llllllllllll','0','0','ciao','vendita','','0','0','999','0','','images_immobili/lucatropinaimmgol.jpg',',','','10102010','[email protected]','')" No database selected

?.? (i valori immessi son delle prove)
 

Kirsolo

Utente Attivo
17 Gen 2013
171
0
0
ciao
riposta il codice con cui ti connetti
PHP:
if(isset($_POST['submit'])){  
  // ..........controllli di testo 
    if($err==""){  
        //*********************C A R I C A M E N T O    I M M A G I N I **************************** 
        // limite peso in byte  
        $peso_file = 1024 * 1024; 
        // inizializziamo il messaggio 
        $messaggio = "Carica una o piu immagini, fino ad un massimo di 4 consentite:"; 
        // estensioni ammesse 
        $estensioni = array("jpg", "png", "bmp", "gif"); 
        // percosrso destinazione immagini la cartella deve esistere e il percorso deve essere corretto 
        $dir = "../images_immobili"; 
        $salva_file=array("","","","");//creo l'array per i nomi dei file in modo che sia sempre di 4 posti anche se vengono inserite meno di 4 immagini  
         
        // azzeriamo il messaggio 
            $mess_err = ""; 
        // recuperiamo e uniamo le informazionei sulle immagini 
            $infoimages = array_combine($_FILES["image"]['name'], $_FILES["image"]['tmp_name']); 
        // cicliamo le immagini 
                foreach ($infoimages as $k => $v) { 
                // nome del file 
                $nomefile = strtolower($k); 
                // controlliamo il peso immagine 
                    if (filesize($v) < $peso_file) { 
                    // recuperiamo l'estensione 
                    $estensionefile = pathinfo($nomefile, PATHINFO_EXTENSION); 
                    // controlliamo il tipo immagine 
                        if (in_array(strtolower($estensionefile), $estensioni)) { 
                        // controllo caricamento 
                            if (is_uploaded_file($v)) { 
                            // spostiamo il file nella cartella immagini 
                                if (!move_uploaded_file($v, "$dir/$nomefile")) { 
                                $mess_err .= "<br/>Impossibile spostare il file $k"; 
                                } else { 
                                    $mess_err.= "<br/>Immagine $k caricata con successo<br />";  
                                    $cnt=0; 
                                    $salva_file[$cnt]="images_immobili/$nomefile";//$cnt va da 0 al numero di immagini caricate -1  
                                    } 
                            } else { 
                                $mess_err .= "<br/>Errore nell'upload del file $k."; 
                                } 
                        } else { 
                            $mess_err .= "<br/>Tipo immagine non consentito : $k"; 
                            } 
                    } else { 
                        $mess_err .= "<br/>Immagine $k non caricata : limite peso superato"; 
                        } 
                }  
         
    }  
       echo "tutto giusto<br>";  
        //..... fai quello che devi fare con i dati e metti l'avviso su $err  
        $err="i tuoi dati sono stati inseriti<br />"; 
     
        $sql = new mysqli("localhost", "root", "", "my_luca");     
        $query="NSERT INTO immobile(nickname, denominazione, indirizzo, localita, descrizione, estensioneTerreno, estensioneSupAbit, tipo, status, referente, nCamere, nBagni, prezzo, speseCondominiali, giardino, immagine,img2,img3,img4, data, ins_mail, boxauto) 
				VALUES('$nome','$denominazione','','','$descrizione','0','0','ciao','$stato','','0','0','$prezzo','0','','$salva_file[0]','$salva_file[1],'$salva_file[2],'$salva_file[3]','$data','$email','')";
                var_dump($query);//e qui verifichi che venga scritta come dovrebbe 
                mysql_query($query) or die(mysql_error());
                $err=$mess_err.$messaggio."i tuoi dati sono stati inseriti<br />"; 
              
        //mostri il messaggio  
        echo $err;  
    //e torni al form pulito dopo 303 secondi (content ='303;...)  
    echo "<meta http-equiv='Refresh' content='303; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";  
}
 
Discussioni simili
Autore Titolo Forum Risposte Data
P invio form non corretto dopo controllo dati PHP 8
A Problema form: controllo campi vuoti e inibizione pulsante invio Javascript 5
M Problema con controllo form in real time jQuery 6
A [PHP] Controllo nome utente form di registrazione PHP 4
M [ASP] Upload file da form controllo Classic ASP 5
M [PHP] controllo inserimento dati un un form PHP 4
gandalf1959 Funzione di controllo su un form, comportamento inaspettato Javascript 6
F controllo form php con restituzione errori nella form PHP 10
M controllo di quantità in un form Javascript 0
P controllo sul form Javascript 1
S Controllo di due form in Javascript Javascript 1
Z Controllo campi di un form php PHP 5
T problema strano con procedura di controllo da database, di dati immessi in un form asp Classic ASP 5
H Effettuare il controllo dei campi di un form e cambiare l' action dinamicamente Javascript 1
K controllo testo da form PHP 7
L form controllo con il for "Tutti i dati sono richiesti". PHP 2
P controllo campo select nel form Javascript 6
ivarello Form Che avvia upload e controllo automatico PHP 1
P controllo dati form con jquery e php PHP 8
P controllo dati mentre s'inseriscono nel form PHP 17
P controllo campi form istantaneo PHP 4
L controllo form radio prima di inviare jQuery 1
T Impostare un controllo da database, di dati immessi in un form asp Classic ASP 6
T impostare il controllo dei dati immessi dagli utenti su form asp Classic ASP 8
L Controllo campi di un form Ajax 0
D script controllo campi form non va su FF Javascript 2
B Controllo form Javascript 2
B controllo su form PHP 4
B Controllo form: uno dei 2 campi obbligatorio Javascript 11
Robby84 Codice di controllo per form mail PHP 4
P controllo in form con 2 submit Javascript 7
L Controllo e confronto dati immessi in 2 campi Data in un form (mysql) PHP 1
P Predefinito Controllo campi form contenuto in un DIV Classic ASP 0
D Controllo su campi Form Javascript 3
M Controllo campi in un form Javascript 2
sbobby Codice di controllo su form mail!! PHP 4
A controllo in js dei campi di un form Javascript 1
T controllo form: data inserita > maggiore di data odierna Javascript 4
N Controllo form da altri frame HTML e CSS 0
M pulsante per aprire una maschera che contiene controllo schede MS Access 0
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
Z Controllo giorni MYSQL PHP 0
MarcoGrazia jquery validate() controllo checkbox jQuery 2
M Controllo del codice fiscale/partita iva PHP 11
S Software windows10 per controllo contenuti web Windows e Software 6
S Controllo appuntamenti disponibili sul db PHP 5
L input (controllo se è stato modificato o no). PHP 1
W Controllo competitors serp SEO e Posizionamento 2
bubino8 [Javascript] popup di controllo elimina dopo window.print(); Javascript 0
M [MS Access] controllo valido se MS Access 8

Discussioni simili