Hola a todos,
Llevo unas semanas trabajando unos formularios para un panel de control que
gestionan los contenidos de una web y todo iba más o menos bien hasta que
subí los scripts al servidor para ajustar los fallos que pudiera haber y me
he encontrado con esto:
Tengo 3 formularios (A), (B) y (C):
- Formulario (A) consta de un menu desplegable en el que el usuario elige un
elemento del que quiere modificar los datos en la base de datos (por
ejemplo, elige un usuario para modificar sus datos).
- Formulario (B) entre otros muchos campos hay una lista de enlaces
(siguiendo con el ejemplo, nombres de usuarios) cuyas URL a las que apuntan
llevan el correspondiente "query string" añadido del tipo ?user_id=[clave
del usuario]
- Formulario (C) muestra los datos guardados en la base de datos
correspondientes a ese usuario para poder modificarlos.
El formulario (C) funciona de manera que lee el valor de $_POST['user_id']
hace las comprobaciones oportunas y consulta a la base de datos para
recuparar los datos. De modo que para que reconzca el valor de user_id
cuando se lo paso desde el formulario (B), es decir, dentro de
$_GET['user_id'] he añadido un trozo de código como este:
if(isset($_GET['user_id']) && !isset($_POST['user_id'])){
$_POST['user_id'] = $_GET['user_id'];
}
EL PROBLEMA: Cuando desde el formulario (A) llamo al (C) todo funciona
perfectamente pero cuando lo hago desde (C) en mi ordenador funciona
diferente que si lo hago en el servidor donde colgué los scripts. En mi
ordenador funciona y en el servidor falla. He comprobado qúe valores recibe
en $_POST cuando falla y me dice que recibe un array vacío. O sea, que en un
caso logro escribir en $_POST y en otro no. No se si es dedbido a que son
diferentes versiones de PHP o a alguna diferencia de configuración en
php.ini ... o qué.
Alguien puede ayudarme con esto?