Foros del Web » Programando para Internet » PHP »

No puedo recuperar variable del form...

Estas en el tema de No puedo recuperar variable del form... en el foro de PHP en Foros del Web. Hola a todos. no soy asiduo concurrente a PHP; principiante en este tema. Sepan disculpar la "ignorancia". El codigo, este: Código: <? function funAA() { ...
  #1 (permalink)  
Antiguo 27/01/2009, 06:57
 
Fecha de Ingreso: junio-2008
Mensajes: 17
Antigüedad: 15 años, 10 meses
Puntos: 0
No puedo recuperar variable del form...

Hola a todos. no soy asiduo concurrente a PHP; principiante en este tema. Sepan disculpar la "ignorancia".

El codigo, este:

Código:
<?
function funAA() {
	
	$archivo = $_GET['clv'];   //tambien probado: $archivo = $_GET[clv]
	$archivo = $archivo . "-set.dat";
 
	if(file_exists($archivo)){
		$existe = "siiiiiiiiii";
	}else{
		$existe = "no";
	}
	
	echo $existe;	
	echo $archivo;		//solo para controlar que se cargue la variable...
} 
?>

<html>
<head>
<title>:: ::</title>
<meta http-equiv="" content="text/html; charset=iso-8859-1">
	
<script language="javascript" type="text/javascript">
//VALIDACION DE FORMULARIOS
function validacion(formulario) {

	var er_clv = /^([a-z]|[A-Z]|[0-9])+$/		
	var er_cnt = /^([a-z]|[A-Z]|[0-9])+$/		

	//comprueba campo de clave
	if(!er_clv.test(formulario.clv.value)) { 
		alert('Contenido del campo CLAVE no válido.')
		return false
	}   	

	//comprueba campo de contraseña
	if(!er_cnt.test(formulario.cnt.value)) { 
		alert('Contenido del campo CONTRASEÑA no válido.')
		return false
	}   	

	return true		//true, ejecutará action
}
</script>

</head>
<body>
		    			
	   		<form action="<?echo funAA();?>" method="get" name="Form01" onsubmit="return validacion(this)">
			<h3>
			<label>Clave:</label>
			<input name="clv" type="text" class="inputbox" id="clv" size="4" maxlength="4" /> <br><br>
			<label>Contraseña:</label>
			<input name="cnt" type="password" class="inputbox" id="cnt" size="4" maxlength="4" /> <br><br>
	   		<input name="boton_envio" type="submit" value="Recuperar"> 
	   		</h3>
			</form>

</body>
</html>
El problema: no puedo (muchos pero muchos intentos) hacer que la función en PHP tome el valor clv del form.

Agradecido de cualquier ayuda, sugerencia o crítica constructiva (reto).

Saludos cordiales RB
  #2 (permalink)  
Antiguo 27/01/2009, 10:18
Avatar de XLogus  
Fecha de Ingreso: noviembre-2008
Ubicación: AQP
Mensajes: 495
Antigüedad: 15 años, 5 meses
Puntos: 19
Respuesta: No puedo recuperar variable del form...

Hola
No puedes, y no podrás nunca :)
Fijate bien estas intentando hacer una combinación directa de PHP con javascript y html y eso no es posible de hacer, por lo menos no sin ayuda de ajax.

PHP se ejecuta directamente en servidor y javascript en la pc del usuario por eso no son combinables.

La forma mas facil de arreglar tu problema es:
- Al action del formulario ponle el nombre de tu archivo php
- luego del function por una condicional que pregunte si existe la variable $_GET['clv'], en caso que exista significa que el formulario fue enviado y debes invocar a tu función funAAA (recomendación a las funciones ponles nombres descriptivos no cripticos)
  #3 (permalink)  
Antiguo 27/01/2009, 10:20
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: No puedo recuperar variable del form...

Primero, no hay porque hacerle echo a una funcion que ya imprime el resultado directamente con echo.

Y segundo, tienes un error de logica. Para que la funcion regrese un archivo valido, la variable $_GET['clv'] tiene que estar seteada. Esta variable no estara seteada hasta que se envie el formulario, aqui el problema: el action del formulario es la funcion que se supone necesita de $_GET['clv'] (Circulo vicioso :P).
  #4 (permalink)  
Antiguo 28/01/2009, 06:49
 
Fecha de Ingreso: junio-2008
Mensajes: 17
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: No puedo recuperar variable del form...

Muchas gracias a xlogus y a ronruby, gracias a los dos por sus rápidas respuestas.

Se claramente donde se ejecuta cada cosa. Y se que estaba en un circulo visioso, pero como en:
onsubmit="return validacion(this)

puedo usar
(formulario.clv.value)

haciendo referencia a una variable todavia no seteada....
suponía que en la funcion php, también existiría una chiripioca que me permitiese hacerlo...


Estoy probando todo lo que me han dicho, no estoy muy de acuerdo a que no se pueda hacer todo junto como me aconseja xlogus, pero estoy haciendo unas pruebitas, antes de tragarme la lengua.... por decir tonterias. Pero si lo logro.....!!!

Gracias por los consejos sobre llamadas a funciones y nombres de las mismas, asi lo haré.
Saludos cordiales.
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 00:57.