Foros del Web » Programando para Internet » PHP »

Problema JS en PHP

Estas en el tema de Problema JS en PHP en el foro de PHP en Foros del Web. Hola a todos! Estoy empezando ahora con el lenguaje PHP y he intentado implementar un formulario cuya validación la realice php. Para ello he creado ...
  #1 (permalink)  
Antiguo 17/05/2009, 03:15
Avatar de calathea  
Fecha de Ingreso: octubre-2008
Ubicación: Valladolid
Mensajes: 122
Antigüedad: 15 años, 5 meses
Puntos: 3
Problema JS en PHP

Hola a todos!

Estoy empezando ahora con el lenguaje PHP y he intentado implementar un formulario cuya validación la realice php.

Para ello he creado un documento html con el formulario, y al enviar el formulario se llama a un documento php en el que tengo el código de validación.

Lo primero meto todos los datos que he recogido en variables definidas en php, para luego comprobar con la función empty si están o no vacías. Si alguna estuviera vacía, quiero que me salga una ventana de alerta indicando al usuario que no ha rellenado todos los campos necesarios.

Llegando a este punto es cuando el código me falla, no me ejecuta el código javascript

Dejo la parte del código php...a ver si alguien me puede echar una mano!
muchas gracias! un saludo!

Código PHP:
<?php
$Nombre 
$_POST['Nombre'];
$Apellidos $_POST['Apellidos'];
$nDNI $_POST['numDNI'];
$lDNI $_POST['letraDNI'];
$Email $_POST['Email'];
$fnD $_POST['Dia'];
$fnM =  $_POST['Mes'];
$fnY $_POST['Year'];
$Nick $_POST['Nick'];
$Password $_POST['Password'];

if( empty (
$Nombre) == true || empty ($Apellidos) == true || empty ($nDNI) == true || empty ($lDNI) == true || empty ($Email) == true || empty ($fnD) == true || empty($fnM) == true || empty($fnY) == true || empty($Nick) == true || empty($Password) == true)

    echo 
"<script language=\"JavaScript\">alert(\"No ha introducido todos los datos necesarios.\");</script>";

?>
  #2 (permalink)  
Antiguo 17/05/2009, 07:12
 
Fecha de Ingreso: junio-2008
Mensajes: 119
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Problema JS en PHP

El tema de validar en el servidor es no usar JS, en la linea
Código PHP:
 echo "<script language=\"JavaScript\">alert(\"No ha introducido todos los datos necesarios.\");</script>"
Reemplazala con

Código PHP:
echo "No ha introducido todos los datos necesarios.\"; 
Validas en el cliente: JS
Validas en el servidor: PHP

nose si quedo clarin pero bue...
  #3 (permalink)  
Antiguo 17/05/2009, 09:28
Avatar de calathea  
Fecha de Ingreso: octubre-2008
Ubicación: Valladolid
Mensajes: 122
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: Problema JS en PHP

entonces si quisiera validar en ambos (cliente y servidor)..

pondría el validador en JS en el documento html del formulario, en una funcion, a la que llamaría con onSubmit...
y luego el validador en el servidor con PHP en una pagina aparte...y esto lo haría con un action...

(tanto action como onSubmit en <form>)

Código html:
Ver original
  1. <form name="registro" onSubmit="return validarForm()" method="post" action="valida.php">

me equivoco??

El problema que tengo con eso, y es esa la razón por la que intenté hacerlo todo desde el *.php, es que no me valida NADA con JS, pasa directamente al archivo valida.php.

Estoy segura de que el código validador en JS es correcto porque lo he usado en otra página web q me mandaron hacer sin PHP ni MySQL...y funcionaba...Pero desde que introduje los cambios con PHP ha dejado de funcionar la parte de JS.

Hay alguna forma de llamar al validador en el servidor que no sea mediante el action, o de conseguir que se ejecute despues de haber ejecutado el validador JS??

Gracias un saludo!
  #4 (permalink)  
Antiguo 17/05/2009, 09:38
 
Fecha de Ingreso: abril-2009
Mensajes: 160
Antigüedad: 15 años
Puntos: 3
Respuesta: Problema JS en PHP

Para validar si hay algo, o hay lo que quieres en un formulario lo mejor es validar mediante javascript, no con php. Ventaja, validas en el lado del cliente no del servidor, y descargas a este de trabajo que se puede realizar perfectamente del lado del cliente. Si quieres saber si por ejemplo un text tiene algo.

Cita:
function valida(){
if (document.mi_formulario.mi_txt.value==""){
alert('No has introducido nada en el campo....');
return (false);
}else{
return (true);
}
}
algo así
  #5 (permalink)  
Antiguo 17/05/2009, 09:59
Avatar de calathea  
Fecha de Ingreso: octubre-2008
Ubicación: Valladolid
Mensajes: 122
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: Problema JS en PHP

Tenía entendido que era bueno hacerlo de ambas maneras, y ya que me exigían que la página fuera en php, pues este era uno de los aspectos que había creído que se podían realizar del mismo modo con JS q con PHP

Gracias por el ejemplo en JS, algo así es lo que tengo yo implementado..algo mas complejo, porque quiero comprobar más cosas aparte de si ha escrito algo o no...pero a fin de cuentas, similar.

Gracias por la informacion! ;)
  #6 (permalink)  
Antiguo 18/05/2009, 10:27
 
Fecha de Ingreso: junio-2008
Mensajes: 119
Antigüedad: 15 años, 9 meses
Puntos: 1
Respuesta: Problema JS en PHP

por razones de seguridad es recomendable siempre validar en PHP y luego en JS, JS se puede desactivar y/o modificar en cambio en php cuando llegan al server no se puede modificar...
  #7 (permalink)  
Antiguo 18/05/2009, 11:13
Avatar de calathea  
Fecha de Ingreso: octubre-2008
Ubicación: Valladolid
Mensajes: 122
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: Problema JS en PHP

Muchas gracias! intentare conseguir que me compilen ambos codigos
  #8 (permalink)  
Antiguo 19/05/2009, 05:37
Avatar de PatomaS
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: En alguna otra parte
Mensajes: 4.656
Antigüedad: 20 años, 1 mes
Puntos: 63
Respuesta: Problema JS en PHP

Hola

A ver tienen un lío montado.

Validar en js es útil para enviar respuestas rápidas al usuario, pero es totalmente inutil desde el punto de vistade la seguridad, por no mencionar que si js está desactivado, el sistema no funciona.

Validar en el servidor es la forma adecuada de hacer las cosas ya que allí puedes tener todas las condiciones que quieras/necesites y se ejecutarán, siempre y cuando las programes adecuadamente, claro está.

Una vez que validas en el servidor, no validas en js, no tiene sentido alguno.

Sobre la validación que haces calathea, recuerda hacer algo más que ver si está vacía o no, debes validar cosas como número de caracteres, tipo de datos, etc. Como tú misma decías más arriba.

Finalmente, si algo está mal, debes dar un mensaje claro al usuario para que lo pueda resolver. Esto aplica a cualquier tipo de validación, js, php, o la que sea.

Felicidad
__________________
¡ hey, hou, hou, hey !
  #9 (permalink)  
Antiguo 19/05/2009, 11:32
Avatar de calathea  
Fecha de Ingreso: octubre-2008
Ubicación: Valladolid
Mensajes: 122
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: Problema JS en PHP

Ya implementé el codigo completo en PHP para la validación.

Si que he añadido más cosas, como es evidente los campos tienen que cumplir unas determinadas caracterísitcas y ya lo tuve en cuenta.

Postee cuando realicé las primeras pruebas con un trozo pequeño de código ya que entonces no me funcionaba y no quería continuar trabajando "mal" si es que había cometido algún fallo.

No me interesa tener que recargar muchas veces la página de registro, por lo que, si se tiene js activado, prefiero que primero se haga esa comprobación. Después realiza la validación en el lado del servidor.

Gracias por la ayuda y la información de todos! ;)
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 16:26.