Foros del Web » Programando para Internet » PHP »

Problemas con variables (register_globals?)

Estas en el tema de Problemas con variables (register_globals?) en el foro de PHP en Foros del Web. hola estoy un poco desesperada por q no se q hacer Resulta q tengo en mi maq win xp con php, apache y el php.ini ...
  #1 (permalink)  
Antiguo 15/11/2006, 20:35
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 17 años, 10 meses
Puntos: 2
Exclamación Problemas con variables (register_globals?)

hola estoy un poco desesperada por q no se q hacer
Resulta q tengo en mi maq win xp con php, apache y el php.ini register globals = on, bueno pues resulta q declare unas variables de sesion y de lo lindo pasaban por una y otra pagina y todo bien. Pero al momento de ponerlas en el servidor de internet esto en un servidor suse 8.2 con apache y php, me hace un revoltijo de variables de echo en unos campos me muestra una letra 'Y' y en otros me pone un valor q recibo pero en varios campos
Ni idea de por q me pasa esto, ya probe modificar el php.ini y nada por favor alguna sugerencia ??? lo agradeceria en verdad mucho
  #2 (permalink)  
Antiguo 15/11/2006, 20:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Por favor .. no uses títulos como "Help Help" .. intenta describir el problema en el título. Así facilitas mucho las cosas!!!!.

Realmente a tu explicación del problema faltan las "pruebas" .. es decir, tu código completo. Viendo tu código ya se verá como usas sesiones y como accedes a tus variables externas en general.

Hablas de "register_globals" a ON .. de partida eso no deberías usarlo así .. deberías usarlo a OFF y por ende usar si o sí los arrays superglobales: $_POST, $_GET, $_SESSION (y no usar session_register() si lo usas) .. etre otras cosas, sino tendrás problemas de lo más "extraños" como los estás sufriendo si te cambia la configuración de PHP de un servidor a otro.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 16/11/2006, 09:13
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 17 años, 10 meses
Puntos: 2
ok gracias

bueno disculpa por mi mensaje pero estaba un poco frustrada voy a cambiar la configuracion del php.ini y la forma de declarar las variable en caso de q no funcione los estare molestando otra vez
gracias
  #4 (permalink)  
Antiguo 16/11/2006, 10:02
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 17 años, 10 meses
Puntos: 2
este es el codigo de mi primiera pagina
pagina1.php
<?php
// inicio sesión
session_start();


//declaro las variables de los formularios
$glob_titulo = $_POST['Titulo'];
$glob_nombre = $_POST['Nombre'];

// declaro variables globales
$GLOBALS['tit'] = $glob_titulo;
$GLOBALS['nom'] = $glob_nombre;

//registro la variables
session_register("tit");
session_register("nom");
?>

ahora en la pagina2.php recivo las variables y declaro otras

<?php
session_start();
//recibo variable para seber si lleno o no el formulario
$envio = $_SESSION['denvio'];
//recibo variables para llenar mi formulario
$nombre = $_SESSION['tit'];
$snombre = $_SESSION['nom'];

//declaro las variables de los formularios
$glob_tt = $_POST['TipoTarjeta'];
$glob_nb = $_POST['NombreBanco'];

// declaro variables globales
$GLOBALS['tiptar'] = $glob_tt;
$GLOBALS['nomban'] = $glob_nb;

//registro la variables
session_register("tiptar");
session_register("nomban");

y en otra pagina llamada 'pagina3.php' recivo todas las variables para corroborar los datos

<?

session_start();

//recogo las variables de pagina1
$titulo = $_SESSION['tit'];
$nombre = $_SESSION['nom'];

//recogo las variables de pagina2
$tipotarjeta = $_SESSION['tiptar'];
$nombrebanco = $_SESSION['nomban'];

?>

he rebicido mi codigo y no encuentro algo anormal les repito q localmente trabajan muy bien las variables pero en internet no
Gracias por su ayuda
  #5 (permalink)  
Antiguo 16/11/2006, 11:11
Avatar de Chudux  
Fecha de Ingreso: marzo-2006
Mensajes: 247
Antigüedad: 18 años, 1 mes
Puntos: 3
hola . .. .
yo una vez tuve el mismo problema que tu pas alo siguiente . . .
localemente estas variables funcionan muuy bien, pero al subirlas a internet no funcionaban.
yo llame a la empresa que me da el host y me dijieron que ellos tienen desabilitada la opcion para que trabajen las variables globals, debido a que es un metodo super inseguro, si ellos lo actiban corres el riesgo de que tu pagina sea hackeada, como dice cluster debes cambiar todas estas variables por los array $_post y $_get, esa es la solucion que di yo a mi proyecto

un saludo que estes muy bien
  #6 (permalink)  
Antiguo 16/11/2006, 12:31
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 17 años, 10 meses
Puntos: 2
???

hola pues estoy haciendo pruebas localmente ya con register globals = off ahi va mi codigo
pagina.php
<?
//declaro las variable de los campos
$nm = $HTTP_POST_VARS['Nombre'];
$sn = $HTTP_POST_VARS['SegundoNombre'];
//declaro la variable global
$GLOBALS['name'] = $nm;
$GLOBALS['sname'] = $sn;
//registro la variable en la sesion
session_register("name");
session_register("sname");
?>

pagina2.php
<?
$id = $HTTP_SESSION_VARS["nm"];
$id3 = $HTTP_SESSION_VARS["sn"];
?>

pagina3.php
<?
$id = $HTTP_SESSION_VARS["nm"];
$id3 = $HTTP_SESSION_VARS["sn"];
?>

hize una pruaba pasando variables por medio de un formulario y si funciono pero se de sesion no
La forma en lo q lo estoy haciendo es la correcta??
Gracias
  #7 (permalink)  
Antiguo 16/11/2006, 12:38
Avatar de Chudux  
Fecha de Ingreso: marzo-2006
Mensajes: 247
Antigüedad: 18 años, 1 mes
Puntos: 3
De acuerdo

hola
cuando trabajas con sesiones es mejor que tengas solo un archivo en el cual tengas todo definido, despues solo lo vas incluyendo en todas tus web asi no pones a cada rato el mismo codigo


tengo varios ejemplos de sesiones por si te sirven .....
que es lo quequieres hacer con tu sistema php ?

Código PHP:
Saludossoy de santiago de chile y tu
  #8 (permalink)  
Antiguo 16/11/2006, 13:00
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 17 años, 10 meses
Puntos: 2
???

pues mira estoy desarrollando un modulo de contratacion en la primera pagina pido los datos y en la segunda recupero estos datos para evitar q el cliente los reescriba y digamos q en una tercera pagina solicito todos los datos para q el cliente los verifique
no se si soy clara en mi explicacion
Alguna sugerencia ??
y soy de México
  #9 (permalink)  
Antiguo 16/11/2006, 13:49
Avatar de Chudux  
Fecha de Ingreso: marzo-2006
Mensajes: 247
Antigüedad: 18 años, 1 mes
Puntos: 3
super claro . . .
principalmente realizas traspaso de variables y consultas
como te decia anteriormente principalmente debes trabajar con $_post
para poder realizar todo lo que tu quieres.
ahora este sistema utiliza sesiones????
valdias el ingreso de usuarios ???
  #10 (permalink)  
Antiguo 16/11/2006, 13:57
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 17 años, 10 meses
Puntos: 2
trabajo con sesiones de echo por eso manejo las variables de sesion y por el momento no valido usuarios eso lo dejaria para mas adelante y con los formularios utilizo el metodo post
  #11 (permalink)  
Antiguo 16/11/2006, 15:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Yedi Ver Mensaje
este es el codigo de mi primiera pagina
pagina1.php
<?php
// inicio sesión
session_start();


//declaro las variables de los formularios
$glob_titulo = $_POST['Titulo'];
$glob_nombre = $_POST['Nombre'];

// declaro variables globales
$GLOBALS['tit'] = $glob_titulo;
$GLOBALS['nom'] = $glob_nombre;

//registro la variables
session_register("tit");
session_register("nom");
?>

ahora en la pagina2.php recivo las variables y declaro otras

<?php
session_start();
//recibo variable para seber si lleno o no el formulario
$envio = $_SESSION['denvio'];
//recibo variables para llenar mi formulario
$nombre = $_SESSION['tit'];
$snombre = $_SESSION['nom'];

//declaro las variables de los formularios
$glob_tt = $_POST['TipoTarjeta'];
$glob_nb = $_POST['NombreBanco'];

// declaro variables globales
$GLOBALS['tiptar'] = $glob_tt;
$GLOBALS['nomban'] = $glob_nb;

//registro la variables
session_register("tiptar");
session_register("nomban");

y en otra pagina llamada 'pagina3.php' recivo todas las variables para corroborar los datos

<?

session_start();

//recogo las variables de pagina1
$titulo = $_SESSION['tit'];
$nombre = $_SESSION['nom'];

//recogo las variables de pagina2
$tipotarjeta = $_SESSION['tiptar'];
$nombrebanco = $_SESSION['nomban'];

?>

he rebicido mi codigo y no encuentro algo anormal les repito q localmente trabajan muy bien las variables pero en internet no
Gracias por su ayuda
El uso que haces de variables de sesión y el manejo que haces del array $GLOBALS no es correcto:

1) Debes usar los arrays superglobales $_SESSION para declarar tus variables de sesión.
pagina1.php
Código PHP:
<?php
// inicio sesión
session_start();

//declaro las variables en la sesión directamente .. no hace falta pasar por nada intermedio:
$_SESSION['tit'] = $_POST['Titulo'];
// lo mismo con el resto.

?>
Las recibes como lo usas en pagina3.php ...

2) $GLOBALS no declara variables globales más que en el script en curso .. se usa para hacer referencia de tus variables en funciones a alguna que esté declarada fuera de esta .. Pero no para crear una "sesión". Ahí no aplica.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 16/11/2006, 16:15
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 17 años, 10 meses
Puntos: 2
Gracias ya hize una prueba enviando 4 variables y todo lo hace bien a expecion de q an la segunda pagina me aparece este warning. Alguna idea

Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0??
  #13 (permalink)  
Antiguo 16/11/2006, 17:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Yedi Ver Mensaje
Gracias ya hize una prueba enviando 4 variables y todo lo hace bien a expecion de q an la segunda pagina me aparece este warning. Alguna idea

Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0??
Normalmente ese error indica que tienes alguna variable $variable de nombre igual a alguna variable de sesión $_SESSION['variable'] ... Revisa tu código para que no se produzca esa situación.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #14 (permalink)  
Antiguo 16/11/2006, 19:48
Avatar de Yedi  
Fecha de Ingreso: junio-2006
Ubicación: México
Mensajes: 159
Antigüedad: 17 años, 10 meses
Puntos: 2
ok ya lo verifique y todo quedo bien ya funciona bien ok graciasa todos por su ayuda :)
  #15 (permalink)  
Antiguo 17/11/2006, 06:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Yedi Ver Mensaje
ok ya lo verifique y todo quedo bien ya funciona bien ok graciasa todos por su ayuda :)
Y .. era eso? .. tenías alguna variable que estaba definida como variable de sesión y normal?

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 09:57.