Foros del Web » Programando para Internet » Javascript »

Problema con envio de formulario forms.js y php

Estas en el tema de Problema con envio de formulario forms.js y php en el foro de Javascript en Foros del Web. Hola amigos del foro, tengo un problema que aun no logro resolver. Resulta que tengo un formulario que al hacer clic en enviar no sucede ...
  #1 (permalink)  
Antiguo 11/11/2012, 07:20
 
Fecha de Ingreso: marzo-2012
Mensajes: 6
Antigüedad: 12 años, 2 meses
Puntos: 0
Problema con envio de formulario forms.js y php

Hola amigos del foro, tengo un problema que aun no logro resolver. Resulta que tengo un formulario que al hacer clic en enviar no sucede nada, o sea no me llega el correo a mi bandeja que por cierto es gmail.

este es el codigo.

Supuestamente mi servidor es gmail, porque mi correo es gmail: smtpMailServer:'smtp.gmail.com',
por ahi escuche que tengo que validar mi servidor, no se como es eso.

Otra duda es que no tengo el archivo php dentro de mi directorio ¿Tengo que crearlo?:
mailHandlerURL:'bin/MailHandler.php'

Al correo que deseo que me llegue el formulario es:
ownerEmail:'[email protected]',

forms.js

Código:
(function($){
	$.fn.extend({
		forms:function(opt){
			if(opt===undefined)
				opt={}
			this.each(function(){
				var th=$(this),
					data=th.data('forms'),
					_={
						errorCl:'error',
						emptyCl:'empty',
						invalidCl:'invalid',
						notRequiredCl:'notRequired',
						successCl:'success',
						successShow:'4000',
						mailHandlerURL:'bin/MailHandler.php',
						ownerEmail:'[email protected]',
						stripHTML:true,
						smtpMailServer:'smtp.gmail.com',
						targets:'input,textarea',
						controls:'a[data-type=reset],a[data-type=submit]',
						validate:true,
						rx:{
							".name":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
							".state":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
							".email":{rx:/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i,target:'input'},
							".text":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
							".phone":{rx:/^\+?(\d[\d\-\+\(\) ]{5,}\d$)/,target:'input'},
							".fax":{rx:/^\+?(\d[\d\-\+\(\) ]{5,}\d$)/,target:'input'},
							".message":{rx:/.{20}/,target:'textarea'}
						},
						preFu:function(){
							_.labels.each(function(){
								var label=$(this),
									inp=$(_.targets,this),
									defVal=inp.val(),
									trueVal=(function(){
												var tmp=inp.is('input')?(tmp=label.html().match(/value=['"](.+?)['"].+/),!!tmp&&!!tmp[1]&&tmp[1]):inp.html()
												return defVal==''?defVal:tmp
											})()
								trueVal!=defVal
									&&inp.val(defVal=trueVal||defVal)
								label.data({defVal:defVal})								
								inp
									.bind('focus',function(){
										inp.val()==defVal
											&&(inp.val(''),_.hideEmptyFu(label),label.removeClass(_.invalidCl))
									})
									.bind('blur',function(){
										_.validateFu(label)
										if(_.isEmpty(label))
											inp.val(defVal)
											,_.hideErrorFu(label.removeClass(_.invalidCl))											
									})
									.bind('keyup',function(){
										label.hasClass(_.invalidCl)
											&&_.validateFu(label)
									})
								label.find('.'+_.errorCl+',.'+_.emptyCl).css({display:'block'}).hide()
							})
							_.success=$('.'+_.successCl,_.form).hide()
						},
						isRequired:function(el){							
							return !el.hasClass(_.notRequiredCl)
						},
						isValid:function(el){							
							var ret=true
							$.each(_.rx,function(k,d){
								if(el.is(k))
									ret=d.rx.test(el.find(d.target).val())										
							})
							return ret							
						},
						isEmpty:function(el){
							var tmp
							return (tmp=el.find(_.targets).val())==''||tmp==el.data('defVal')
						},
						validateFu:function(el){							
							el.each(function(){
								var th=$(this)
									,req=_.isRequired(th)
									,empty=_.isEmpty(th)
									,valid=_.isValid(th)								
								
								if(empty&&req)
									_.showEmptyFu(th.addClass(_.invalidCl))
								else
									_.hideEmptyFu(th.removeClass(_.invalidCl))
								
								if(!empty)
									if(valid)
										_.hideErrorFu(th.removeClass(_.invalidCl))
									else
										_.showErrorFu(th.addClass(_.invalidCl))								
							})
						},
						getValFromLabel:function(label){
							var val=$('input,textarea',label).val()
								,defVal=label.data('defVal')								
							return label.length?val==defVal?'nope':val:'nope'
						}
						,submitFu:function(){
							_.validateFu(_.labels)							
							if(!_.form.has('.'+_.invalidCl).length)
								$.ajax({
									type: "POST",
									url:_.mailHandlerURL,
									data:{
										name:_.getValFromLabel($('.name',_.form)),
										email:_.getValFromLabel($('.email',_.form)),
										text:_.getValFromLabel($('.text',_.form)),
										phone:_.getValFromLabel($('.phone',_.form)),
										fax:_.getValFromLabel($('.fax',_.form)),
										state:_.getValFromLabel($('.state',_.form)),
										message:_.getValFromLabel($('.message',_.form)),
										owner_email:_.ownerEmail,
										stripHTML:_.stripHTML
									},
									success: function(){
										_.showFu()
									}
								})			
						},
						showFu:function(){
							_.success.slideDown(function(){
								setTimeout(function(){
									_.success.slideUp()
									_.form.trigger('reset')
								},_.successShow)
							})
						},
						controlsFu:function(){
							$(_.controls,_.form).each(function(){
								var th=$(this)
								th
									.bind('click',function(){
										_.form.trigger(th.data('type'))
										return false
									})
							})
						},
						showErrorFu:function(label){
							label.find('.'+_.errorCl).slideDown()
						},
						hideErrorFu:function(label){
							label.find('.'+_.errorCl).slideUp()
						},
						showEmptyFu:function(label){
							label.find('.'+_.emptyCl).slideDown()
							_.hideErrorFu(label)
						},
						hideEmptyFu:function(label){
							label.find('.'+_.emptyCl).slideUp()
						},
						init:function(){
							_.form=this
							_.labels=$('label',_.form)

							_.preFu()
							
							_.controlsFu()
															
							_.form
								.bind('submit',function(){
									if(_.validate)
										_.submitFu()
									else
										_.form[0].submit()
									return false
								})
								.bind('reset',function(){
									_.labels.removeClass(_.invalidCl)									
									_.labels.each(function(){
										var th=$(this)
										_.hideErrorFu(th)
										_.hideEmptyFu(th)
									})
								})
							_.form.trigger('reset')
						}
					}
				if(!data)
					(typeof opt=='object'?$.extend(_,opt):_).init.call(th),
					th.data({cScroll:_}),
					data=_
				else
					_=typeof opt=='object'?$.extend(data,opt):data
			})
			return this
		}
	})
})(jQuery)
  #2 (permalink)  
Antiguo 11/11/2012, 12:25
 
Fecha de Ingreso: mayo-2011
Mensajes: 105
Antigüedad: 13 años
Puntos: 3
Respuesta: Problema con envio de formulario forms.js y php

estas trabajando en local o en hosting y dominio? porque existe algo de las listas negras, donde tu ip puede estar bloqueada y por eso el envio falla...
  #3 (permalink)  
Antiguo 11/11/2012, 12:52
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema con envio de formulario forms.js y php

Yo empezaría por revisar tu MailHandler.php'
SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #4 (permalink)  
Antiguo 11/11/2012, 15:12
 
Fecha de Ingreso: marzo-2012
Mensajes: 6
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Problema con envio de formulario forms.js y php

Mi hosting es gratuito, y el dominio es .tk

Mi web ya esta subida al hosting, es: www.herbertespejoflores.tk y como se daran cuenta en la parte de contacto no envia los correos del formulario.

Y con respecto al MailHandler.php, ese archivo no lo tengo dentro de mi directorio raiz, lo que he hecho es recien crear un archivo MailHadler.php pero no se en que parte colocarlo. Por el momento he creado una carpeta llamada bin y dentro de ella puse el MailHadler.php pero aun eso no funciona.

Mi servidor es supuestamente gmail.com

MailHadler.php

Código PHP:
<?php
    $owner_email 
$_POST["[email protected]"];
    
$headers 'From:' $_POST["email"];
    
$subject 'A message from your site visitor ' $_POST["name"];
    
$messageBody "";
    
    
$messageBody .= '<p>Visitor: ' $_POST["name"] . '</p>' "\n";
    
$messageBody .= '<br>' "\n";
    
$messageBody .= '<p>Email Address: ' $_POST['email'] . '</p>' "\n";
    
$messageBody .= '<br>' "\n";
    
$messageBody .= '<p>Phone Number: ' $_POST['phone'] . '</p>' "\n";
    
$messageBody .= '<br>' "\n";
    
$messageBody .= '<p>Message: ' $_POST['message'] . '</p>' "\n";
    
    if(
$_POST["stripHTML"] == 'true'){
        
$messageBody strip_tags($messageBody);
    }

    try{
        if(!
mail($owner_email$subject$messageBody$headers)){
            throw new 
Exception('mail failed');
        }else{
            echo 
'mail sent';
        }
    }catch(
Exception $e){
        echo 
$e->getMessage() ."\n";
    }
?>

Última edición por herbertespejoflores; 11/11/2012 a las 15:16 Razón: mail, contact form
  #5 (permalink)  
Antiguo 11/11/2012, 15:45
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Problema con envio de formulario forms.js y php

para mandar correo via gmail, te aconsejo utilices este
http://code.google.com/a/apache-extras.org/p/phpmailer/

SAludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #6 (permalink)  
Antiguo 28/02/2013, 11:38
 
Fecha de Ingreso: diciembre-2008
Mensajes: 2
Antigüedad: 15 años, 5 meses
Puntos: 0
Busqueda Respuesta: Problema con envio de formulario forms.js y php

Código:
//forms
;(function($){
	$.fn.forms=function(o){
		return this.each(function(){
			var th=$(this)
				,_=th.data('forms')||{
					errorCl:'error',
					emptyCl:'empty',
					invalidCl:'invalid',
					notRequiredCl:'notRequired',
					successCl:'success',
					successShow:'4000',
					mailHandlerURL:'lugar_de_Tu_Mailhandler.php',
					ownerEmail:'[email protected]',
					stripHTML:true,
					smtpMailServer:'tusmtpserver.com',
					targets:'input,textarea',
					controls:'a[data-type=reset],a[data-type=submit]',
					validate:true,
					rx:{
						".name":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
						".state":{rx:/^[a-zA-Z'][a-zA-Z-' ]+[a-zA-Z']?$/,target:'input'},
						".email":{rx:/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i,target:'input'},
						".phone":{rx:/^\+?(\d[\d\-\+\(\) ]{5,}\d$)/,target:'input'},
						".fax":{rx:/^\+?(\d[\d\-\+\(\) ]{5,}\d$)/,target:'input'},
						".message":{rx:/.{20}/,target:'textarea'}
					},
					preFu:function(){
						_.labels.each(function(){
							var label=$(this),
								inp=$(_.targets,this),
								defVal=inp.val(),
								trueVal=(function(){
											var tmp=inp.is('input')?(tmp=label.html().match(/value=['"](.+?)['"].+/),!!tmp&&!!tmp[1]&&tmp[1]):inp.html()
											return defVal==''?defVal:tmp
										})()
							trueVal!=defVal
								&&inp.val(defVal=trueVal||defVal)
							label.data({defVal:defVal})								
							inp
								.bind('focus',function(){
									inp.val()==defVal
										&&(inp.val(''),_.hideEmptyFu(label),label.removeClass(_.invalidCl))
								})
								.bind('blur',function(){
									_.validateFu(label)
									if(_.isEmpty(label))
										inp.val(defVal)
										,_.hideErrorFu(label.removeClass(_.invalidCl))											
								})
								.bind('keyup',function(){
									label.hasClass(_.invalidCl)
										&&_.validateFu(label)
								})
							label.find('.'+_.errorCl+',.'+_.emptyCl).css({display:'block'}).hide()
						})
						_.success=$('.'+_.successCl,_.form).hide()
					},
					isRequired:function(el){							
						return !el.hasClass(_.notRequiredCl)
					},
					isValid:function(el){							
						var ret=true
						$.each(_.rx,function(k,d){
							if(el.is(k))
								ret=d.rx.test(el.find(d.target).val())										
						})
						return ret							
					},
					isEmpty:function(el){
						var tmp
						return (tmp=el.find(_.targets).val())==''||tmp==el.data('defVal')
					},
					validateFu:function(el){							
						el.each(function(){
							var th=$(this)
								,req=_.isRequired(th)
								,empty=_.isEmpty(th)
								,valid=_.isValid(th)								
							
							if(empty&&req)
								_.showEmptyFu(th.addClass(_.invalidCl))
							else
								_.hideEmptyFu(th.removeClass(_.invalidCl))
							
							if(!empty)
								if(valid)
									_.hideErrorFu(th.removeClass(_.invalidCl))
								else
									_.showErrorFu(th.addClass(_.invalidCl))								
						})
					},
					getValFromLabel:function(label){
						var val=$('input,textarea',label).val()
							,defVal=label.data('defVal')								
						return label.length?val==defVal?'nope':val:'nope'
					}
					,submitFu:function(){
						_.validateFu(_.labels)							
						if(!_.form.has('.'+_.invalidCl).length)
							$.ajax({
								type: "POST",
								url:_.mailHandlerURL,
								data:{
									name:_.getValFromLabel($('.name',_.form)),
									email:_.getValFromLabel($('.email',_.form)),
									phone:_.getValFromLabel($('.phone',_.form)),
									fax:_.getValFromLabel($('.fax',_.form)),
									state:_.getValFromLabel($('.state',_.form)),
									message:_.getValFromLabel($('.message',_.form)),
									owner_email:_.ownerEmail,
									stripHTML:_.stripHTML
								},
								success: function(){
									_.showFu()
								}
							})			
					},
					showFu:function(){
						_.success.slideDown(function(){
							setTimeout(function(){
								_.success.slideUp()
								_.form.trigger('reset')
							},_.successShow)
						})
					},
					controlsFu:function(){
						$(_.controls,_.form).each(function(){
							var th=$(this)
							th
								.bind('click',function(){
									_.form.trigger(th.data('type'))
									return false
								})
						})
					},
					showErrorFu:function(label){
						label.find('.'+_.errorCl).slideDown()
					},
					hideErrorFu:function(label){
						label.find('.'+_.errorCl).slideUp()
					},
					showEmptyFu:function(label){
						label.find('.'+_.emptyCl).slideDown()
						_.hideErrorFu(label)
					},
					hideEmptyFu:function(label){
						label.find('.'+_.emptyCl).slideUp()
					},
					init:function(){
						_.form=_.me						
						_.labels=$('label',_.form)

						_.preFu()
						
						_.controlsFu()
														
						_.form
							.bind('submit',function(){
								if(_.validate)
									_.submitFu()
								else
									_.form[0].submit()
								return false
							})
							.bind('reset',function(){
								_.labels.removeClass(_.invalidCl)									
								_.labels.each(function(){
									var th=$(this)
									_.hideErrorFu(th)
									_.hideEmptyFu(th)
								})
							})
						_.form.trigger('reset')
					}
				}
			_.me||_.init(_.me=th.data({forms:_}))
			typeof o=='object'
				&&$.extend(_,o)
		})
	}
})(jQuery)
$(window).load(function(){
	$('#contact-form').forms({
		ownerEmail:'[email protected]'
	})
})
Código PHP:
<?php
    $owner_email 
$_POST["owner_email"];
    
$headers 'From:' $_POST["email"];
    
$subject 'A message from your site visitor ' $_POST["name"];
    
$messageBody "";
    
    if(
$_POST['name']!='nope'){
        
$messageBody .= '<p>Visitor: ' $_POST["name"] . '</p>' "\n";
        
$messageBody .= '<br>' "\n";
    }
    if(
$_POST['email']!='nope'){
        
$messageBody .= '<p>Email Address: ' $_POST['email'] . '</p>' "\n";
        
$messageBody .= '<br>' "\n";
    }else{
        
$headers '';
    }
    if(
$_POST['state']!='nope'){        
        
$messageBody .= '<p>State: ' $_POST['state'] . '</p>' "\n";
        
$messageBody .= '<br>' "\n";
    }
    if(
$_POST['phone']!='nope'){        
        
$messageBody .= '<p>Phone Number: ' $_POST['phone'] . '</p>' "\n";
        
$messageBody .= '<br>' "\n";
    }    
    if(
$_POST['fax']!='nope'){        
        
$messageBody .= '<p>Fax Number: ' $_POST['fax'] . '</p>' "\n";
        
$messageBody .= '<br>' "\n";
    }
    if(
$_POST['message']!='nope'){
        
$messageBody .= '<p>Message: ' $_POST['message'] . '</p>' "\n";
    }
    
    if(
$_POST["stripHTML"] == 'true'){
        
$messageBody strip_tags($messageBody);
    }
    
    try{
        if(!
mail($owner_email$subject$messageBody$headers)){
            throw new 
Exception('mail failed');
        }else{
            echo 
'mail sent';
        }
    }catch(
Exception $e){
        echo 
$e->getMessage() ."\n";
    }
?>

Código HTML:
<form id="contact-form" action="LUGARDETU----Mail.php" method="post" enctype="multipart/form-data">
						<fieldset>
					<label class="name">
					<input type="text" value="Nombre">
															<span class="error">*No es un nombre valido.</span> <span class="empty">*Este espacio es requerido.</span>
													</label>
													<label class="email">
														<input type="text" value="Correo electronico">
															<span class="error">*No es un Correo electronico valido.</span> <span class="empty">*Este espacio es requerido.</span>
													</label>
													<label class="phone">
														<input type="text" value="Telefono">
															<span class="error">*No es un telefono valido.</span> <span class="empty">*Este espacio es requerido.</span>
													</label>
		<label class="message">
														<textarea>Mensaje:</textarea>
															<span class="error">*Mensaje es muy corto.</span> <span class="empty">*Este espacio es necesario.</span>
													</label>
													<div class="success">¡Forma de contacto enviada!<br>
															<strong>Recibira una respuesta pronto. Gracias por contactarse.</strong>
													</div>
				<div class="buttons2">
															<a href="#" data-type="reset" class="button2">Limpiar</a>
															<a href="#" data-type="submit" class="button2">Enviar</a>
									</div>
							</fieldset>
						</form> 
en negrita es lo que se tiene que cambiar, al menso, yo lo tengo asi, y esta funcionando...

esto tienes que cambiar del javascript

Código:
					mailHandlerURL:'lugar_de_Tu_Mailhandler.php',
					ownerEmail:'[email protected]',
					smtpMailServer:'tusmtpserver.com',
ownerEmail:'[email protected]'
id="contact-form" action="LUGARDETUMailhandler.php"
  #7 (permalink)  
Antiguo 09/07/2014, 22:57
 
Fecha de Ingreso: julio-2014
Mensajes: 1
Antigüedad: 9 años, 9 meses
Puntos: 0
Respuesta: Problema con envio de formulario forms.js y php

Yo arregle este problema cambiando estos datos en:

forms.js

mailHandlerURL:'LUGARDETUMailHandler.php',
ownerEmail:'TUCORREO',
stripHTML:true,
smtpMailServer:'TUSERVIDORDECORREO',

$(window).load(function(){
$('#NOMBREDETUFORMULARIO').forms({
ownerEmail:'TUCORREO'

y no cambie nada más

Etiquetas: forms, formulario, mail, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 20:17.