Bueno estaba trabajando en la oficina cuando me pidieron publicar algo, me fui a al administrador y le di agregar y no realizaba ninguna accion, asi que recorde que meses atras habian restaurado el servidor, asi que pense “Bueno esto no me conpete realizarlo si no al encargado del area“, si antes funcionaba, debe de funcionar si solamente restauro el servido, guardo y copio la info que existia. Bueno me tranquilice y decidi que lo mejro era hecharle un ojo y me encontre lo siguiente:
Existien variables llamadas por cita run ejemplo: $tipo las cuales venian de un formulario donde efectivamente exite un campo que trae el valor de Tipo, lo que pense que talvez faltaba asignarle esto:
Pero imaginate son muchos scripts como resolverlos, asi que lei por un rato y encontre esto:
Supongamos que la variable viene desde un formulario via POST, el código decía algo asi …
<?php
if ($variable == “algo”)
{
echo “esta variable hace alguna cosa”;
}
?>
Es decir, le faltaba esta instrucción antes del if
<?php
$variable = $_POST["variable"]; // le faltaba esta instrucción antes del if
if ($variable == “algo”)
{
echo “esta variable hace alguna cosa”;
}
?>;
Tenia 2 opciones, o me ponía a buscar TODAS estas situaciones y las arreglaba una a una, o colocaba un pedazo de código en archivo al que todos los demás le hacían un include que me corrigiera este “error” propio de aquellos que estamos a trabajar con los “servidores en producción”, o sea, con las variables globales en On.
Bueno, después de muchos cabecearme encontré la solución, y aquí la muestro a todos uds.
<?php
if($_POST)
{
$keys_post = array_keys($_POST);
foreach ($keys_post as $key_post)
{
$$key_post = $_POST[$key_post];
error_log(“variable $key_post viene desde $ _POST”);
}
}
if($_GET)
{
$keys_get = array_keys($_GET);
foreach ($keys_get as $key_get)
{
$$key_get = $_GET[$key_get];
error_log(“variable $key_get viene desde $ _GET”);
}
}
if($_SESSION)
{
$keys_sesion = array_keys($_SESSION);
foreach ($keys_sesion as $key_sesion)
{
$$key_sesion = $_SESSION[$key_sesion];
error_log(“variable $key_sesion viene desde $ _SESSION”);
}
}
?>;
Son básicamente 3 if que hacen lo mismo, toman las claves del arreglo en cuestión (SESSION , POST o GET) y generan una “variable variable”, creo que hay un articulo en desarrolloweb que habla de este tema, y esto hace toda la magia, el error_log fue una implementación para ver que variables se iban ocupando (si no tienes acceso al servidor puedes sacarlo sin problemas).
Para alguien que guste de las funciones puede también guardarlo como función y llamarla cuando lo necesite. O también iterar el proceso con las 3 variables en cuestión para no tener que hacer 3 if, o pasarle cualquier arreglo para que haga el mismo proceso … en fin, la idea esta, solo espero haber contribuido en algo al ahorro de tiempo de alguno de ustedes.