Estoy haciendo un formulario cuyos datos van a ser enviados con PHP pero "limpiados / filtrados" con Java Script. Al inicio queria hacerlo todo con PHP (se complica menos el no mezclar dos lenguajes distintos), es decir también la limpieza de datos, pero luego me di cuenta que más rápido sería primero limpiar / filtrar los datos con Java S. para luego enviarlos con PHP... Pero hacer esta mezcla me ha generado una duda y un conflicto:
1. Si ya estoy limpiando los datos con java script entonces no necesito hacerlo nuevamente con PHP, cierto?? Por lo tanto, funciones de PHP como trim(), stripslashes() y htmlspecialchars(), ya no deberian ser necesarias, correcto??? Abajo voy a poner mi codigo y veran como he limpiado los datos con js. Ademas como he limitado los caracteres extraños haciendo uso de las expresiones regulares.
2. ¿Cómo hago para meter codigo PHP en Java Script sin ocasionar conflicto? Esto es dificil de explicar asi que lo mejor sera que vean mi codigo para que entiendan lo que quiero decir...En el ultimo "else" explico esta parte:
Código:
//CODIGO HTML... MI FORMULARIO
//CODIGO HTML... MI FORMULARIO
<form method="POST">
<input type="text" name="text" maxlength />
<input type="text" name="mail" maxlength />
<input type="text" name="telf" maxlength />
<textarea name="post" ></textarea>
<input type="submit" value="Enviar Correo" maxlength />
</form>
//CODIGO JAVA SCRIPT... LA LIMPIEZA DE DATOS
//CODIGO JAVA SCRIPT... LA LIMPIEZA DE DATOS
<script>
document.forms[0].onsubmit = function () {
//recojo los valores de los campos
var text = document.forms[0]['text'].value;
var mail = document.forms[0]['mail'].value;
var telf = document.forms[0]['telf'].value;
var post = document.forms[0]['post'].value;
//creo expresiones regulares, la primera que solo permite texto, y la segunda valida un correo legitimo
var exp1 = /^[a-z\s]+$/i;
var exp2 = /^[a-z0-9._-]+@[a-z0-9.-]+\.[a-z]{2,9}$/;
if ( text=="" || mail=="" || telf=="" || post=="" ) {
alert( "Rellena todos los campos!" );
return false
} else {
if ( text.length > 50 ) {
alert( "El campo Nombre permite un máximo de 50 caracteres!" );
return false
} else if ( !exp1.test( text ) ) {
alert( "Los nombres solo deben contener letras (mayúsculas o minúsculas) y espacios!" );
return false
} else if ( mail.length > 30 ) {
alert( "El campo Correo permite un máximo de 30 caracteres!" );
return false
} else if ( !exp2.test( mail ) ) {
alert( "Ingresa un correo válido!" );
return false
} else if ( telf.length > 11 ) {
alert( "El campo Teléfono permite un máximo de 11 caracteres!" );
return false
} else if ( isNaN(telf) ) {
alert( "Ingresa un número válido! Sólo hasta 11 digitos." );
return false
} else {
//AQUI DEBERIA IR EL CODIGO PHP DE ENVIO DE DATOS
Pero todo deja de funcionar cuando aqui agrego codigo php:
<?php
echo $_POST["text"] . '<br>';
echo $_POST["mail"] . '<br>';
echo $_POST["telf"] . '<br>';
echo $_POST["post"] . '<br>';
?>
}
}
}
</script>
//CODIGO HTML... MI FORMULARIO
<form method="POST">
<input type="text" name="text" maxlength />
<input type="text" name="mail" maxlength />
<input type="text" name="telf" maxlength />
<textarea name="post" ></textarea>
<input type="submit" value="Enviar Correo" maxlength />
</form>
//CODIGO JAVA SCRIPT... LA LIMPIEZA DE DATOS
//CODIGO JAVA SCRIPT... LA LIMPIEZA DE DATOS
<script>
document.forms[0].onsubmit = function () {
//recojo los valores de los campos
var text = document.forms[0]['text'].value;
var mail = document.forms[0]['mail'].value;
var telf = document.forms[0]['telf'].value;
var post = document.forms[0]['post'].value;
//creo expresiones regulares, la primera que solo permite texto, y la segunda valida un correo legitimo
var exp1 = /^[a-z\s]+$/i;
var exp2 = /^[a-z0-9._-]+@[a-z0-9.-]+\.[a-z]{2,9}$/;
if ( text=="" || mail=="" || telf=="" || post=="" ) {
alert( "Rellena todos los campos!" );
return false
} else {
if ( text.length > 50 ) {
alert( "El campo Nombre permite un máximo de 50 caracteres!" );
return false
} else if ( !exp1.test( text ) ) {
alert( "Los nombres solo deben contener letras (mayúsculas o minúsculas) y espacios!" );
return false
} else if ( mail.length > 30 ) {
alert( "El campo Correo permite un máximo de 30 caracteres!" );
return false
} else if ( !exp2.test( mail ) ) {
alert( "Ingresa un correo válido!" );
return false
} else if ( telf.length > 11 ) {
alert( "El campo Teléfono permite un máximo de 11 caracteres!" );
return false
} else if ( isNaN(telf) ) {
alert( "Ingresa un número válido! Sólo hasta 11 digitos." );
return false
} else {
//AQUI DEBERIA IR EL CODIGO PHP DE ENVIO DE DATOS
Pero todo deja de funcionar cuando aqui agrego codigo php:
<?php
echo $_POST["text"] . '<br>';
echo $_POST["mail"] . '<br>';
echo $_POST["telf"] . '<br>';
echo $_POST["post"] . '<br>';
?>
}
}
}
</script>