WebSite X5Help Center

 
Paolo M.
Paolo M.
User

Modulo di contatto con campo "invio file" e database mysql  it

Autore: Paolo M.
Visite 845, Followers 2, Condiviso 0  

Salve, ho un curioso problema:

ho un modulo di contatto con diversi campi testo e un campo "invio file", il modulo invia i dati ad un database mysql (parliamo di un hosting windows è un database mysql di Aruba).

Il problema che riscontro è questo: se imposto il campo "invio file" come "non obbligatorio" e invio i primi records senza allegare nessun file la tabella viene popolata regolarmente, ma dal momento in poi che creo un nuovo record contenente anche un file, le volte successive devo sempre mettere un file, altrimenti il record in tabella non viene proprio creato.

Cliccando sul modulo "invia" sembra funzioni, ma in realtà la tabella non viene aggiornata con il nuovo inserimento.

Sono costretto a mettere il campo "invio file" come obbligatorio, altrimenti non ho la certezza che il nuovo record venga generato, anche se alla pressione del tasto "invia" i campi su svuotano come se l'operazione sia stata eseguita regolarmente.

A qualcuno di voi è successo qualcosa di simile ? 

Postato il
27 RISPOSTE - 3 UTILI
Skeggia 12
Skeggia 12
Moderator

yes, e se metti più di un campo invio file (da 2 in poi...), sei obbligato a  inserirli tutti, altrimenti non viene creato il record su DB... non so' perchè...

Leggi di più
Postato il da Skeggia 12
Massimo C.
Massimo C.
User

Io ho risolto questo problema creando il primo record compilando tutti i campi, quindi inviando un file anche col campo non obbligatorio. Dopo tutti gli altri vengono generati senza problemi, anche lasciando i campi vuoti. 

Un tecnico di dove lavoro mi ha detto che il problema riguarda MySql in ambiente Windows dove MSSQL è la scelta più corretta. MySql è ottimale in ambiente Linux. Io ho spostato tutti i miei siti in ambiente Linux, anche dietro suggerimenti ricevuti qui sopra. 

Leggi di più
Postato il da Massimo C.
Claudio D.
Claudio D.
Moderator
Massimo C.
Io ho risolto questo problema creando il primo record compilando tutti i campi, quindi inviando un file anche col campo non obbligatorio. Dopo tutti gli altri vengono generati senza problemi, anche lasciando i campi vuoti.  Un tecnico di dove lavoro mi ha detto che il problema riguarda MySql in ambiente Windows dove MSSQL è la scelta più corretta. MySql è ottimale in ambiente Linux. Io ho spostato tutti i miei siti in ambiente Linux, anche dietro suggerimenti ricevuti qui sopra. 

@Massimo, ma sei sicuro ?

ho fatto una prova su host linux con DB MYSQL

fa esattamente quello che dice l'autore del post, e che conferma Skeggia

anche se il db col primo record è stato compilato per bene e col file...

quelli successivi , se non allego il file (che non è obbligatorio) , faccio INVIA, sembra imviare ma NON MEMORIZZA un bel niente... 

Leggi di più
Postato il da Claudio D.
Paolo M.
Paolo M.
User
Autore

Come dice Claudio, avevo già fatto tutte le prove del caso, compresa quella indicata da Massimo, ma in ogni caso continua a non creare il record se non metto anche il file allegato (anche se non è obbligatorio)..

Mi domando se potrebbe funzionare scrivendo uno script per l'inserimento dei dati in tabella, e poi scegliere sul modulo di contatto l'opzione "invia i dati ad un file" (lo script in questione). 

Al momento non sono in grado di farlo da zero, ma posso documentarmi, magari in questo modo si riesce a capire dove sta l'errore e ad aggirarlo...

Leggi di più
Postato il da Paolo M.
Incomedia
Stefano G.
Incomedia

Buongiorno Paolo

Ti chiederei solo una ulteriore prova se possibile.

E' possibile che il form sia nato senza il campo file?

Nel senso, se provi a creare un nuovo form contatto che ha già il campo file non obbligatorio, il problema permane? O il problema si presenta solo se aggiungi il campo file ad un Form che prima non lo aveva e che ha già salvato dei record in precedenza?

Fammi sapere qui se possibile

Grazie

Stefano

Leggi di più
Postato il da Stefano G.
Paolo M.
Paolo M.
User
Autore

Ho fatto la prova poco fa, ho creato la tabella attraverso il modulo form di contatto, con tutti i campi non obbligatori ma tutti riempiti, compreso il file da allegare.

La tabella si è creata automaticamente nel database ed il record anche.

Poi ho provato ad inserire un secondo record con tutti i campi compilati, escluso il file allegato, ed in questo caso il record non viene creato.

puoi provare a questo link:

www.evolusystem.com/news.php

se vuoi provare cancello la tabella dal database.

Confermo hosting windows.

Leggi di più
Postato il da Paolo M.
Paolo M.
Paolo M.
User
Autore

Per scrupolo ho anche provato a fare un nuovo form, ora infatti se vai sulla pagina ne vedi due, il secondo è l'ultimo creato.. stessa cosa.

In genere comunque, se crei i primi record senza file allegato va tutto bene, ma dopo che hai inserito un record con un file, da quel momento non è più possibile ometterlo perchè il record non viene creato...

Leggi di più
Postato il da Paolo M.
Incomedia
Stefano G.
Incomedia

Buongiorno Paolo

Ho provato personalmente a fare una nuova prova, ma devo aver eseguito una procedura errata perchè la stessa situazione non si presenta. Fammi sapere se noti qualcosa di strano

1_ Ho creato un form con un campo di testo e un campo allegato, entrambi non obbligatori

2_ Ho fatto un invio con solo il campo di testo compilato. OK

3_ Ho fatto un nuovo invio con entrambi i campi compilati. OK

4_ Ho fatto un terzo invio con solo i testi compilati. Ancora OK

Ti torna?

Resto a disposizione

Stefano

Leggi di più
Postato il da Stefano G.
Massimo C.
Massimo C.
User

ciao Stefano, 

ho visto il link e caricato qualche immagine di prova. Il problema potrebbe essere che nella stessa pagina hai inserito il visualizzatore delle news, che ha come dominante la visualizzazione degli allegati, per cui se non invvi l'allegato, il visualizzatore non lo vede pertanto non ti scrive sul database. 

dovrebbe funzionare comunque bene, ma per capire se il problema è quello dovresti provare a mettere il visualizzatore in una pagina diversa, e verificare sul database tramite phpMyAdmin se il record è stato creato e quindi è solo un problema di vederlo. 

Faccio un test simile domani anche io e vedo cosa mi esce.

Leggi di più
Postato il da Massimo C.
Massimo C.
Massimo C.
User

ho fatto la prova e a me funziona

https://www.works1.eu/pagina-9.html

nessun campo obbligatorio, ho generato senza problemi il database e saltato l'invio del file

Leggi di più
Postato il da Massimo C.
Paolo M.
Paolo M.
User
Autore

Hosting windows ?

Leggi di più
Postato il da Paolo M.
Paolo M.
Paolo M.
User
Autore

Scusa Massimo, ho riletto tutti i messaggi.. quindi tu consigli la migrazione a Linux ?

Leggi di più
Postato il da Paolo M.
Massimo C.
Massimo C.
User

la migrazione a Linux è comunque opportuna, ma non credo in questo caso che il problema sia linux che non agisce nella implementazione del database, che è autonomo rispetto alla piattaforma del server del sito. Hai visto se il database aprendo da phpMyAdmin viene implementato?

prova a spostare gli oggetti come avevo scritto sopra, dovendo implemetare nella stessa pagina diverse cose che "pescano" insieme potrebbe essere un conflitto.

crea in una pagina nuova un form per l'invio e in un'altra il database da solo, giusto per vedere se funziona,

Leggi di più
Postato il da Massimo C.
Massimo C.
Massimo C.
User

hai visto nel mio esempio? Fai pure delle prove per vedere come implementa il database

Leggi di più
Postato il da Massimo C.
Paolo M.
Paolo M.
User
Autore

Ok, scusate ma dal telefono non avevo letto tutti i vostri messaggi.. Faró di nuovo altre prove mettendo in una nuova pagina solo il form e controllando i record direttamente sul pannello di Aruba..

Il problema comunque si presentava anche in pagine dove non c'erano visualizzatori..

vi aggiorno al piu presto, grazie intanto per il supporto..

Leggi di più
Postato il da Paolo M.
Paolo M.
Paolo M.
User
Autore

Rifatte tutte le prove da capo:

  • creata nuova pagina con solo il modulo di contatto composto da un campo testo e un campo file entrambi non obbligatori
  • creata la tabella generata dal modulo di contatto con tutti i campi riempiti

risultato: stesso problema, le volte successive non crea il record se non metto anche il campo file..

se invece metto SOLO il campo file il record viene creato regolarmente..

hosting windows su aruba e database mysql di aruba, purtroppo ho tutti domini fatti così quini non posso provare su host differenti..

consigli ? pareri ?

Leggi di più
Postato il da Paolo M.
Paolo M.
Paolo M.
User
Autore

Ho risolto: bisogna mettere manualmente l'attributo "NULL" nel campo database inerente al file.. non so perchè, ho provato a caso ma funziona, se tornate all'esempio che avevo postato potete vederlo.

Non capisco però perchè sia necessario farlo solo su quel campo... booohhhh..

Suppongo ci sia qualcosa che non va nel modo in cui il modulo form crei la tabella nel mysql...

Leggi di più
Postato il da Paolo M.
Massimo C.
Massimo C.
User

il campo null di solito viene generato di default dal database, non è che è stato modificato a mano?

Leggi di più
Postato il da Massimo C.
Paolo M.
Paolo M.
User
Autore

No no.. la tabella è generata dal modulo di contatto e di solito non ci metto le mani.. del resto questa cosa me la fa su tutti i siti che ho creato... 

Leggi di più
Postato il da Paolo M.
Skeggia 12
Skeggia 12
Moderator

per ora non c'è altra soluzione che quella che hai trovato tu... NULL a manina... tra l'altro, il valore NULL si può cambiare soltanto da phpmyadmin...

Leggi di più
Postato il da Skeggia 12
Paolo M.
Paolo M.
User
Autore

È gia tanto aver capito...

Leggi di più
Postato il da Paolo M.
Massimo C.
Massimo C.
User

io indagherei un pò per evitare malfunzionamenti della tabella. Il valore NULL rende quel campo assente di definizioni per cui se deve relazionarsi con altri può diventare un problema. 

la struttura non deve avere nessun attributo particolare, a meno che non intendi creare routine o trigger. Verifica dal pannello di PhpMyAdmin che versione server hai, perchè se inferiore alla 5.5 può essere un problema di generazione tramite programma. 

la tabella del link mio più sopra è tutta senza attributi, se devi intervenire mettendo NULL qualcosa non va. MA se non ti serve particolarmente di relazionare quella tabella con altri database o meno tieni le cose così e via.....

Leggi di più
Postato il da Massimo C.
Paolo M.
Paolo M.
User
Autore

Grazie Massimo,

ho verificato la versione del server:

  • Versione del server: 5.7.32-35-log - Percona Server (GPL), Release 35, Revision 5688520

Non so come indagare per questa anomalia, per fortuna non ho bisogno di relazionare le tabelle (almeno non in questo momento)..

potrebbe dipendere dal fatto che lascio vuoto l'attributo <name> nella configurazione dei campi del form ?

Leggi di più
Postato il da Paolo M.
Paolo M.
Paolo M.
User
Autore

Comunque, per quanto ne posso capire io, secondo me l'errore sta nello script che si occupa di fare l'upload del file e di aggiungere il record in tabella..

è come se in mancanza del file lo script non completasse l'operazione.. 

anche perchè non si spiega perchè il problema ci sia solo con quel tipo di campo, a questo punto il problema non è la creazione della tabella o del record ma qualcosa che succede al momento dell'invio dei dati...

può essere un problema della versione di php istallata sul dominio ?

attualmente c'è la 7.4.33...

provo a fare un upgrade...

Leggi di più
Postato il da Paolo M.
Paolo M.
Paolo M.
User
Autore

Cambiando la versione di php il risultato non cambia... 

Addirittura dalla 8.1 in su non funziona più neanche il viewer.........

Leggi di più
Postato il da Paolo M.
Incomedia
Stefano G.
Incomedia

Buongiorno Paolo

Se provi a creare ora un progetto nuovo con la stessa situazione quindi mi confermi che ti capita.

Posso provare a chiederti se riesci ad inoltrarmi qui una copia IWZIP di quel progetto di prova, e se riesci anche un dump del database?

Farò ulteriori prove per te

Resto a disposizione

Stefano

Leggi di più
Postato il da Stefano G.
Massimo C.
Massimo C.
User

la versione del PHP non rileva, può rilevare invece la versione di PhpMyAdmn installata su server. Verifica quella,

Leggi di più
Postato il da Massimo C.