Foros del Web » Programando para Internet » PHP »

Duda PHP

Estas en el tema de Duda PHP en el foro de PHP en Foros del Web. Hola a todos: Estoy haciendo una aplicación web y tengo una duda. Tengo una web, con un menú a la izquierda. En una de las ...
  #1 (permalink)  
Antiguo 16/02/2007, 10:37
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 12 años, 9 meses
Puntos: 0
Duda PHP

Hola a todos:

Estoy haciendo una aplicación web y tengo una duda.

Tengo una web, con un menú a la izquierda. En una de las opciones, tengo que validar a un usuario. Lo que quiero hacer, es que si no rellena los campos, me muestre una capa que tengo oculta.

En la primera página, tengo este formulario:

<form name="formValidar" id="formValidar" method="post" action="validar.php">
<table width="325" height="150" border="1" align="center" cellspacing="2" bgcolor="#EEEEEE" id="tabla_registro">
<tr><td>
<table width="350" height="80" cellspacing="4" id="tablaDatos">
<tr>
<td width="168" align="right">Introduzca Usuario
</td>
<td width="164">
<input name="TextNombre" type="text" id="TextNombre" />
</td></tr>
<tr>
<td width="168" align="right">Introduzca Password </td>
<td><input name="TextPassword" type="password" id="TextPassword" maxlength="12" />
</td></tr>
</table>
<table width="75" height="50" align="center" cellspacing="4" id="tablaBoton">
<tr><td width="61">
<input name="Submit" type="submit" value="Aceptar" />
</td></tr>
</table></td></tr>
</table>
</form>


En Validar.php, tengo el mismo código que en la web anterior, ahí es donde compruebo los campos, y si alguno está vacío, quiero que muestre la capa.... No sé como hacerlo, o si lo estoy haciendo bien.

Alguien me puede ayudar? Soy nueva en esto, lo siento.

Un saludo.
  #2 (permalink)  
Antiguo 16/02/2007, 10:55
Avatar de locojars  
Fecha de Ingreso: mayo-2002
Mensajes: 265
Antigüedad: 17 años, 7 meses
Puntos: 4
Re: Duda PHP

Creo que esto mejor lo manejas con javascript, validando tu formulario y mostranto la capa, lo que no se si la capa es la misma para cualquier campo que quede vacio.. o son diferentes, en todo caso podria se algo asi:

Código:
<script languaje="JavaScript">
function validar(formu)
{
  	    if(!document.formu.campo1.value || !document.formu.campo2.value)
	  	{
	  		obj = document.getElementById("id_de_tu_capa")
                         obj.style.visibility = "visible";
		  	return false;  
	  	}
}
</script>

<form method="POST" name="formu" action"..." onSubmit="return validar(this);">
......
</form>
Mira a ver si esto te da una idea de como solucionar tu problema.

salu2,
jars
  #3 (permalink)  
Antiguo 16/02/2007, 10:56
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 14 años, 5 meses
Puntos: 6
Re: Duda PHP

En validar.php como haces para volver al form cuando algo esta mal? si es con un header

Código PHP:
<?php
header
("Location: formulario.php?error=1");
?>
En el formulario:

Código PHP:
<?php
$error 
$_GET["error"];
if(
$error == 1)
{
       
//******mostramos la capa******
}
?>
Simplemente una idea.

Saludos
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #4 (permalink)  
Antiguo 16/02/2007, 12:05
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 12 años, 9 meses
Puntos: 0
Re: Duda PHP

Hola, ante todo muchas gracias por contestar.

El problema es que creo que lo estoy haciendo mal. En la 1º página, si algo está mal, me gustaría no tener que ir a otra pag. Lo ideal, sería que en esa misma, me mostrar la capa, y como he visto lo puedo hacer llamando a una función javascript. Ahora mi duda es, si lo hago así, en action, pondría validar.php para que ahí ya me hiciera las operaciones con la BD no??? Pero en validar.php tengo que poner toda la estructura de la página otra vez, o puedo hacer un pequeño script php que me lo validara??

Creo que es más problema de concepto, que de otra cosa. Espero que me podáis ayudar.

Muchas gracias.
  #5 (permalink)  
Antiguo 16/02/2007, 12:26
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 14 años, 5 meses
Puntos: 6
Re: Duda PHP

Lo que hace el script que te colocaron mas arriba es, cuando haces click en el Submit llama a la funcion de validacion de javascript, si está todo bien... le da submit al form, es decir que envia los datos a la pagina que le colocaste en el action del form.

La validacion javascript no reemplaza a la de php, lo idea es que esten ambas... pues el javascript se puede deshabilitar y en ese caso, chau validacion.... pero si tenes validacion con php, te aseguras de que los datos son validados si o si.

En este caso, en validar.php deberias tener el script para validar con php y lo necesario para ¿insertar? en la base de datos o lo que sea.


Podrias hacerlo todo en una pagina? Si. Colocas el Action apuntando a la misma pagina y luego...

Código PHP:
<?php
if($_POST)
{
           
//validamos
           //insertamos
           //lo que sea
}
?>

<form name="formValidar" id="formValidar" method="post" action="validar.php">
<table width="325" height="150" border="1" align="center" cellspacing="2" bgcolor="#EEEEEE" id="tabla_registro">
<tr><td>
<table width="350" height="80" cellspacing="4" id="tablaDatos">
<tr>
<td width="168" align="right">Introduzca Usuario
</td>
<td width="164">
<input name="TextNombre" type="text" id="TextNombre" />
</td></tr>
<tr>
<td width="168" align="right">Introduzca Password </td>
<td><input name="TextPassword" type="password" id="TextPassword" maxlength="12" />
</td></tr>
</table>
<table width="75" height="50" align="center" cellspacing="4" id="tablaBoton">
<tr><td width="61">
<input name="Submit" type="submit" value="Aceptar" />
</td></tr>
</table></td></tr>
</table>
</form>
__________________
Federico.

Mi página: www.jourmoly.com.ar
  #6 (permalink)  
Antiguo 16/02/2007, 12:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 13 años, 6 meses
Puntos: 2135
Re: Duda PHP

Para eso ocupas AJAX, para no tener que recargar toda la pagina, te invito a que vayas por el foro de AJAX y pongas tus dudas.
  #7 (permalink)  
Antiguo 16/02/2007, 13:49
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 13 años, 4 meses
Puntos: 70
De acuerdo Re: Duda PHP

Hola Vane_, no te compliques!!!

Mira, si lo que necesitas es una soluciòn en php, haz lo siguiente:

Coloca un if() en la pagina donde està tu formulario que solo se muestre si activas una bandera cuando haya un error en la validaciòn del usuario. Puedes pasar la bandera por url y redireccionar a la misma pagina del formulario,mediante header(location:index.php), donde index.php serìa la pàgina donde està el formualrio.

Para hacer esto no necesitas ni js ni AJAX. Es simple....

Espero me hayas entendido y te sirva....

Saludos...
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #8 (permalink)  
Antiguo 18/02/2007, 14:01
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 12 años, 9 meses
Puntos: 0
Re: Duda PHP

Hola chicos, muchas gracias por contestar. Ya voy entendiendo algo más, ahora una duda.

He optado por la opción que me ha dicho Fridureiks. Pero si yo ese script lo quiero en otro archivo distinto?? (por cuestión de organizar código) Sería posible? No se como se haría en ese caso.....

Otra cosa más, si yo tengo esto:

<?php
..... Todo el código que me va a validar el usuario ....
?>

<html>
......
</html>

El código php se me ejecuta siempre al principio, cómo puedo hacer para que sólo se ejecute cuando pulso el botón??? Y luego si es válido que se ejecute el action?? No se si sería factible....


Gracias de nuevo.

Última edición por Vane_; 18/02/2007 a las 14:26
  #9 (permalink)  
Antiguo 19/02/2007, 13:45
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 13 años, 4 meses
Puntos: 70
Re: Duda PHP

Hola Vane_

Respecto a tus dos dudas.

1. En la pàgina del formulario colocas en el action la pagina donde estarìa tu còdigo de validaciòn, y cuando todo haya ido bien, redireccionas a otra pagina o a la del fomulario con esta instruccion: header("location:pagina_que_tu_quieras").

2. Para que tu còdigo solo se ejecute cuando piquen en l botòn "Enviar", lo haces preguntando: if($_POST['Enviar']) haga... el codigo de validacion.
Te aclaro que esto es para ser utilizado con php no?. Porque tambien lo puedes colocar como un evento Onsubmit que llame una funciòn de validacion por javasript.

Ya es decision tuya, mirar como validas si por js y php o solo con una.

Saludos.
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #10 (permalink)  
Antiguo 19/02/2007, 14:38
 
Fecha de Ingreso: noviembre-2002
Mensajes: 571
Antigüedad: 17 años, 1 mes
Puntos: 2
Re: Duda PHP

Ten en cuenta una cosas, casi todas los servidores ssl validan en el servidor, será por algo.., la validación en el cliente puede fallar por multiples motivos, los ideal es crear una validación simple en javascript algo como

// funciones para validar el formulario de registro
function Valida_Solicitud(theForm)
{
if (theForm.nombre.value == "")
{
alert("Por favor rellene todos los campos requeridos.");
theForm.nombre.focus();
return (false);
}
if (theForm.apellidos.value == "")
{
alert("Por favor rellene todos los campos requeridos.");
theForm.apellidos.focus();
return (false);
}
if (theForm.domicilio.value == "")
{
alert("Por favor rellene todos los campos requeridos.");
theForm.domicilio.focus();
return (false);
}
}
//-->

Y una validación más restrictiva en el php, algo como

if(!empty($nombre)&&!empty($apellidos)&&!empty($do micilio)&&!empty($cp)&&!empty($localidad)&&!empty( $provincia)&&!empty($centro)&&!empty($telefono)&&! empty($correo)&&!empty($usuario)&&!empty($contrase na)&&!empty($repita_contrasena)){
etc...

Por si el visitante tiene el javascript desactivado que le valide el php. Saludos.
  #11 (permalink)  
Antiguo 19/02/2007, 16:20
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 12 años, 9 meses
Puntos: 0
Re: Duda PHP

Muchísimas muchísimas gracias chicos.

Ya he hecho la validación con php y el código en otro ficherito aparte... Me ha venido de perlas, además de aclararme 1 poco las ideas.

Ahora una última cosa: Tengo el código de validación php en un fichero aparte validar.php Desde ahí, cuando hay algún error llamo a header("location:index.php"); como me habéis dicho. Si quiero que cuando muestre index.php, me active 1 capa de index.php, podría hacerlo desde validar.php ?!?!?!
  #12 (permalink)  
Antiguo 20/02/2007, 07:34
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 13 años, 4 meses
Puntos: 70
De acuerdo Re: Duda PHP

Claro que sí. En el header("location:index.php?ban=1"), donde "ban" lo mandas desde valida.php y representa la bandera que indica que tiene que activar o mostrar la capa.

En index.php traes el valor que pasaste por URL con la instruccion: $bandera=$_GET['ban']; donde $bandera queda con el valor de "ban" y así preguntas, con un condicional, que al cumplirse debe mostrar la capa.

if($bandera==1)
{
//mostrar capa....
}

Saludos, espero te sirva
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
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 03:57.