Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di stranyera
    Registrato dal
    Feb 2001
    Messaggi
    1,101

    ricezione mail da form: funziona ma la mail è vuota

    come da titolo,
    ho trovato la soluzione al mio problema postato ieri, pero' nonostante il form funzioni correttamente (mi segnala i campi non compilati e mi segnala se la mail non è un indirizzo valido) e ricevo la mail, questa ultima è pero' vuota.

    questo il mio form:
    codice:
    <form name='contactform' action="simplescript.php"> 
    <div class='cform'>
    
    <span id='name-err' class='formErrMsg'></span>
    <label for="name">Nome e cognome</label><input name="name" id="name" type="text" value="" class="req"/> 
    
    <label for="company">Azienda</label><input name="company" id="company" type="text" value="" class=""/> 
    
    <span id='electronicaddress-err' class='formErrMsg'></span>
    <label for="electronicaddress">Email</label><input name="electronicaddress" id="electronicaddress" type="text" value="" class="req validemail"/> 
    
    <label for="phone">Telefono</label><input name="phone" id="phone" type="text" value=""/> 
    
    <label for"messagge">Messaggio</label><textarea name='message' id='message' class='req'></textarea>
    
    <input type='button' onClick="sendForm();" name='sendbutton' id='sendbutton' value='Invia'>
    </div>
    </form>
    questo il simplescript.php
    codice:
    $subject = 'Informazioni dal sito';                // Subject of email sent to you.
    $emailadd = 'miamail@mioprovider.';        // Your email address. This is where the form information will be sent.
    $url = 'http://www.miosito.com/miapagina.htm';               // Where to redirect after form is processed.
    $req = '1';                                  // Makes all fields required. If set to '1' no field can not be empty. If set to '0' any or all fields can be empty.
    
    // --------------------------Do not edit below this line--------------------------
    $text = "Results from form:\n\n";       
    $space = '  ';
    $line = '
    ';
    foreach ($_POST as $key => $value)
    {
    	if ($req == '1')
    	{
    		if ($value == '')
    		{echo "$key is empty";die;}
    	}
    	$j = strlen($key);
    		if ($j >= 20)
    		{echo "Name of form element $key cannot be longer than 20 characters";die;}
    	$j = 20 - $j;
    		for ($i = 1; $i <= $j; $i++)
    		{$space .= ' ';}
    	$value = str_replace('\n', "$line", $value);
    	$conc = "{$key}:$space{$value}$line";
    	$text .= $conc;
    	$space = '  ';
    }
    mail($emailadd, $subject, $text, 'From: '.$emailadd.'');
    echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL='.$url.'">';
    ?>
    nell'html della mia pagina contatti ho un paio di javascript, uno per il "focus" sui campi e questo
    codice:
    var sending = 0;
    function sendForm(){
    
         if( validateForm(document.contactform) && sending == 0){
            document.getElementById('sendbutton').value = 'Attendere...';
            sending = 1;
       	document.contactform.submit();          
        }
    
    }

  2. #2
    Utente di HTML.it L'avatar di stranyera
    Registrato dal
    Feb 2001
    Messaggi
    1,101
    dimenticavo...viene richiamato anche un altro javascript chiamato "validateform.js":
    codice:
    function form_behave(control, key, rules){
      rules = forms_rulesToArray(rules);
      for (var i = 0; i < rules.length; i++)
      {
        var rule = rules[i].split(/\s*:\s*/);
        if (rule.length < 2) continue;
        if (!forms_instring(' '+rule[0]+' ', control.name)) continue;
        rule[1] = rule[1].split(/\s+/);
        switch (rule[1][0])
        {
          // ----- wordcount -----
          case 'wordcount':
            var formcontent = control.value;
            while(formcontent.indexOf("  ") > 0){
              formcontent = formcontent.replace("  "," ");
            }       
            formcontent = formcontent.split(" ");
            document.getElementById(rule[1][1]).innerHTML = formcontent.length;
            if (rule[1].length >= 5)
              if (formcontent.length <= rule[1][2]){
                   document.getElementById(rule[1][1]).style.color = rule[1][3];
                   control.className = control.className.replace('overflow','');
                   control.className = control.className.replace('formErr','');
              }else{
                   document.getElementById(rule[1][1]).style.color = rule[1][4];
                   if(control.className.indexOf('overflow') != 1){
                      control.className = control.className + ' overflow formErr';
                   }
              }
                break;
          // ----- next -----
          case 'next':
            if (control.value.length == rule[1][1]) smartforms_focusNext(control);
            break;
          // ----- prev -----
          case 'prev':
            if (control.value.length == 0 && key == 8) smartforms_focusPrev(control);
            break;
        }
      }
      return true;
    }
    // ----- getElement ------------------------------------------------------------
    function formGetSettings(tag, name)
    {
      var settings = "";
      for (var i = 0; i < tag.elements.length; i++){ //for each formsetting hidden tag
         if (tag.elements[i].name.substr(0,tag.elements[i].name.length) == name){
    	  	  settings = settings + tag.elements[i].value;
         }
      }
      return settings;
    }
    // ----- inString --------------------------------------------------------------
    function forms_instring(str, val)
    {
      return str.indexOf(' '+val+' ') >= 0;
    }
    // ----- focusNext -------------------------------------------------------------
    function smartforms_focusNext(tag)
    {
      for (var i = 0; i < tag.form.elements.length; i++)
        if (tag.form.elements[i] == tag)
          for (var j = i+1; j < tag.form.elements.length; j++)
            if (forms_instring(smartforms_edit, tag.form.elements[j].type))
            {
              if (forms_instring(smartforms_type, tag.form.elements[j].type))
                   smartforms_setSelection(tag.form.elements[j], 0, 0, 'frEnd');
              else tag.form.elements[j].focus();
              return false;
            }
      return true;
    }
    // ----- focusPrev -------------------------------------------------------------
    function smartforms_focusPrev(tag)
    {
      for (var i = 0; i < tag.form.elements.length; i++)
        if (tag.form.elements[i] == tag)
          for (var j = i-1; j >= 0; j--)
            if (forms_instring(smartforms_edit, tag.form.elements[j].type))
            {
              if (forms_instring(smartforms_type, tag.form.elements[j].type))
                   smartforms_setSelection(tag.form.elements[j], 0, 0, 'frEnd');
              else tag.form.elements[j].focus();
              return false;
            }
      return true;
    }
    function forms_rulesToArray(rules)
    {
      rules = rules.replace(/^(\s*)(\S.*)/, "$2");
      rules = rules.replace(/(.*\S)(\s*)$/, "$1");
      return rules.split(/\s*;\s*/);
    }
    // ----- Initialize ------------------------------------------------------------
    function formActivate(control, rules)
    {
      rules = forms_rulesToArray(rules);
      for (var i = 0; i < rules.length; i++)
      {
        var rule = rules[i].split(/\s*:\s*/);
        if (rule.length < 2) continue;
        if (!forms_instring(' '+rule[0]+' ', control.name)) continue;
        rule[1] = rule[1].split(/\s+/);
        switch (rule[1][0])
        {
          case 'wordcount':
            var formcontent = control.value;
            while(formcontent.indexOf("  ") > 0){
              formcontent = formcontent.replace("  "," ");
            }       
            formcontent = formcontent.split(" ");
            document.getElementById(rule[1][1]).innerHTML = formcontent.length;
            if (rule[1].length >= 5)
              if (formcontent.length <= rule[1][2]){
                   document.getElementById(rule[1][1]).style.color = rule[1][3];
                   control.className = control.className.replace('overflow','');
                   control.className = control.className.replace('formErr','');
              }else{
                   document.getElementById(rule[1][1]).style.color = rule[1][4];
                   if(control.className.indexOf('overflow') != 1){
                      control.className = control.className + ' overflow formErr';
                   }
              }
             break;
        }
      }
      return true;
    }
    // ----- onChange --------------------------------------------------------------
    function forms_onchange(e)
    {
      var ie  = navigator.appName == "Microsoft Internet Explorer";
      var tag = ie ? window.event.srcElement : e.target;
      return true;
    }
    // ----- onKeypress ------------------------------------------------------------
    function forms_onkeypress(e)
    {
      var ie  = navigator.appName == "Microsoft Internet Explorer";
      var tag = ie ? window.event.srcElement : e.target;
      var key = ie ? window.event.keyCode    : e.which;
        if (key == 8) //over rise both backspace and enter
          return forms_instring(smartforms_type, tag.type);
        if (key == 13 && tag.type != 'textarea')
          return smartforms_focusNext(tag);
      return true;
    }
    // ----- onKeyup ---------------------------------------------------------------
    function forms_onkeyup(e)
    {
      var ie  = navigator.appName == "Microsoft Internet Explorer";
      var tag = ie ? window.event.srcElement : e.target;
      var key = ie ? window.event.keyCode    : e.which;
      var settings = formGetSettings(tag.form, 'form_settings');
      if (settings !== "") form_behave(tag, key, settings);
    }
    // ----- Register --------------------------------------------------------------
    function initForms()
    {
      for (var i = 0; i < document.forms.length; i++){
        with (document.forms[i]){
        settings = formGetSettings(document.forms[i], 'form_settings');
          for (var j = 0; j < elements.length; j++)
         {
            if (settings != "") formActivate(elements[j], settings);
           elements[j].onchange   = forms_onchange;
            elements[j].onkeypress = forms_onkeypress;
            elements[j].onkeyup    = forms_onkeyup;
          }
        }
      }
    }
     var modal_msg = "";
     var modal = false; // popup error
     var err = true; // on page errors
    var displayErrorMessage = function(form, field, first) {
    var labels = document.getElementsByTagName('label');
    		var errorMsg = '';
    	if (field.type=='radio'||field.type=='checkbox'||field.type=='select-one') {
    		for (var i = 0; i<labels.length; i++) {
    				if (labels[i].htmlFor==field.name) {
    					    errorMsg = 'Non hai compilato il campo ' + labels[i].innerHTML.replace('*','').replace(':','');
    		}
    			}
    		} else {
    			for (var i = 0; i<labels.length; i++) {
    				if (labels[i].htmlFor==field.id) {
                   if (field.className.indexOf('overflow') != -1){ //a count overflow
                       errorMsg = 'You have exceeded the allowed number of words for ' + labels[i].innerHTML.replace('*','').replace(':','');
                   }else{
    					    errorMsg = 'Non hai compilato il campo ' + labels[i].innerHTML.replace('*','').replace(':','');
    			      }
    				}
    			}
    		}
    if (modal) {
    			modal_msg += errorMsg;
    		}
    		if (err) {
    		   errorDiv = document.getElementById(field.id + '-err');
    			if (document.getElementById(field.id + '-err')) {
    					errorDiv.innerHTML = errorMsg;
    			}
    		}
    		if(first){
    			field.focus();
    		}
    	}
    	function validateForm(form){
    		//get all the form fields
    		var fields = form.elements;
    		var passedCheck = true;
    		for (var i=0; i<fields.length; i++) {
            if (fields[i].className.indexOf('wordcount') != -1){
                if(fields[i].className.indexOf('overflow') != -1){
    				   err == true ? displayErrorMessage(form, fields[i], passedCheck) : null;
    				   passedCheck = false;           
                }else{
    						fields[i].className = fields[i].className.replace('formErr','');
    						errorDiv = document.getElementById(fields[i].id + '-err');
    						if (errorDiv) {
    							errorDiv.innerHTML = '';
    						}
                }
    	}else if (fields[i].className.indexOf('req') != -1) {
    // Text, Textarea, File
    				if (fields[i].type=='text'||fields[i].type=='textarea'||fields[i].type=='file') {
    					if (fields[i].value=="") {
    						fields[i].className = fields[i].className + ' formErr';
    						err == true ? displayErrorMessage(form, fields[i], passedCheck) : null;
    						passedCheck = false;
    					} else if(fields[i].className.indexOf('validemail') != -1 ){ //validate email
    						var dot = fields[i].value.lastIndexOf('.');
    						var at = fields[i].value.indexOf('@');
    						if( (dot - at) > 0 && at > 0 ){ //valid
    							fields[i].className = fields[i].className.replace('formErr','');
    							errorDiv = document.getElementById(fields[i].id + '-err');
    							if (errorDiv) {
    								errorDiv.innerHTML = '';
    							}	
    						} else {
    							errorDiv = document.getElementById(fields[i].id + '-err');
    							if (document.getElementById(fields[i].id + '-err')) {
    								errorDiv.innerHTML = "Attenzione la mail non è valida";
    							}
    							passedCheck = false;
    						}
    			} else { //no error
    						fields[i].className = fields[i].className.replace('formErr','');
    						errorDiv = document.getElementById(fields[i].id + '-err');
    						if (errorDiv) {
    							errorDiv.innerHTML = '';
    						}
    					}
    			}
    // Radio
    				else if (fields[i].type=='radio') {
    					var radiogroup = el[fields[i].name];
    					  var itemchecked = false;
    					  for(var j = 0 ; j < radiogroup.length ; ++j) {
    						if(radiogroup[j].checked) {
    							itemchecked = true;
    							break;
    						}
    					  }
    					  if(!itemchecked) { 
    						fields[i].className = fields[i].className + ' formErr';
    						err == true ? displayErrorMessage(form, fields[i], passedCheck) : null;
    						passedCheck = false;
    					  } else {
    						errorDiv = document.getElementById(fields[i].id + '-err');
    						if (errorDiv) {
    							errorDiv.innerHTML = '';
    						}
    					  }
    				}
    // Checkbox
    				else if (fields[i].type=='checkbox') {
    					var itemchecked = false;
    					  var elems = document.getElementsByTagName("input");
    					  for(var j=0; j<elems.length; j++) {
    					if(elems[j].type=='checkbox'&&elems[j].name==fields[i].name) {
    							if(elems[j].checked) {
    								itemchecked = true;
    								break;
    							}
    						}
    					  }
    					  if(!itemchecked) { 
    						fields[i].className = fields[i].className + ' formErr';
    						err == true ? displayErrorMessage(form, fields[i], passedCheck) : null;
    						passedCheck = false;
    					  } else {
    						errorDiv = document.getElementById(fields[i].id + '-err');
    						if (errorDiv) {
    							errorDiv.innerHTML = '';
    						}
    					  }
    				}
    // Select-one
    				else if (fields[i].type=='select-one') {
    					if (fields[i].selectedIndex==0) {
    						fields[i].className = fields[i].className + ' formErr';
    						err == true ? displayErrorMessage(form, fields[i], passedCheck) : null;
    						passedCheck = false;
    					  } else {
    						fields[i].className = fields[i].className.replace('formErr','');
    						errorDiv = document.getElementById(fields[i].id + '-err');
    						if (errorDiv) {
    							errorDiv.innerHTML = '';
    						}
    					  }
    				}
    // Select-multiple
    				else if (fields[i].type=='select-multiple') {
    					var optionselected = false;
    						for(var j=0;j<fields[i].options.length; ++j) {
    							if (fields[i].options[j].selected) {
    								optionselected = true;
    								break;
    							}
    						}
    						if (!optionselected) {
    						fields[i].className = fields[i].className + ' formErr';
    						err == true ? displayErrorMessage(form, fields[i], passedCheck) : null;
    						passedCheck = false;
    					  } else {
    						fields[i].className = fields[i].className.replace('formErr','');
    						errorDiv = document.getElementById(fields[i].id + '-err');
    						if (errorDiv) {
    							errorDiv.innerHTML = '';
    						}
    					  }
    				}
    			}
    		}
    		if(passedCheck == true){
    			return true;
    		} else {
    			if(modal == true){
    				alert(modal_msg);
    			}
    			return false;
    		}
    	}
    function submitThis(aform){
       if(validateForm(aform)){
          aform.submit();
       }
    }
    ...ripeto, funziona tutto: la mail mi arriva ma è vuota.

  3. #3
    Utente di HTML.it L'avatar di stranyera
    Registrato dal
    Feb 2001
    Messaggi
    1,101
    un aiutino

  4. #4
    Utente di HTML.it L'avatar di stranyera
    Registrato dal
    Feb 2001
    Messaggi
    1,101
    proprio nessuno mi aiuta a cpaire e risolvere il mio problema?

  5. #5
    Utente di HTML.it L'avatar di stranyera
    Registrato dal
    Feb 2001
    Messaggi
    1,101
    cosa c'è che non va?....possibile che nessuno sappia darmi un aiuto?

  6. #6
    Hai visto se le variabili passate dalla form vengono passate o meno?

    Io fossi in te, toglierei momentaneamente il javascript e proverei se le variabili arrivano in simplescript.php .

    Ad occhio però, aggiungerei prima il method e l'enctype alla action della form.

    codice:
    <form name="contactform" action="simplescript.php"  enctype="multipart/form-data" method="post">
    .

    Simplescript.php, invece, lo scriverei così:

    Codice PHP:

    echo "
    $_POST['name']. 

    $_POST['company']. 

    $_POST['electronicaddress']. 

    $_POST['phone']. 

    $_POST['message']. 

    "
    ;
    exit; 
    Vedì cosa ti stampa a video e poi facci sapere!

    ciao
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    Utente di HTML.it L'avatar di stranyera
    Registrato dal
    Feb 2001
    Messaggi
    1,101
    nulla...non fa nulla, una volta cliccato su "invia"

  8. #8
    Ergo: non vengono passate le variabili!

    Ti ripeto.
    Debugga un pezzettino per volta.
    Togli il javascript nella pagina con la form di invio, e manda la action alla pagina simplescript.php modificata come ti ho detto io.

    Fai attenzione a mettere la action della form nel modo che ti ho scritto nel post precedente.
    Nel tuo script, infatti manca sia il metodo di trasmissione delle variabili (get/post) sia l'enctype, che nel caso di form per le quali vengono passate molte variabili, è fondamentale.

    Fai questi piccoli passaggi e vedi se le variabili della form arrivano allo script di invio della mail.
    Una volta che queste arrivano, aggiungi le altre parti di codice una per volta, così arrivi a vedere dove sta l'inghippo e quindi ad analizzare quella porzione in cerca dell'errore maledetto.

    OK???
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.