Foros del Web » Programando para Internet » PHP »

Problemas PHP (Windows OK , Linux Failed)

Estas en el tema de Problemas PHP (Windows OK , Linux Failed) en el foro de PHP en Foros del Web. Tengo mi aplicacion funcionando sin problemas en mi PC con Windows 2000, MySQL, PHP 4.3 y Apache. Estoy controlando la seguridad atravez de sesiones. Tengo ...
  #1 (permalink)  
Antiguo 09/06/2004, 10:48
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 15 años, 5 meses
Puntos: 0
Problemas PHP (Windows OK , Linux Failed)

Tengo mi aplicacion funcionando sin problemas en mi PC con Windows 2000, MySQL, PHP 4.3 y Apache.
Estoy controlando la seguridad atravez de sesiones. Tengo creada una variable de sesion que asocia el perfil del usuario, y dependiendo de ese valor le muestro ciertos datos.
Ahora copie mi aplicacion a un servidor Linux, pero luego de realizar algunas acciones sobre la aplicacion (no he modificado el codigo , solo interactuo con la aplicacion), resulta que hago clicks en algunos botones que solo muestran un listado de informacion extraido de una tabla, luego de eso me comienza a mostrar los mensajes que no puedo acceder a esa informacion porque mi perfil de usuario no me lo permite, y estoy realizando las mismas acciones.
¿ Que podra ser ? , se estara perdiendo la sesion o las variables de sesion ? , Las Sesiones tienen un tratamiento distinto en Windows o Linux ? .
No creo que tenga nada que ver Register_globals ya que uso las variables $_POST $_GET $_SESSION $_SERVER

Espero que alguien me pueda orientar.

Gracias.

Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
  #2 (permalink)  
Antiguo 09/06/2004, 10:52
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,
Cita:
Las Sesiones tienen un tratamiento distinto en Windows o Linux ? .
Las sesiones tienen distinto tratamiento si tienes el PHP configurado de distinta forma. Compara la seccion de SESSIONS en el php.ini. Fijate como lo tienes configurado para que propage el ID de sesion, etc.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 09/06/2004, 11:01
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 15 años, 5 meses
Puntos: 0
Tambien me arroja estos Warning

Warning: session_start(): Cannot send session cookie -
headers already sent by (output started at /home/export/incoming/users/tesis/salir.php:6) in /home/export/incoming/users/tesis/salir.php on line 7


Warning: session_start(): Cannot send session cache limiter -
headers already sent (output started at /home/export/incoming/users/tesis/salir.php:6) in /home/export/incoming/users/tesis/salir.php on line 7


y este es salir.php
Código PHP:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="refresh" content="text/html; charset=iso-8859-1">
</head>
<?
session_start
();
session_unset();
session_destroy();
header("Location: index.php");
?>
<body>
</body>
</html>
Espero su ayuda.
Gracias.

Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
  #4 (permalink)  
Antiguo 09/06/2004, 11:02
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 15 años, 5 meses
Puntos: 0
Como lo hago si no tengo acceso al php.ini en linux ?
¿ o debo darles otro tratamiento dentro de mi codido php ?

Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
  #5 (permalink)  
Antiguo 09/06/2004, 11:05
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Cita:
Tambien me arroja estos Warning
Haber empezado por ahi. Ese warning te dice que no se ejecuta el session_start() porque has enviado salida al navegador en la linea 6 de salir.php. No se puede mandar salida antes del session_start( ) (o header() o setcookie()), ni HTML, ni echos, ni espacios en blanco.

Y tu ahi estas mandando HTML, elimina todo HTML de ese script. Total, nunca se muestra.

Saludos.

PD: Eso puede que te funcione en windows por tener los buffers de salida activados en el php.ini.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 09/06/2004, 11:18
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 15 años, 5 meses
Puntos: 0
En Windows me funciona sin problemas, pero necesito hacer funcionar mi aplicacion en Linux, puesto que ese server es mas estable y tiene ip fija.

Gracias.

Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
  #7 (permalink)  
Antiguo 09/06/2004, 11:25
 
Fecha de Ingreso: noviembre-2003
Ubicación: BsAs
Mensajes: 325
Antigüedad: 14 años, 1 mes
Puntos: 0
hola, como dijo josemi, no podés enviar salida de codigo antes de trabajar con headers, o session_start(), etc, etc, etc.

creo que tu codigo deberia ser asi:

Código PHP:
<?
session_start
();
session_unset();
session_destroy();
header("Location: index.php");
?>

<html>
<head>
<title>saliendo...</title>
<meta http-equiv="refresh" content="text/html; charset=iso-8859-1">
</head>
<body>
</body>
</html>
espero que te sirva de algo.
salu2.
__________________
Juan Manuel


evitemos nombres de post como "ayudaaaa", "mi red no anda","ayuda con mi red" o cosas parecidas, usemos nombres mas especificos relativos al problema que tengamos, utilizemos el buscador del foro, si nuestra pregunta puede ser básica busquemos si hay algun sticky en el foro en donde posteamos que por ahi esta tratado lo que buscamos, por un foro mejor y mas dinamico! :si:
  #8 (permalink)  
Antiguo 09/06/2004, 11:45
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 15 años, 5 meses
Puntos: 0
OK ..... luego de releer mis manuales me di cuenta de eso.....
Pero me queda la duda de porque se pierden las variables de sesion en linux, o se cambian los valores......se crean de la misma forma que en Windows o no? ..... todo radica en php.ini con respecto a sesiones ?

Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
  #9 (permalink)  
Antiguo 09/06/2004, 21:38
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 15 años, 5 meses
Puntos: 0
Revise el archivo php.ini en Windows y Linux y en la seccion Session estan completamente iguales, en los dos esta session.use_trans_sid = 0
Sinceramente no se que puede ser.
Espero que alguien me pueda ayudar.
Gracias

Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
  #10 (permalink)  
Antiguo 10/06/2004, 15:39
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Esa no es la única directiva de configuración de PHP que afecta a la propagación del SID.

Es probable que propages el SID en cookies:
session.use_cookies = 1

Y .. si es así (así debe ser si te funcina en windows y con session.use_trans_sid = 0) necesitas de un cliente (navegador) que acepte cookies.

Un saludo,
  #11 (permalink)  
Antiguo 11/06/2004, 10:43
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 15 años, 5 meses
Puntos: 0
Pero que relacion hay entre Cookies y Sesiones si mi aplicación esta hecha con sesiones ?
Entro a la aplicacion atravez del mismo navegador, pero direccionando a los dos servidores distintos (Linux y Windows).
Pasa que tengo una variable de sesion que identifica el perfil del usuario. Los perfiles van del 1 al 7, y si es 7 ese usuario no tiene acceso a la aplicación.
Me logeo y entro bien. Imprimo mi variable de sesion en donde esta el perfil y me imprime el numero que debe ser (entre 1 y 6), pero luego de interactuar con alguna tabla esa variable se pasa a 7, por lo que no puedo seguir navegando en las otras paginas, me dice que el acceso esta restringido (mensaje que lo hago en la aplicación puesto que el perfil es 7), pero no deberia pasar eso.....
Por que se puede cambiar el valor de la variable de sesion si solo le agrego un valor cuando la creo al momento de logearme ?

Espero que me ayuden.

Gracias

Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
  #12 (permalink)  
Antiguo 11/06/2004, 13:46
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Cita:
Pero que relacion hay entre Cookies y Sesiones si mi aplicación esta hecha con sesiones ?
Mucha, ya que para identificar la sesion se usa un ID desesion. Y ese Id se transmite del servidor al navegador, y del navegador al servidor (para identificar a que sesion pertenece). Y ese trafico del ID se hace con una cookie o con un parametro en los links. Si no ves un parametro en las URLs llamado PHPSESSID (o como este configurado en el php.ini), entonces es que usas cookies para propagar el ID del navegador al servidor.

Sobre tu problema, ¿hay alguna parte de tu codigo que asigne 7 a esa variable de sesion? Si es asi, quizas el fallo es algo que hace que ese codigo se ejecute. Y sabiendo cuales son las condiciones necesarias para que se ejecute ese codigo, podrias encontrar que es lo que falla.

Tambien podrias hacer un echo del valor del id de sesion (session_id()), ese valor deberia ser constante mientras dura la sesion. Si notas que cambia, es que pierde la sesion. ¿Usas redirecciones? A veces falla la propagacion en las redirecciones, y tienes que añadir a mano el id de sesion en la url de redireccion.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #13 (permalink)  
Antiguo 14/06/2004, 10:17
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 15 años, 5 meses
Puntos: 0
Cuando interactuo con la BD (solo muestro un listado de informacion), luego de eso el valor de la session se cambia a 7. En ningun lugar de los codigos php le asigno 7 a la session.
Sinceramente no se que pueda ser. Ojala alguien se le ocurra.

Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
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 13:01.