elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Resuelto] ¿Cómo enviar datos mezclando Java Script y PHP sin crear conflictos?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] ¿Cómo enviar datos mezclando Java Script y PHP sin crear conflictos?  (Leído 2,742 veces)
big_ed

Desconectado Desconectado

Mensajes: 82


Ver Perfil
[Resuelto] ¿Cómo enviar datos mezclando Java Script y PHP sin crear conflictos?
« en: 13 Agosto 2019, 20:32 pm »

Hola  ::).

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>


« Última modificación: 24 Septiembre 2019, 11:53 am por #!drvy » En línea

@XSStringManolo
Hacker/Programador
Colaborador
***
Desconectado Desconectado

Mensajes: 2.397


Turn off the red ligth


Ver Perfil WWW
Re: ¿Cómo enviar datos mezclando Java Script y PHP sin crear conflictos?
« Respuesta #1 en: 13 Agosto 2019, 21:52 pm »

Lo ideal es validar tanto en el cliente como en el servidor. Por mucho que valides en el cliente, puede usar una herramienta tipo burpsuite, webscarab o cualquier otra herramienta con proxy del estilo para obtener las cabeceras, inyectar el código antes de enviarlas y hacer forward al servidor. Asique la validación por parte del cliente sirve más bien de poco en muchos casos. Valida siempre en el servidor. Si no te gusta PHP usa node.js

Pd: Acabo de fijarme en el código que pusiste. No tiene sentido. javascript se ejecuta en el navegador en el ordenador del usuario que visita la página. PHP se ejecuta en el servidor que tendrás tú en tu casa o en un hosting. No puedes ni ejecutar PHP en el navegador, ni ejecutar javascript en el servidor. (Con node.js sí, pero entonces no usas PHP para nada.)

Si quieres pasar los datos del form desde el navegador(javascript) al servidor PHP, necesitas usar cualquiera de las distintas formas de comunicarse con el servidor con html5 o javascript. Véase sockets, xmlhttp, etc.



« Última modificación: 13 Agosto 2019, 22:08 pm por string Manolo » En línea

Mi perfil de patrocinadores de GitHub está activo! Puedes patrocinarme para apoyar mi trabajo de código abierto 💖

big_ed

Desconectado Desconectado

Mensajes: 82


Ver Perfil
Re: ¿Cómo enviar datos mezclando Java Script y PHP sin crear conflictos?
« Respuesta #2 en: 13 Agosto 2019, 22:19 pm »

Lo ideal es validar tanto en el cliente como en el servidor. Por mucho que valides en el cliente, puede usar una herramienta tipo burpsuite, webscarab o cualquier otra herramienta con proxy del estilo para obtener las cabeceras, inyectar el código antes de enviarlas y hacer forward al servidor. Asique la validación por parte del cliente sirve más bien de poco en muchos casos. Valida siempre en el servidor. Si no te gusta PHP usa node.js

Pd: Acabo de fijarme en el código que pusiste. No tiene sentido. javascript se ejecuta en el navegador en el ordenador del usuario que visita la página. PHP se ejecuta en el servidor que tendrás tú en tu casa o en un hosting. No puedes ni ejecutar PHP en el navegador, ni ejecutar javascript en el servidor. (Con node.js sí, pero entonces no usas PHP para nada.)

Si quieres pasar los datos del form desde el navegador(javascript) al servidor PHP, necesitas usar cualquiera de las distintas formas de comunicarse con el servidor con html5 o javascript. Véase sockets, xmlhttp, etc.



Eres la tercera persona que me dice lo mismo, que de toda formas necesito validar con php, entonces ya no voy a validar con java script, se me hace un sinsentido validar con ambos , solo es una perdida de tiempo, porque al final la que importa es la validacion del lado del server ... mejor no me hago bolas y solo uso php
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: ¿Cómo enviar datos mezclando Java Script y PHP sin crear conflictos?
« Respuesta #3 en: 13 Agosto 2019, 22:24 pm »

Citar
se me hace un sinsentido validar con ambos , solo es una perdida de tiempo, porque al final la que importa es la validacion del lado del server ... mejor no me hago bolas y solo uso php

Es util para evitar requests inutiles al servidor y que el usuario sepa de inmediato donde se ha equivocado. Eso si, validar con JS al final es opcional (muy útil pero opcional), validar en el servidor es obligatorio.

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
no puedo enviar un type=hidden a una fucion en java script?
Java
coolfrog 0 2,666 Último mensaje 17 Septiembre 2004, 18:19 pm
por coolfrog
conflictos con compilador de java Jcreator y win vista
Java
tiririx 1 4,676 Último mensaje 26 Septiembre 2007, 00:52 am
por GallaZ
[Resuelto] Como enviar datos POST de PHP a ASP y leer cabeceras « 1 2 »
PHP
kerkox 10 5,763 Último mensaje 21 Julio 2015, 01:33 am
por kerkox
[Java Script] )(Split) Como obtener datos de un String como un config.ini
Scripting
Brian1511 5 4,544 Último mensaje 4 Agosto 2015, 00:08 am
por Brian1511
[Resuelto] ayuda para crear script
Desarrollo Web
carwar 2 3,054 Último mensaje 19 Agosto 2017, 22:51 pm
por carwar
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines