Iniciar sesión

Ver la versión completa : [Ayuda] PHP sobre los get y varios scripts



Danielo515
30/01/2011, 20:44
Hola a todos, tengo una dudilla con respecto a php, que no se si alguien (100% seguro que sí) me sabe resolver.

Si tengo una página, llamémosla A.php, y llama a una función que se encuentra en B.php, (previo include claro) la función en B.php puede acceder a los parámetros que
le llegan a A.php mediante get? o para eso debería la función estar en el mismo archivo, es decir, en A.php?

Sólo se trata de una función, y actualmente, por si acaso, le paso por parámetros en la llamada todo lo que la función necesita, pero es un coñazo cada vez que añado una cosita en el formulario que debe procesar b.php andar cambiándole la cabecera y todas las llamadas a la misma, por lo que sería infinitamente más cómodo si la función B pudiera acceder directamente a los campos que le interesen y no tener que depender de lo que le pasen por parámetro.

Muchas gracias as always.

Estopero
30/01/2011, 21:24
Sí funciona lo que expones, como dice civantoz. Sin embargo en según qué funciones tienes que andar con cuidado a la hora de escoger qué variables pasas como parámetros y cuales no, más que nada por usabilidad de código.

Como norma general se debe intentar no abusar de las variables globales :)

Saludoss

subiroff
30/01/2011, 21:31
Quizás sería mejor montar un array con los valores recibidos (y verificados) y pasar a la función sólo ese array. Así la función sólo tendrá un parámetro y sólo tendrá que recorrerlo para obtener los valores, dándole igual si hay 2 o 200... Eso sería usable por a.php pero tambien por un hipotético c.php... No sé, es otra idea.

Saludos!

Danielo515
30/01/2011, 21:44
Creo que no me he explicado bien.

Yo quiero saber, si poniendo en el navegador

a.php?valor=1

entonces

a.php
-----------
<?
include("b.php");
echo $_GET["valor1"];
imprimir();

?>

b.php
---------------
<?
echo "valor desde aquí: ".$_GET['valor'];
?>


y que la salida fuera
1 valor desde aquí: 1


A eso me refería.
Lo de pasar un array también lo he pensado, pero me parece un poco engorroso.
Otra cosa que tampoco se segura, es si dos funciones en un mismo .php pueden acceder ambas a los get, o si después de que accede uno se vacía el flujo o algo? supongo queno.

Danielo515
30/01/2011, 22:06
GENIAL!

Yo me imaginaba que el include era básicamente eso, un copipaste de código, pero no estaba seguro. Muchas gracias

Estopero
30/01/2011, 22:11
Creo que no me he explicado bien.

Yo quiero saber, si poniendo en el navegador

a.php?valor=1

entonces

a.php
-----------
<?
include("b.php");
echo $_GET["valor1"];
imprimir();

?>

b.php
---------------
<?
echo "valor desde aquí: ".$_GET['valor'];
?>


y que la salida fuera
1 valor desde aquí: 1


A eso me refería.
Lo de pasar un array también lo he pensado, pero me parece un poco engorroso.
Otra cosa que tampoco se segura, es si dos funciones en un mismo .php pueden acceder ambas a los get, o si después de que accede uno se vacía el flujo o algo? supongo queno.

La variable GET mantendrá todos sus valores a no ser que tú los modifiques expresamente, así que no te preocupes por ello :)

Bizkaitarra
31/01/2011, 08:38
Aparte de todo lo que te han comentado, yo soy partidiario de pasar los argumentos siempre, y me explico. Imaginate que en un futuro quieres que dicha función se use desde otra página. ¿No sería mas sencillo en caso de ser una función parametrizable?

Puede ser un coñazo añadir un parámetro mas, pero para eso tienes el tema de los arrays (aunque yo sigo prefiriendo meter parámetros no array y algunos si eso opcionales)