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?
 
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:
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?
 
Ho provato ad utilizzare IE con il debug attivo ma nessun avviso è apparso. Ho postato già il codice js. cosa posso fare?
 
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
 
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.
 
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
 
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
 
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