form che non invia i dati

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
Non sapevo come chiamare questo argomento, ma spero che qualcuno possa darmi una dritta.
Ho realizzato un normalissimo form di registrazione utente con invio mail all'utente e link per attivazione. Tutto è perfetto o almeno per ora, se guardo le mie capacità ed il tempo che ho da dedicarci.
Il punto è che con l'aiuto di marino51 ed altri mille amici che mi hanno aiutato e consigliato ho creato una pagina semplice senza controlli via js ma solamente codice html5 e qualche controllo via php. Questa pagina funziona perfettamente, compilo i dati, invia la mail, la ricevo, clikko sul link, attivo l'utente e cancello i dati nel database temporaneo, il bello è che quando sostituisco questo codice nella pagina reale del sito dove ho tutti i controlli "live" delle caselle, cliccando invio, i dati non vengono inviati, non ricevo nessuna mail e quindi il lavoro è inutile. Inoltre non riesco a visualizzare nessun log o avviso. Cosa posso fare? che codice vi devo postare?
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
nella pagina reale del sito dove ho tutti i controlli "live" delle caselle
penso tu ti riferisca a controlli con javascript ...
se non succede nulla, è probabile vi sia un errore nello script che esegui per i controlli

se usi Internet Explorer, puoi seguire,
Strumenti -> Opzioni Internet -> Avanzate -> Esplorazione ....
togliere il flag dai due "Disabilita debugging degli script"
e rieseguire il codice,
potrebbe segnalarti anche messaggi non utili, non farci caso, ma, sicuramente, ti segnala errori javascript

eventualmente posta i controlli
ciao
Marino
 
Ultima modifica:

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
Scusate il doppio post, ho scoperto che il codice che mi da problemi è questo
PHP:
$(document).ready(function(){

	var jVal = {
		'nome' : function() {

			$('body').append('<div id="nameInfo" class="info"></div>');

			var nameInfo = $('#nameInfo');
			var ele = $('#nome');
			var pos = ele.offset();

			nameInfo.css({
				top: pos.top-3,
				left: pos.left+ele.width()+25
			});

			if(ele.val().length < 3) {
				jVal.errors = true;
					nameInfo.removeClass('correct').addClass('error').html('&larr; Inserisci correttamente il tuo Nome').show();
					ele.removeClass('normal').addClass('wrong');
			} else {
					nameInfo.removeClass('error').addClass('correct').html('&radic;').show();
					ele.removeClass('wrong').addClass('normal');
			}
		},

		'cognome' : function() {

			$('body').append('<div id="surnameInfo" class="info"></div>');

			var surnameInfo = $('#surnameInfo');
			var ele = $('#cognome');
			var pos = ele.offset();

			surnameInfo.css({
				top: pos.top-3,
				left: pos.left+ele.width()+25
			});


			var patt = /^([a-zA-Z\xE0\xE8\xE9\xF9\xF2\xEC\x27]\s?)+$/;

			if(ele.val().length = 0) {
				jVal.errors = true;
					surnameInfo.removeClass('correct').addClass('error').html('&larr; Inserisci il tuo Cognome').show();
					ele.removeClass('normal').addClass('wrong');
			} else if(ele.val().length < 3) {
				jVal.errors = true;
					surnameInfo.removeClass('correct').addClass('error').html('&larr; Inserisci correttamente il tuo Cognome').show();
					ele.removeClass('normal').addClass('wrong');
			} else if(!patt.test(ele.val())) {
				jVal.errors = true;
					surnameInfo.removeClass('correct').addClass('error').html('&larr; Puoi inserire solo lettere').show();
					ele.removeClass('normal').addClass('wrong');
			} else {
					surnameInfo.removeClass('error').addClass('correct').html('&radic;').show();
					ele.removeClass('wrong').addClass('normal');
			}
		},


		'nascita' : function (){

			$('body').append('<div id="nascitaInfo" class="info"></div>');

			var nascitaInfo = $('#nascitaInfo');
			var ele = $('#nascita');
			var pos = ele.offset();

			nascitaInfo.css({
				top: pos.top-3,
				left: pos.left+ele.width()+25
			});

			var patt = /^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d$/i;

			if(!patt.test(ele.val())) {
				jVal.errors = true;
					nascitaInfo.removeClass('correct').addClass('error').html('&larr; Inserisci correttamente la data senza simboli').show();
					ele.removeClass('normal').addClass('wrong');
			} else {
					nascitaInfo.removeClass('error').addClass('correct').html('&radic;').show();
					ele.removeClass('wrong').addClass('normal');
			}
		},


		'username' : function() {

			$('body').append('<div id="nicknameInfo" class="info"></div>');

			var nicknameInfo = $('#nicknameInfo');
			var ele = $('#username');
			var pos = ele.offset();

			nicknameInfo.css({
				top: pos.top-3,
				left: pos.left+ele.width()+25
			});

			if(ele.val().length < 3) {
				jVal.errors = true;
					nicknameInfo.removeClass('correct').addClass('error').html('&larr; Inserisci un Username!').show();
					ele.removeClass('normal').addClass('wrong').css({'font-weight': 'normal'});
			} else {
					nicknameInfo.removeClass('error').addClass('correct').html('&radic;').show();
					ele.removeClass('wrong').addClass('normal');
			}
		},


		'email' : function() {

			$('body').append('<div id="emailInfo" class="info"></div>');

			var emailInfo = $('#emailInfo');
			var ele = $('#email');
			var pos = ele.offset();

			emailInfo.css({
				top: pos.top-3,
				left: pos.left+ele.width()+25
			});

			var patt = /^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*\s+&lt;(\w[-._\w]*\w@\w[-._\w]*\w\.\w{2,3})&gt;$|^(\w[-._\w]*\w@\w[-._\w]*\w\.\w{2,3})$/i;

			if(!patt.test(ele.val())) {
				jVal.errors = true;
					emailInfo.removeClass('correct').addClass('error').html('&larr; Inserisci un indirizzo Mail valido').show();
					ele.removeClass('normal').addClass('wrong');
			} else {
					emailInfo.removeClass('error').addClass('correct').html('&radic;').show();
					ele.removeClass('wrong').addClass('normal');
			}

		},

		'interessi' : function() {

			$('body').append('<div id="interessiInfo" class="info"></div>');

			var interessiInfo = $('#interessiInfo');
			var ele = $('#interessi');
			var pos = ele.offset();

			interessiInfo.css({
				top: pos.top-3,
				left: pos.left+ele.width()+25
			});

			if(ele.val().length < 4) {
				jVal.errors = true;
					interessiInfo.removeClass('correct').addClass('error').html('&larr; Scrivimi qualcosa su di te!').show();
					ele.removeClass('normal').addClass('wrong').css({'font-weight': 'normal'});
			} else {
					interessiInfo.removeClass('error').addClass('correct').html('&radic;').show();
					ele.removeClass('wrong').addClass('normal');
			}
		},


		'password' : function() {

			$('body').append('<div id="passwordInfo" class="info"></div>');

			var passwordInfo = $('#passwordInfo');
			var ele = $('#password');
			var pos = ele.offset();

			passwordInfo.css({
				top: pos.top-3,
				left: pos.left+ele.width()+25
			});

			if(ele.val().length <= 0 ) {
				jVal.errors = true;
					passwordInfo.removeClass('correct').addClass('error').html('&larr; Inserisci la password!').show();
					ele.removeClass('normal').addClass('wrong');
			} else if (ele.val().length < 6 && ele.val().length > 0) {
				jVal.errors = true;
					passwordInfo.removeClass('correct').addClass('error').html('&larr; La password deve avere almeno 6 caratteri').show();
					ele.removeClass('normal').addClass('wrong');
			} else if (ele.val().length >= 6) {
				jVal.errors = false;
					passwordInfo.removeClass('error').addClass('correct').html('&radic;').show();
					ele.removeClass('wrong').addClass('normal');
				}
			},


			'password2' : function() {

				$('body').append('<div id="password2Info" class="info"></div>');

				var password2Info = $('#password2Info');
				var ele2 = $('#password2');
				var pos2 = ele2.offset();
				var ele = $('#password');
				var pos = ele.offset();

				password2Info.css({
					top: pos2.top-3,
					left: pos2.left+ele2.width()+25
				});

				if(ele2.val() != ele.val() ) {
					jVal.errors = true;
					password2Info.removeClass('correct').addClass('error').html('&larr; Le password devono coincidere!').show();
					ele2.removeClass('normal').addClass('wrong');
				} else {
					jVal.errors = false;
					password2Info.removeClass('error').addClass('correct').html('&radic;').show();
					ele2.removeClass('wrong').addClass('normal');
					}

				},


		'sendIt' : function (){
			if(!jVal.errors) {
				$('#jform').submit();
			}
		}
	};

// ====================================================== //

	$('#send').click(function (){
		var obj = $.browser.webkit ? $('body') : $('html');
		obj.animate({ scrollTop: $('#jform').offset().top }, 750, function (){
			jVal.errors = false;
			jVal.nome();
			jVal.cognome();
			jVal.nascita();
			jVal.username();
			jVal.email();
			jVal.interessi();
			jVal.password();
			jVal.password2();
			jVal.sendIt();
		});
		return false;
	});
//Qui colleghiamo il valore jVal.xxx al valore del form
	$('#nome').change(jVal.nome);
	$('#cognome').change(jVal.cognome);
	$('#nascita').change(jVal.nascita);
	$('#username').change(jVal.username);
	$('#email').change(jVal.email);
	$('#interessi').change(jVal.interessi);
	$('#password').change(jVal.password);
	$('#password2').change(jVal.password2);
});

impedisce che vengano inviati i dati al DB e alla mail. Avete qualche idea?
 

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
Ho provato ad utilizzare IE con il debug attivo ma nessun avviso è apparso. Ho postato già il codice js. cosa posso fare?
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
quando fai modifiche a IE, devi sempre riavviarlo per ottenere il risultato,

in ogni caso,

nello script, hai la seguente funzione legata al nome 'sendIt'
HTML:
'sendIt' : function (){ 
  if(!jVal.errors) { 
    $('#jform').submit(); 
  } 
}

in html, invece, id="send"
HTML:
<button type="submit" id="send" name="invia">Invia</button>

sostituisci con
id="sendIt"

se va ... un peluche come premio !
ciao
Marino
 

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
Ciao, allora ho provato a fare come mi hai suggerito, ma purtroppo non è venuto come speravo, mi spiego meglio. Ho sostituito il send con sendIt purtroppo ho perso la parte estetica del bottone di contro sono riuscito ad inviare i dati. La voce sendIt è solamente i nome della funzione mentre il send che appare in html è l'id e corrisponde a questo codice in js
PHP:
$('#send').click(function (){
		var obj = $.browser.webkit ? $('body') : $('html');
		obj.animate({ scrollTop: $('#jform').offset().top }, 750, function (){
			jVal.errors = false;
			jVal.nome();
			jVal.cognome();
			jVal.nascita();
			jVal.username();
			jVal.email();
			jVal.interessi();
			jVal.password();
			jVal.password2();
			jVal.sendIt();
		});
		return false;
	});
Non capisco dove possa essere l'errore.
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
ciao,
scusa il tempo, ma non è stato facile capire ....
modifica/inserisci le righe indicate,

PHP:
if(isset($_POST['sendmail'])){ <<<<<<<------------------------------------------- modifica
  if($_SERVER['REQUEST_METHOD'] == 'POST'){ 
    //Filtro dati con $mysqli
    $nome      = $mysqli->real_escape_string(trim($_POST['nome'])); 


<input type="hidden" name="sendmail" value="">  <<<<<<<-------------------------- inserisci
<button type="submit" id="send" name="invia">Invia</button> <<<<<<<-------------- modifica


  $('#interessi').change(jVal.interessi); 
  $('#password').change(jVal.password); 
  $('#password2').change(jVal.password2); 
  $('#sendmail').change('ok');   <<<<<<<----------------------------------------- inserisci
});  


} else if (ele.val().length >= 6) { 
  jVal.errors = false;    <<<<<<<------------------------------------------------ elimina
  passwordInfo.removeClass('error').addClass('correct').html('&radic;').show(); 


} else { 
  jVal.errors = false;    <<<<<<<------------------------------------------------ elimina
  password2Info.removeClass('error').addClass('correct').html('&radic;').show();

penso riesci a ritrovare tutto,

la variabile 'sendmail' dice a php che è stato cliccato il submit ....
i 'false' che ti faccio togliere, se lasciati, vanificano i controlli precedenti

fammi sapere se la mail .... è salpata
ciao
Marino
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
scusa, una precisazione,

può essere che la riga 'sendmail', debba essere messa così invece che con le altre variabili,

PHP:
    'sendIt' : function (){ 
      if(!jVal.errors) { 
        $('#sendmail').change('ok'); 
        $('#jform').submit(); 
      } 
    }

devi fare tu qualche prova per vedere come si comporta in caso di errori, io non sono in grado di fare test,
avendo solo un codice parziale
ciao
Marino
 

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
Ciao, non so come ringraziarti! Non ho purtroppo le nozioni per fare di mia iniziativa quello che mi hai scritto quindi ho palesemente copiato e cambiato i valori come mi hai suggerito, e finalmente funziona. Essendo tutto in autonomia ed autodidatta è già qualcosa che abbia fatto questo. Grazie ancora!!!!
 
Discussioni simili
Autore Titolo Forum Risposte Data
C [PHP] Campo facoltativo del form che non deve risultare nella risposta se negativo PHP 6
asevenx [PHP] form con select che non invia dati se con apostrofo PHP 4
P Controllare che il form sia composto da soli numeri e non sia vuoto? Javascript 11
C Problema form javascript che non funziona Javascript 4
asevenx form che non invia al DB un campo PHP 6
S Apertura popup da form che non si può toccare Javascript 1
T FORM MAIL che non mi riesce PHP 18
F form che non invia email Aiuto!!! HTML e CSS 1
K Form che manda dati doppi PHP 1
C [PHP] Form con Inserimento dati dalla maschera e un menù a discesa che prende i dati dal db PHP 1
K Data in un form che si collega ad un tabella Ajax 5
paloppa Div che appare appena due form sono compilati jQuery 16
V [Javascript] Campo form che si completa in automatico Javascript 1
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
S form php che invia dati a Paypal PHP 4
T [Javascript] un form con select dinamica che funzioni da menù... Javascript 2
L aiuto: form che dovrebbe restituire immagine PHP 2
A form che si refrescia dopo modifica tabella mysql PHP 2
ivarello Form Che avvia upload e controllo automatico PHP 1
M liberia fpdf creare form che al premere al bottone di sumit mi crei il pdf PHP 0
S Form PHP: Messaggio di conferma che compare al caricamento della pagina PHP 11
S form che invia la query ogni volta che si rinfresca la pagina PHP 2
D problema con form che invia dati al database PHP 0
S script php che raccoglie form javascript e lo invia tramite mail PHP 0
R Form che all'invio dei dati perde $_SESSION PHP 1
M Devo realizzare un form che vi invii dei dati su un email PHP 8
P Box form che include codice php PHP 0
H Creare una pagina che si collega a keepvid. come impostare il form? HTML e CSS 3
X form che ricava dati da una tabella e li salva in un altra PHP 8
J form che casino Javascript 0
A Chi è capace? (Integrazione di form mail php in una pagina che sfrutta script .js) PHP 6
S passare un valore da un form a un file .php con metodo post PHP 4
K Problema form update PHP 2
Elisacau [Contact form 7] Inserire Numero auto incrementante WordPress 1
K form Inserimento record mysql PHP 2
I Form con selettore HTML e CSS 0
K [php]form invio dati PHP 0
G form invio multiplo con checkbox PHP 12
nivaria.achinet Intercettare form solo dopo invio Javascript 1
D Form contatti non funzionante HTML e CSS 0
A Stampare dati da form PHP 8
M Unire 2 funzioni per l'invio di un form e con l'apertura di un div Javascript 0
I Form HTML e CSS 17
otto9due $_FILE non passa i dati dal form PHP 1
M Form: come tornare ai campi già compilati dopo invio PHP 1
G Invio form con PHP PHP 3
felino Form action costum e parametri in queryString WordPress 1
M Come recuperare molteplici input form PHP 1
M Collegamento tra form html e script php PHP 4
L form immagini per il database PHP 0

Discussioni simili