caricare dati all'interno di un tag div html

pepi

Utente Attivo
27 Set 2010
38
0
0
Ciao,
ho realizzato una pagina web in html5 che contiene il seguente form per la raccolta dei dati:

HTML:
<form action="http://localhost/uptest/modulo.php" method="post">
		<div id="inputazienda">
		  
		    <span id="sprytextfield1">
		      <label for="azienda">AZIENDA</label>
              <input type="text" name="azienda" id="azienda">
            <span class="textfieldRequiredMsg">Inserire un valore.</span></span>
	      
      </div>
      
    <div id="inputindirizzo">
        
          <span id="sprytextfield3">
            <label for="indirizzo">INDIRIZZO COMPLETO</label>
            <input type="text" name="indirizzo" id="indirizzo">
            <span class="textfieldRequiredMsg">Inserire un valore.</span></span>
        
      </div>
    <div id="inputref">
       
          <span id="sprytextfield2">
            <label for="referente">CONTATTO</label>
            <input type="text" name="referente" id="referente">
            <span class="textfieldRequiredMsg">Inserire un valore.</span></span>
        
      </div>
      <div id="inputemail">
        
          <span id="sprytextfield4">
          <label for="email">E-MAIL CONTATTO</label>
          <input type="text" name="email" id="email">
          <span class="textfieldRequiredMsg">Inserire un valore.</span><span class="textfieldInvalidFormatMsg">Non valido.</span></span>
        
      </div>
      <div id="inputtel">
        
          <span id="sprytextfield5">
          <label for="tel">TELEFONO CONTATTO</label>
          <input type="text" name="tel" id="tel">
          <span class="textfieldRequiredMsg">Inserire un valore.</span><span class="textfieldInvalidFormatMsg">Non valido.</span></span>
        
      </div>
     <div id="inputtipo">
        
          <span id="spryselect1">
            <label for="tipologia">EVENTO DA REALIZZARE</label>
            <select name="tipologia" size="" id="tipologia">
            <option value="" selected label="">
            <option value="PROMOZIONE c/o PUNTO VENDITA" label="PROMOZIONE c/o PUNTO VENDITA">
            <option value="PROMOZIONE c/o STAND FIERISTICO" label="PROMOZIONE c/o STAND FIERISTICO">
            <option value="CONGRESSO" label="CONGRESSO">
            <option value="FESTA AZIENDALE" label="FESTA AZIENDALE">
            </select>
            <span class="selectRequiredMsg">Selezionare una voce.</span></span>
        
      </div>
      <div id="inputlocation">
        
          <span id="sprytextfield6">
            <label for="location">LOCALITA' EVENTO</label>
            <input type="text" name="location" id="location">
            <span class="textfieldRequiredMsg">Inserire un valore.</span></span>
        
      </div>
      <div id="inputmese">

   	      <span id="spryselect2">
   	        <label for="mese">DATA EVENTO</label>
        	    <select name="mese" id="mese">
                <option value="" selected label="">
            <option value="GENNAIO" label="GENNAIO">
            <option value="FEBBRAIO" label="FEBBRAIO">
            <option value="MARZO" label="MARZO">
            <option value="APRILE" label="APRILE">
            <option value="MAGGIO" label="MAGGIO">
            <option value="GIUGNO" label="GIUGNO">
            <option value="LUGLIO" label="LUGLIO">
            <option value="AGOSTO" label="AGOSTO">
            <option value="SETTEMBRE" label="SETTEMBRE">
            <option value="OTTOBRE" label="OTTOBRE">
            <option value="NOVEMBRE" label="NOVEMBRE">
            <option value="DICEMBRE" label="DICEMBRE">
      	      </select>
   	    <span class="selectRequiredMsg">Selezionare una voce.</span></span>
      
     </div>
      <div id="inputanno">
        
          <span id="spryradio1">
            <label>
              <input type="radio" name="anno" value="2010" id="anno1_0">
              2010</label>
            <br>
            <label>
              <input type="radio" name="anno" value="2011" id="anno1_1">
              2011</label>
            <br>
            <span class="radioRequiredMsg">Effettuate una selezione.</span></span>
        
      </div>
    <div id="inputinvio">
<input name="invio" type="submit" id="invio" value="INVIA!">

    </div>
    </form>
    <div id="messaggio"> </div>

Attraverso il seguente php:


PHP:
<html>
<body>

<?php
$con=mysqli_connect("localhost","root","root","upmodulo");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$tua_azienda=$_POST['azienda'];
$tuo_indirizzo=$_POST['indirizzo'];
$tuo_ref=$_POST['referente'];
$tua_mail=$_POST['email'];
$tuo_telefono=$_POST['tel'];
$evento=$_POST['tipologia'];
$tua_location=$_POST['location'];
$data_mese=$_POST['mese'];
$data_anno=$_POST['anno'];

$inviamodulo = "INSERT INTO updata (azienda, indirizzo, referente, email, tel, tipologia, location, mese, anno) VALUES ('$tua_azienda', '$tuo_indirizzo', '$tuo_ref', '$tua_mail', '$tuo_telefono', '$evento', '$tua_location', '$data_mese', '$data_anno')" or die ('Errore...'); 

if (!mysqli_query($con,$inviamodulo))
  {
  die('dati non inviati' . mysqli_error($con));
  }

else 

echo "Grazie " . $_POST["azienda"] .",";
echo "<br>ti contatteremo al pi&ugrave; presto!";


mysqli_close($con);
?>

</body>
</html>

mi collego alla tabella Mysql e inserisco i dati.
Tutto ok, ma la domanda è:
è possibile, e come, caricare il risultato di "echo" direttamente all'interno del <div id="messaggio"> </div> della pagina html invece che nella canonica pagina php?

Spero di essere stata chiara.... grazie!
 
Ultima modifica di un moderatore:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
puoi rinominare l'setensione della pagina html in php e inserire il codice php nel div messaggio
la action del form dovra richiamare la stessa pagina
oppure usi ajax
 

pepi

Utente Attivo
27 Set 2010
38
0
0
Grazie Criric, in realtà volevo evitare la trasformazione in php anche perchè volevo mantenere tutte le formattazioni, i css, le preimpostazioni (calcola che sto lavorando su Dreamweaver CS6 e le griglie a layout fluidi....)
Quindi, non c'è alcun modo di farlo mantenendo l'html?
(preciso che non lo conosco ajax....)

Grazie Borgo Italia, cosa intendi con "non inserire così brutalmente i dati nel db, potresti avere delle brutte sorprese" ?
 

Jonn

Utente Attivo
29 Dic 2012
352
3
18
Pistoia
Ma infatti questa dubbia "trasformazione in php" non cambia niente sulla funzionalità della pagina, tutto il codice html rimane esattamente così com'è, uguale per il css che esegue il suo lavoro al meglio ed allo stesso modo.

Cambia solo che usando un file php invece che html o altri, il server (l'host, boh chiamalo come ti pare) tratta questo file come tale, quindi invece di restituirlo direttamente al browser, lo scansiona (diciamo così) alla ricerca di istruzioni php per eseguirle, ma se c'è solo codice HTML (HTML 5 nel tuo caso) lo rimanda direttamente al browser così com'è.

Cambia dal momento in cui inserisci istruzioni php, ma questa è un'altra storia, e se le inserisci significa che già sai a cosa servono.
Ciao :)
 

pepi

Utente Attivo
27 Set 2010
38
0
0
Grazie a tutti.
Effettivamente l'opzione trasformazione in php è la più funzionale e non crea problemi di formattazione.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
rispondo solo ora alla tua domanda "sulle brutte sorprese" con un esempio.
mettiamo che l'azienda si chiami "L'ASTRAGALO" quell'insignificantre apostrofo ti manda in pallino la tabella, ben che vada nel campo "azienda" trovi solamente L perchè mysql interpreta quell'apostrofo come fine stringa.
quindi come minimo
PHP:
$tua_azienda=addslshes($_POST['azienda']);
senza contare tutti gli altri che se non fai appositi controlli possono essere, come minimo, vuoti o contenere qualsivoglia porcheria
 

Jonn

Utente Attivo
29 Dic 2012
352
3
18
Pistoia
Trovo molto interessante l'osservazione di borgo italia, che però metterei in secondo piano rispetto a:
- Creare il database.
- Controllare che i dati vengano inviati correttamente.

I farei così, creato il database, controllo che il codice PHP esegua tutte le operazioni in modo corretto (inserire dati, inserire dati alfanumerici correttamente), subito dopo creerei i controlli come ha detto borgo italia per prevenire che l'eventuale inserimento di caratteri speciali possa sflippare il dati dentro le tabelle.
Interessante come discussione :)
 

pepi

Utente Attivo
27 Set 2010
38
0
0
Ciao, anteponendo ai diversi parametri mysql_real_escape_string() nel php sembra che mysql non abbia più problemi ad accettare caratteri "particolari".

Quello che mi domando, a questo punto, è se sia possibile evitare che qualcuno "riempia" i campi testo del form inserendo solo uno spazio vuoto invece che dei caratteri.
Vorrei che anche in questo caso, così come capita se lasciato il campo vuoto, apparisse all'utente un messaggio di errore prima che il modulo venga inviato.

Tenete presente che sto usando Campi di testo convalida Spry in Dreamweaver; dove devo intervenire per aggiungere questo particolare caso?
Sempre che si possa intervenire in tal senso...

Grazie ancora!
 

Jonn

Utente Attivo
29 Dic 2012
352
3
18
Pistoia
L'unica cosa che so dirti adesso è che nelle input (anche se vedo che ne hai poche perchè maggiormente sono caselle di selezione) si può inserire il testo dentro la casellina che poi quando uno clicca con il mouse quest'ultimo sparisce per scriverci dentro, ed in caso la casella venga svuotata, viene mostrato nuovamente il testo (lo so perchè lo provavo per la form contatti del mio sito).
Penso che almeno per le input puoi usare quello ci scrivi qualcosa tipo:

- Campo Obbligatorio

E chi legge se non è scemo capisce... XD
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
qualsiasi controllo lato client, più o meno facilmente, è bypassabile.
per essere sicuro devi fare controlli lato server con php
es.
PHP:
<?php
$nome=addslashes(trim($_POST['nome']));
if($nome==""){
	echo "non hai inserito il nome";
}
//.......
?>
 

pepi

Utente Attivo
27 Set 2010
38
0
0
Grazie Jonn, in realtà, se il campo viene lasciato vuoto, senza interazione alcuna o viene saltato con la tabulazione, il messaggio di errore "Campo obbligatorio" appare già e funziona.

L'unico problema si pone con lo spazio, perchè se al posto di digitare del testo viene cliccato solo il tasto spazio per il sistema è come se l'utente avesse compilato il campo.
Poi, è vero che sarebbe stupido non inserire dati che servono a farsi ricontattare, però, non c'è limite all'assurdità..... :(

E' vero che il vedere già la scritta "Campo obbligatorio" all'interno del campo limiterebbe ancor di più la possibilità che l'utente non scriva nulla, però, se ci fosse un metodo scientifico per impedirlo, sarebbe meglio..
 

pepi

Utente Attivo
27 Set 2010
38
0
0
Grazie borgo italia, non avevo visto la tua risposta.
Quindi, lato client non c'è soluzione al problema "tasto spazio".. ?
 

Fez Vrasta

Utente Attivo
11 Mag 2013
409
0
0
Puoi fare un controllo con un pattern regex.

Ma tutti i controlli lato client andrebbero anche ricontrollati lato server, come già spiegato precedentemente.
 

Jonn

Utente Attivo
29 Dic 2012
352
3
18
Pistoia
ciao
qualsiasi controllo lato client, più o meno facilmente, è bypassabile.
per essere sicuro devi fare controlli lato server con php
es.
PHP:
<?php
$nome=addslashes(trim($_POST['nome']));
if($nome==""){
	echo "non hai inserito il nome";
}
//.......
?>

Secondo me questa soluzione di borgo italia è perfetta.

Per quanto riguarda il controllo sui simboli, dovresti trovare il modo di farli interpretare da php come unicode o con la codifica che usi dove vuoi rileggere le variabili in modo che nel database però vengano salvati in modo da non essere interpretati come codice SQL ma come campo di record.

Ora non so bene come funzionano i controlli per le SQL Injection perchè come ho detto in altri post, non ho mai avuto bisogno di un database (anche se mi piacerebbe per un discorso didattico).

La cosa più noiosa è appunto gestire i malintenzionati, nel senso che io potrei aprire la tua form e compilarla a ripetizione con spazi vuoti creandoti nel database una miriade di records inutili.
 
Discussioni simili
Autore Titolo Forum Risposte Data
E Caricare dati da DB MySql all'apertura pagina, meglio PHP o Javascript? PHP 1
P Caricare nuova pagina dopo invio dati form Javascript 11
B Caricare immagini in un DB insieme ad altri dati e visualizzarli PHP 2
G [VISUAL BASIC]caricare dati in un database da una console application Visual Basic 3
L caricare dati da tabella DBF PHP 0
C Caricare dati in mysql da un file di testo PHP 1
Q Caricare dati con ajax in background Ajax 2
L Come caricare un'immagine in Canvas dinamicamente Javascript 0
C Come caricare foto da google foto ad un sito? Discussioni Varie 1
Y Come caricare e visualizzare un'immagine PHP 0
I javascript come caricare una pagina sopra quella corrente in automatico Javascript 2
O MIT App Inventor - caricare un file da app Sviluppo app per Android 1
Alex_70 [PHP] Caricare foto su un'altra tabella collegata PHP 0
A [Java] caricare un url esterno senza utilizzo di iframe Java 0
G Caricare una jpg con il php PHP 1
N [WordPress] Caricare diversi fogli di stile in tema-child WordPress 0
G Caricare una semplice Jpg con il PHP PHP 1
Selenio89 problema a caricare immagine con html. dove sbaglio? HTML e CSS 25
P [PHP] Caricare un file da client XP su server Ubuntu PHP 2
M [Javascript] Caricare link esterno file js in base al device Javascript 0
L Come caricare <iframe> dopo il click ad un immagine, per migliorare le prestazioni. Discussioni Varie 0
andrea93_12 Aiuto caricare immagine su database MYSQL MySQL 1
giancarlob Prova a rimandare o a caricare in modo asincrono le risorse di blocco SEO e Posizionamento 0
F [HTML] Caricare un font ttf HTML e CSS 2
Y CARICARE IMMAGINI IN CARTELLA PHP PHP 3
A Caricare foto in una gallery PHP 0
A caricare file PHP con Load cambiandone parte del contenuto jQuery 1
9 caricare immagini in tabella html da cartella sul server tramite id database PHP 1
A Caricare una pagina jsp in un div alla pressione di un button Javascript 1
M Problema caricare file sul hosting Discussioni Varie 1
M Caricare più google maps con un ciclo Javascript 1
marino51 non riesco a caricare un allegato percgè non riesco a ridimensionare la finestra Supporto Mr.Webmaster 0
F Caricare immagine da Mysql su evento click-radio Javascript 5
D Caricare foto in un DB PHP 2
S Caricare una pagina con JQuery jQuery 4
asevenx problemi per caricare immagine su server PHP 4
A [risolto] caricare con un ciclo For dei file PHP inclusi in una variabile array PHP 3
M Zenphoto: far caricare immagini agli utenti CMS (Content Management System) 0
F Caricare file da locale al server Javascript 3
D Caricare file via ajax Ajax 1
G caricare immagini sul db con il formato text PHP 3
P Caricare un .exe sul sito. HTML e CSS 6
I Perchè devo cliccare 2 volte su un link per caricare correttamente il css di una galleria? WordPress 1
F Caricare contenuto pagina all'interno di un'altra pagina Javascript 1
S come caricare un banner tramite un form in una cartella all interno del sito PHP 11
F comando php per caricare delle scritte in una pagina html PHP 4
C Problema nel Caricare file e spostarlo con la funzione move_uploaded_file PHP 14
X Caricare contenuto iframe su richiesta Javascript 6
F Caricare pagine del sito sul database MySQL 1
C in un file html/javascript caricare i div presenti nel body in un file di testo e richiamarli Javascript 7

Discussioni simili