Foros del Web » Programando para Internet » PHP »

Paso de Variables

Estas en el tema de Paso de Variables en el foro de PHP en Foros del Web. Wenas, tengo unas dudillas con el paso de variables, he estado buscando informacion pero no me han llegado a aclarar del todo, a ver si ...
  #1 (permalink)  
Antiguo 23/07/2004, 08:01
 
Fecha de Ingreso: diciembre-2003
Ubicación: Madrid
Mensajes: 80
Antigüedad: 20 años, 4 meses
Puntos: 0
Paso de Variables

Wenas, tengo unas dudillas con el paso de variables, he estado buscando informacion pero no me han llegado a aclarar del todo, a ver si me podeis echar una mano

Tengo un sencillo formulario para probar en html asi

Código HTML:
<html><body>
<form action="crea_user.php" method="POST">
Login: <input type="text" name="login"><br>
<input type="submit" name="Crear">
</form>
</body></html> 
Segun he visto en una web haciendo eso en la pagina crea_user.php ya podria usar la variable login como si de una variable propia de esa pagina se tratara, pero no la pasa, solo la pasa(o la leo) si escribo

Código PHP:
echo $_POST['login'
No se si algo estoy haciendo mal o no, pero a esto le veo un problema y es que a la hora de realizar por ejemplo una consulta SQL no puedo usar esas variables que paso por el metodo $_POST y tengo que guardar el valor antes en una variable.

Muchas Gracias de antemano por vuestra ayuda, cuando acabe la web os tendre que por lo menos invitar a unas birras porque me estais ayudando un huevo

Última edición por xanful; 23/07/2004 a las 08:03
  #2 (permalink)  
Antiguo 23/07/2004, 08:07
Avatar de haron  
Fecha de Ingreso: febrero-2004
Ubicación: Cádiz (refinitivo)
Mensajes: 632
Antigüedad: 20 años, 2 meses
Puntos: 3
antiguamente las variables se pasaban asi.
ahora debes usar $_REQUEST, $_GET o $_POST para capturar los parametros.

si quieres capturar parametros escribes:

$param = $_REQUEST["parametro"] // captura tanto los "gets" como los "posts"

por que se cambio???

imaginate una aplicacion con doscientas chorromil paginas.
donde las variables van y bienen sin control.
esta claro que al final resulta un lio padre mantener esa aplicacion.

es mejor encapsular la funcionalidad en cada pagina, en lugar de desparramarla por toda la aplicacion.

nota:

yo tengo que mantener una aplicacion desparramada. espero que no sea por mucho tiempo.

observacion:

aunque el PHP viene de fabrica para que tengas que capturar los parametros con $_REQUEST, tambien puedes cambiar la configuracion.
__________________
Si ocurre algo importante, estamos afuera fumándonos unos cigarritos.
  #3 (permalink)  
Antiguo 23/07/2004, 08:16
 
Fecha de Ingreso: diciembre-2003
Ubicación: Madrid
Mensajes: 80
Antigüedad: 20 años, 4 meses
Puntos: 0
Wenas, es decir que en las ultimas versiones de PHP eso se ha cambiado, ahora debes capturar variable a variable y meterlo en una variable propia de esa pagina para poder trabajar bien con ella o hay alguna forma de capturar todas las variables enviadas??

Si no es asi hay alguna forma de usar dichas variables escribiendo directamente con $_POST, $_GET o $_REQUEST sin tener que meterlas en variables para optimizar un poco el codigo?

Por ejemplo, aqui lo he intentado de varias maneras pero no consigo usarlo directamente, hay alguna manera??
Código PHP:
$query="SELECT * FROM usuarios WHERE login='$prueba' ";

$query="SELECT * FROM usuarios WHERE login='$_POST['prueba']' ";

$query="SELECT * FROM usuarios WHERE login='$($_POST['prueba'])' ";

$query="SELECT * FROM usuarios WHERE login='$[$_POST['prueba']]' "
Salu2
  #4 (permalink)  
Antiguo 23/07/2004, 08:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Srs. .. se cambie o no .. todo eso lo determina:
register_globals (en sus php.ini)

Es altamente recomendable "discriminar" la variable externa por el método esperado (sea GET/POST o si es una cookie, session . un "file" .. etc). (en las FAQ's de este foro de las primeras .. tienen un comentario al respecto)

Para solventar el problema de "sintax" que tienes . .debes ver a tu sentencia "SQL" como una cadena más para PHP .. es decir .. podrías solventar el problema de "doble asignación de variable" con:

1) concatenando.
Código PHP:
$query="SELECT * FROM usuarios WHERE login='".$_POST['prueba']."'"
(fijate como se colorea el código ... se vé bien claro donde está la "variable" ...

2) usando {} para llamar a tus arrays ..
Código PHP:
$query="SELECT * FROM usuarios WHERE login='{$_POST['prueba']}'"
Un saludo,

Última edición por Cluster; 23/07/2004 a las 08:52
  #5 (permalink)  
Antiguo 23/07/2004, 09:02
 
Fecha de Ingreso: diciembre-2003
Ubicación: Madrid
Mensajes: 80
Antigüedad: 20 años, 4 meses
Puntos: 0
Muchas gracias, Cluster a ti mas que nadie te debo unas birras porque creo que en todos los posts que he puesto para preguntar apareces tu :P

Jamas pense que tirarme 2 meses tocando un pie alejado de la programacion me afectasen tanto, cometo errores de principiante(no de sintaxis, sino de maneras de resolver un problema), mira que no pensar en concatenar...

Última edición por xanful; 23/07/2004 a las 11:59
  #6 (permalink)  
Antiguo 23/07/2004, 09:10
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. grácias por lo que me corresponde . .pero NUNCA desmerezcas la ayuda que te puedan prestar otros compañeros.

Un saludo,
  #7 (permalink)  
Antiguo 23/07/2004, 12:01
 
Fecha de Ingreso: diciembre-2003
Ubicación: Madrid
Mensajes: 80
Antigüedad: 20 años, 4 meses
Puntos: 0
Cita:
Iniciado por Cluster
Bueno .. grácias por lo que me corresponde . .pero NUNCA desmerezcas la ayuda que te puedan prestar otros compañeros.

Un saludo,
Desde luego esa no era ni mucho menos mi intencion, las gracias eran para los dos(y para todos los que se han leido esto y han intentado ayudarme), se me colo una coma en la frase pero ya lo he arreglado

Saludos
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:23.