WebSite X5Help Center

 
Paolo M.
Paolo M.
User

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

Autor: Paolo M.
Besucht 848, Followers 2, Geteilt 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 ? 

Gepostet am
27 ANTWORTEN - 3 NüTZLICH
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è...

Mehr lesen
Gepostet am von 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. 

Mehr lesen
Gepostet am von 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... 

Mehr lesen
Gepostet am von Claudio D.
Paolo M.
Paolo M.
User
Autor

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

Mehr lesen
Gepostet am von 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

Mehr lesen
Gepostet am von Stefano G.
Paolo M.
Paolo M.
User
Autor

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.

Mehr lesen
Gepostet am von Paolo M.
Paolo M.
Paolo M.
User
Autor

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

Mehr lesen
Gepostet am von 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

Mehr lesen
Gepostet am von 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.

Mehr lesen
Gepostet am von 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

Mehr lesen
Gepostet am von Massimo C.
Paolo M.
Paolo M.
User
Autor

Hosting windows ?

Mehr lesen
Gepostet am von Paolo M.
Paolo M.
Paolo M.
User
Autor

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

Mehr lesen
Gepostet am von 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,

Mehr lesen
Gepostet am von Massimo C.
Massimo C.
Massimo C.
User

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

Mehr lesen
Gepostet am von Massimo C.
Paolo M.
Paolo M.
User
Autor

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

Mehr lesen
Gepostet am von Paolo M.
Paolo M.
Paolo M.
User
Autor

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 ?

Mehr lesen
Gepostet am von Paolo M.
Paolo M.
Paolo M.
User
Autor

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

Mehr lesen
Gepostet am von Paolo M.
Massimo C.
Massimo C.
User

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

Mehr lesen
Gepostet am von Massimo C.
Paolo M.
Paolo M.
User
Autor

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

Mehr lesen
Gepostet am von 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...

Mehr lesen
Gepostet am von Skeggia 12
Paolo M.
Paolo M.
User
Autor

È gia tanto aver capito...

Mehr lesen
Gepostet am von 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.....

Mehr lesen
Gepostet am von Massimo C.
Paolo M.
Paolo M.
User
Autor

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 ?

Mehr lesen
Gepostet am von Paolo M.
Paolo M.
Paolo M.
User
Autor

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

Mehr lesen
Gepostet am von Paolo M.
Paolo M.
Paolo M.
User
Autor

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

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

Mehr lesen
Gepostet am von 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

Mehr lesen
Gepostet am von 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,

Mehr lesen
Gepostet am von Massimo C.