WebSite X5Help Center

 
Paolo M.
Paolo M.
User

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

Автор: Paolo M.
Просмотрено 1183, Подписчики 2, Размещенный 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 ? 

Размещено
27 Ответы - 3 Полезно
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è...

Читать больше
Размещено От 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. 

Читать больше
Размещено От Massimo C.
Claudio D.
Claudio D.
Moderator
Лучший пользователь месяца IT
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... 

Читать больше
Размещено От Claudio D.
Paolo M.
Paolo M.
User
Автор

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...

Читать больше
Размещено От 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

Читать больше
Размещено От Stefano G.
Paolo M.
Paolo M.
User
Автор

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.

Читать больше
Размещено От Paolo M.
Paolo M.
Paolo M.
User
Автор

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...

Читать больше
Размещено От 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

Читать больше
Размещено От 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.

Читать больше
Размещено От 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

Читать больше
Размещено От Massimo C.
Paolo M.
Paolo M.
User
Автор

Hosting windows ?

Читать больше
Размещено От Paolo M.
Paolo M.
Paolo M.
User
Автор

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

Читать больше
Размещено От 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,

Читать больше
Размещено От Massimo C.
Massimo C.
Massimo C.
User

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

Читать больше
Размещено От Massimo C.
Paolo M.
Paolo M.
User
Автор

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..

Читать больше
Размещено От Paolo M.
Paolo M.
Paolo M.
User
Автор

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 ?

Читать больше
Размещено От Paolo M.
Paolo M.
Paolo M.
User
Автор

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...

Читать больше
Размещено От Paolo M.
Massimo C.
Massimo C.
User

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

Читать больше
Размещено От Massimo C.
Paolo M.
Paolo M.
User
Автор

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... 

Читать больше
Размещено От 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...

Читать больше
Размещено От Skeggia 12
Paolo M.
Paolo M.
User
Автор

È gia tanto aver capito...

Читать больше
Размещено От 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.....

Читать больше
Размещено От Massimo C.
Paolo M.
Paolo M.
User
Автор

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 ?

Читать больше
Размещено От Paolo M.
Paolo M.
Paolo M.
User
Автор

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...

Читать больше
Размещено От Paolo M.
Paolo M.
Paolo M.
User
Автор

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

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

Читать больше
Размещено От 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

Читать больше
Размещено От 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,

Читать больше
Размещено От Massimo C.