1
Gestione Form / Re:Chronoform crea due record per ogni inserimento
« il: 12 Gen 2014, 22:47:09 »
Ciao e grazie a tutti per la risposta.
Ho allegato delle foto. Scusate se per motivi di privacy ho dovuto cancellare dei dati.
Si tratta di un'anomalia strana anche se credo di aver copiato alla lettere la lezione di Vales sui form.
Come dicevo mi crea due record doppi. Lo potete vedere nell'allegato db2 con l'id 73.
Il form termina correttamente con l'invio della mail.
Se creo un indice univoco sul campo cf_user_id che contiene l'id dell'utente non crea il record doppio ed il form termina correttamente ma questo per il solo fatto che non controlla l'errore.
Difatti se eseguo di nuovo il form questa volta non crea nessun record ma neanche segnala che il record già esiste o non riporta il codice d'errore di mysql di chiave doppia.
Riepilogando quindi, se non metto un indice mi crea due record di cui uno con i dati del form ed il secondo senza i dati del form ma solo con la prima parte del record. (vedi foto db2)
Vorrei anche risolvere un altro problema.
E' possibile impedire che l'utente modifichi i campi che carico leggendoli dalla tabella quando propongo il form? Ovvero creare un campo di solo output che però venda registrato nel DB quando si preme il tastio del submit?
Ultima richiesta
come posso invece evitare che alcuni campi ad esempio il campo hidden o il campo submit vengano creati nel db quando si crea la tabella? A me quie campi non servono ma di default me li crea.
Ultima info.
Nel campo Targhet Event dell'On fail quale parametro è corretto mettere?
Li ho provati tutti ma non si ferma in caso d'errore.
Grazie
Posto anche il mio codice custom
[allegato eliminato automaticamente dopo un anno]
Ho allegato delle foto. Scusate se per motivi di privacy ho dovuto cancellare dei dati.
Si tratta di un'anomalia strana anche se credo di aver copiato alla lettere la lezione di Vales sui form.
Come dicevo mi crea due record doppi. Lo potete vedere nell'allegato db2 con l'id 73.
Il form termina correttamente con l'invio della mail.
Se creo un indice univoco sul campo cf_user_id che contiene l'id dell'utente non crea il record doppio ed il form termina correttamente ma questo per il solo fatto che non controlla l'errore.
Difatti se eseguo di nuovo il form questa volta non crea nessun record ma neanche segnala che il record già esiste o non riporta il codice d'errore di mysql di chiave doppia.
Riepilogando quindi, se non metto un indice mi crea due record di cui uno con i dati del form ed il secondo senza i dati del form ma solo con la prima parte del record. (vedi foto db2)
Vorrei anche risolvere un altro problema.
E' possibile impedire che l'utente modifichi i campi che carico leggendoli dalla tabella quando propongo il form? Ovvero creare un campo di solo output che però venda registrato nel DB quando si preme il tastio del submit?
Ultima richiesta
come posso invece evitare che alcuni campi ad esempio il campo hidden o il campo submit vengano creati nel db quando si crea la tabella? A me quie campi non servono ma di default me li crea.
Ultima info.
Nel campo Targhet Event dell'On fail quale parametro è corretto mettere?
Li ho provati tutti ma non si ferma in caso d'errore.
Grazie
Posto anche il mio codice custom
Codice: [Seleziona]
<?php
$user =& JFactory::getUser();
$username = $user->username;
$email = $user->email;
$campo_id = $user->id;
$query = "SELECT * FROM j17_comprofiler WHERE user_id=$campo_id";
$db =& JFactory::getDBO();
$db->setQuery($query);
$row = $db->loadAssoc();
$utente=$row['cf_user_id'];
$form->data['nome'] = $row['firstname'];
$form->data['cognome'] = $row['lastname'];
$form->data['email'] = $email;
$form->data['grado'] = $row['cb_grado'];
?>
[allegato eliminato automaticamente dopo un anno]