Foros del Web » Programando para Internet » Javascript »

el formulario ha dejado de funcionar

Estas en el tema de el formulario ha dejado de funcionar en el foro de Javascript en Foros del Web. Pues eso, tengo este formulario en 2 webs distintas en 2 servidores distintos y hasta donde se funcionaban. Anoche echando un vistazo vi que ni ...
  #1 (permalink)  
Antiguo 19/08/2008, 01:12
 
Fecha de Ingreso: junio-2006
Mensajes: 4
Antigüedad: 17 años, 11 meses
Puntos: 0
el formulario ha dejado de funcionar

Pues eso, tengo este formulario en 2 webs distintas en 2 servidores distintos y hasta donde se funcionaban. Anoche echando un vistazo vi que ni comprueban los campos ni envian el correo y no se porque, a ver si alguien ve algo.
Un saludo y gracias de antemano

Codigo en la pagina contacto.php

======================

<?
if(isset($_POST["submit"])){
if(!@mail("[email protected]", "Contacto", "Nombre: ".$_POST["nombre"]."\nE-mail: ".$_POST["mail"]."\nEmpresa: ".$_POST["empresa"]."\nObservaciones:\n".$_POST["observaciones"]."\n\nMensaje enviado desde la Pagina Web.")){
die("Error al enviar el mensaje");
}
}
?>



llamada a javascrip en contacto.php en la parte html/head

==================================

<script language="javascript" type="text/javascript" src="contacto.js"></script>



archivo correo.js

==============================

//Funcion que comprueba si un correo peude ser valido o no
function correo(){
expression=/^[a-z]([\w\.]*)@[a-z]([\w\.]*)\.[a-z]{2,3}$/;
resultado=expression.test(this);
return resultado;
}

//Se crea la nueva funcion prototipo
String.prototype.correo = correo;

//Comprueba si se han rellenado todos los campos del formulario
function comprobar(){
//Comprueb asi se ha introducido algo en el campo nombre
if(contacto.nombre.value==""){
alert("Rellene la casilla 'Nombre'");
contacto.nombre.focus();
return false;
}
else{
//comrpeuba que se ha introducido algo en el campo email
if(contacto.mail.value==""){
alert("Rellene el campo 'E-mail'");
contacto.mail.focus();
return false;
}
else{
//Comprueb auqe el correo peuda ser valido
if(!contacto.mail.value.correo()){
alert("Rellene correctamente el campo de 'E-mail'");
contacto.mail.value="";
contacto.mail.focus();
return false;
}
else
//comrpeuba que se ha introducido un contenido
if(contacto.observaciones.value==""){
alert("Rellene el campo 'Observaciones'");
contacto.observaciones.focus();
return false;
}
else
//comrpeuba que se ha introducido una empresa
if(contacto.empresa.value==""){
alert("Rellene el campo 'Empresa'");
contacto.empresa.focus();
return false;
}
}
}
}
}
}




==================================
  #2 (permalink)  
Antiguo 19/08/2008, 12:28
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: el formulario ha dejado de funcionar

¿Puedes poner el formulario también?

Y, no necesitas anidar las comparaciones ya que al hacer return va a salir directamente de la función sin ejecutar el resto.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 19/08/2008, 13:04
 
Fecha de Ingreso: junio-2006
Mensajes: 4
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: el formulario ha dejado de funcionar

Aqui te mando el formulario:

A anidar te refieres a los else if??

Saludos


<form name="contacto" action="" onSubmit="return comprobar();" method="post" style="margin-top:5px; ">
Nombre:<br>
<input name="nombre" type="text" id="nombre" style="background-color:5E543E;border-width:1px;border-color:black" size="20">

<br>
<br>
E-mail :<br>
<input name="mail" type="text" id="mail" style="background-color:5E543E;border-width:1px;border-color:black" size="20">
<br>
<br>
Empresa :<br>
<input type="text" name="empresa" style="background-color:5E543E;border-width:1px;border-color:black">

<br><br>
Observaciones :<br>
<textarea name="observaciones" cols="25" rows="3" id="observaciones" style="background-color:5E543E;border-width:1px;border-color:black;overflow:auto">
</textarea>
<input type="submit" name="submit" value="Enviar" class="cap">
</form>
  #4 (permalink)  
Antiguo 19/08/2008, 13:26
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: el formulario ha dejado de funcionar

Exactamente, a eso me refiero. Sería más fácil de leer poniéndolos así:
Código PHP:
function comprobar(){
if(
contacto.nombre.value==""){
alert("Rellene la casilla 'Nombre'");
contacto.nombre.focus();
return 
false;
}
if(
contacto.mail.value==""){
alert("Rellene el campo 'E-mail'");
contacto.mail.focus();
return 
false;
}
if(!
contacto.mail.value.correo()){
alert("Rellene correctamente el campo de 'E-mail'");
contacto.mail.value="";
contacto.mail.focus();
return 
false;
}
if(
contacto.observaciones.value==""){
alert("Rellene el campo 'Observaciones'");
contacto.observaciones.focus();
return 
false;
}
if(
contacto.empresa.value==""){
alert("Rellene el campo 'Empresa'");
contacto.empresa.focus();
return 
false;
}
return 
true;

Se vuelve mucho más legible.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 19/08/2008, 13:44
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 8 meses
Puntos: 71
Respuesta: el formulario ha dejado de funcionar

Código:
...
llamada a javascrip en contacto.php en la parte html/head
==================================
<script language="javascript" type="text/javascript" src="contacto.js"></script>
archivo correo.js
...
Puede ser ese el problema? añades el fichero contacto.js pero, pones el codigo de un fichero llamado correo.js???
  #6 (permalink)  
Antiguo 19/08/2008, 13:48
 
Fecha de Ingreso: junio-2006
Mensajes: 4
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: el formulario ha dejado de funcionar

Hola David el Grande, no se que decirte.. he puesto en el campo action="contacto.php" ademas he copiado tu impecable codigo y me acabo de mandar un mail.
Los avisos de campos vacios han funcionado y el envio tambien jejjejeje
Solo que ahora me los remite [email protected]
Si sabes como resolver eso favor, de todas formas un millon de gracias :)
Saludos
  #7 (permalink)  
Antiguo 19/08/2008, 13:52
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: el formulario ha dejado de funcionar

Me alegra que haya funcionado .

Ahora, habría que ver el contenido de contacto.php para saber de qué se trata el error que ahora mencionas.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 19/08/2008, 13:56
 
Fecha de Ingreso: junio-2006
Mensajes: 4
Antigüedad: 17 años, 11 meses
Puntos: 0
Respuesta: el formulario ha dejado de funcionar

Cita:
Iniciado por DooBie Ver Mensaje
Código:
...
llamada a javascrip en contacto.php en la parte html/head
==================================
<script language="javascript" type="text/javascript" src="contacto.js"></script>
archivo correo.js
...
Puede ser ese el problema? añades el fichero contacto.js pero, pones el codigo de un fichero llamado correo.js???

Creo que eso ha sido un fallo mio al nombrar el codigo, no existe tal correo.js

La parte php del archivo solo es este :


<?
if(isset($_POST["submit"])){
if(!@mail("[email protected]", "Contacto", "Nombre: ".$_POST["nombre"]."\nE-mail: ".$_POST["mail"]."\nEmpresa: ".$_POST["empresa"]."\nObservaciones:\n".$_POST["observaciones"]."\n\nMensaje enviado desde la Pagina Web.")){
die("Error al enviar el mensaje");
}
}
?>


Gracias de nuevo por tu tiempo
  #9 (permalink)  
Antiguo 19/08/2008, 16:15
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Respuesta: el formulario ha dejado de funcionar

Tema movido desde PHP a JavaScript
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:36.