Foros del Web » Programando para Internet » Javascript »

Validar form. phpMailer con JavaScript

Estas en el tema de Validar form. phpMailer con JavaScript en el foro de Javascript en Foros del Web. Hola! Me cambié de servidor y mi formulario (cgi) dejó de funcionar. Me recomendaron usar phpMailer y me pasaron un form de ejemplo que he ...
  #1 (permalink)  
Antiguo 17/01/2012, 05:23
mr2
 
Fecha de Ingreso: junio-2011
Mensajes: 4
Antigüedad: 12 años, 10 meses
Puntos: 0
Pregunta Validar form. phpMailer con JavaScript

Hola!

Me cambié de servidor y mi formulario (cgi) dejó de funcionar. Me recomendaron usar phpMailer y me pasaron un form de ejemplo que he adaptado. Yo no sé php, pero el envío del formulario se hace correctamente.

El problema es que quiero seguir usando el código en JavaScript que lo valida, pero no consigo que funcione correctamente y no sé dónde puede estar el error. He hecho ya mil pruebas y nada.... ¿Alguien sabría cómo debe ser el código php para que la validación la haga Javascript?

Gracias...



Os paso el código de validación Javascript:


<script type="text/javascript">
<!--
function trim(str)
{
return str.replace(/^\s*|\s*$/g,"");
}

function ValidarCorreo(asunto){
//Ahora compruebo que el e-mail tenga al menos una arroba
var pos = remitente.indexOf("@");
if (pos == -1) return false;
//también debe tener al menos un caracter antes y después de la arroba
if ((pos == 0) || (pos == remitente.length-1)) return false;
//También debe tener un punto después de la arroba,
//y alguna letra antes y después del punto
var pos2 = remitente.lastIndexOf(".");
if ((pos2 < pos+1) || pos2 == remitente.length-1) return false;
//por fin se debe comprobar que no contenga espacios en blanco por el medio
for (i=0; i<remitente.length; i++)
{
if (remitente.charAt(i) == " ") return false;
}
return true;
}

function ValidarFormulario(f){
textoerror="";
if (trim(f.asunto.value)=="") textoerror="- Nombre\n";
if (!ValidarCorreo(f.remitente.value)) textoerror+="- E-mail\n";
if (trim(f.mensaje.value)=="") textoerror+="- Consulta\n";

if (textoerror=="") f.submit();
else {
alert("Los siguientes campos no se han rellenado correctamente, o están vacios:\n"+textoerror);
return 0;
}
}
-->
</script>


El código JavaScript:

<?php
//INICIALIZAMOS VARIABLES
$asunto = "";
$remitente = "";
$mensaje = "";

if(isset($_POST['enviar'])){

if($_POST['asunto'] == "" || $_POST['remitente'] == "" || $_POST['mensaje'] == ""){

echo "Debes rellenar todos los datos.<br><br>";


}else{

require("./include/class.phpmailer.php");
$mail = new PHPMailer();

$mail->IsSMTP();

$mail->SMTPAuth = true;

//AQUI HAY QUE ASIGNARLE EL SERVIDOR
$mail->Host = "mail.midominio.com";

//AQUI HAY QUE INDICAR EL NOMBRE DE USUARIO DE LA CUENTA DE CORREO QUE SUELE SER LA DIRECCIÓN DE CORREO
$mail->Username = "[email protected]";

//AQUI HAY QUE PONER LA CONTRASEÑA
$mail->Password = "XXXXXX";

//NO TOCAR SI NO SE SABE LO QUE SE ESTÁ HACIENDO
$mail->Port = 25;

$mail->From = $_POST['remitente'];

//SE PUEDE QUITAR LO DE "MI WEB" O BIEN PERSONALIZARLO
$mail->FromName = "Consulta desde mi web de: " . $_POST['asunto'];

//AQUI PONER LA DIRECCÓN DONDE LO RECIBIREMOS
$mail->AddAddress("[email protected]"); // Esta es la dirección a donde enviamos

$mail->IsHTML(true); // El correo se envía como HTML

$mail->Subject = $_POST['asunto']; // Este es el titulo del email.

$body = $_POST['mensaje'];

$mail->Body = $body; // Mensaje a enviar

$mail->AltBody = $_POST['mensaje']; // Texto sin html

if($mail->Send()){ // Envía el correo.
Header("Location: mensaje.html");
}else{
echo "Hubo un error de envío, pero puedes contactar conmigo en la dirección [email protected] <br><br>";
}
}

}


?>



Y este el código del formulario:

<form action='contacto.php' method='post'>
<table>
<tr>
<td>
<label><p>Email:</p></label>
<input type='text' name='remitente' value='<?php echo $remitente; ?>'/>
</td>


</tr>

<tr>
<td>
<label>
<p>Nombre:</p></label>
<input type='text' name='asunto' value='<?php echo $asunto; ?>'/>
</td>


</tr>

<tr>
<td>
<label>
<p>Cu&eacute;ntame...</p></label>
</td>
</tr>

<tr>
<td>
<textarea name='mensaje' rows='4' cols='30'><?php echo $mensaje; ?></textarea>
</td>
</tr>

<tr>
<td>
<input type='submit' name='enviar' value='Enviar' onclick="ValidarFormulario(this.form)"/>
</td>
</tr>

</table>

</form>

Etiquetas: formulario, funcion, html, input, php, phpmailer
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 01:02.