Foros del Web » Programando para Internet » PHP »

Diferente funcionamiento entre windows xp y win98

Estas en el tema de Diferente funcionamiento entre windows xp y win98 en el foro de PHP en Foros del Web. Hola. Queria comentarles una duda algo extraña. Resulta que un mismo codigo visto en explorer y en win98, no genera ningun problema, pero visto en ...
  #1 (permalink)  
Antiguo 04/08/2004, 15:17
 
Fecha de Ingreso: julio-2004
Mensajes: 34
Antigüedad: 13 años, 5 meses
Puntos: 0
Diferente funcionamiento entre windows xp y win98

Hola.
Queria comentarles una duda algo extraña. Resulta que un mismo codigo visto en explorer y en win98, no genera ningun problema, pero visto en el mismo explorer y en win xp, funciona como le da la gana.
El codigo es algo asi:

$result=mysql_query($consulta,$conexion);
if(mysql_num_rows($result)<50){
$cadena="Location: pagina1.php";
else
$cadena="Location: pagina2.php";
mysql_close($conexion);
session_start();
$_SESSION["resultado"]=mysql_num_rows($result);
header($cadena);
die();

-----------------------
Lo unico raro es q se usan sesiones. ¿Puede el uso de sesiones interferir en la ejecucion normal de una pagina, por alguna extraña razon?.
Gracias y un saludo.
  #2 (permalink)  
Antiguo 04/08/2004, 15:25
Avatar de lado2mx
Colaborador
 
Fecha de Ingreso: agosto-2001
Ubicación: Veracruz
Mensajes: 3.720
Antigüedad: 16 años, 4 meses
Puntos: 9
No importa que tanto uses, sino el php.ini que tengas instalados en ambos sistemas, y que sean al menos exactamente igual, te recomiendo que copies el php.ini de Win98 y lo pases al XP.

Si da problemas avisa.
  #3 (permalink)  
Antiguo 04/08/2004, 16:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. el uso de sesiones que haces junto con el redireccionamiento que empleas fuerzas a propagar el SID en cookies:

php.ini
session.use_cookies = ON (o a 1)

Lo cual implica que tu navegador de pruebas acepte cookies a su vez ..

Revisa todo esto en cuanto a tu configuración de PHP y a la de los "clientes" (navegadores)

Un saludo,
  #4 (permalink)  
Antiguo 12/10/2004, 15:42
 
Fecha de Ingreso: julio-2004
Mensajes: 34
Antigüedad: 13 años, 5 meses
Puntos: 0
Hola.
Lo primero, gracias por contestar.
Respecto a este mismo tema, queria comentaros un par de detalles mas:

el servidor que utilizo esta configurado con enable trans id (que es la opcion para que se propage automaticamente y de manera transparente el id de la sesion por la url, segun creo), sin embargo, se envian cookies al cliente al utilizar las sesiones, por lo que la pagina no funciona con las cookies desactivadas. ¿como puedo forzar que no se envien estas cookies, y se propage el SID por la url?

Otra duda que tengo es este aviso que aparece en php.net y que no viene en la version en castellano, que no se muy bien que significa exactamente:

If you do turn on session.auto_start then you cannot put objects into your sessions since the class definition has to be loaded before starting the session in order to recreate the objects in your session.

Por otro lado, mi servidor tiene register globals a on, pero utilizo las variables de sesion con el array SESSION, ¿eso puede ser incorrecto de alguna manera? No se si he visto por ahi, que en estas condiciones, las variables del array SESSION solo se vuelven factibles al siguiente inicio de sesion.

Sobre el tema de servidores que deciais, utilizo uno solo, y no puedo cambiar su configuracion, es de estos publicos.

Os agradeceria mucho que me contestarais.
Saludos.
  #5 (permalink)  
Antiguo 12/10/2004, 15:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
¿como puedo forzar que no se envien estas cookies, y se propage el SID por la url?
Bueno .. no es seguro que se propage el SID en el URL .. pero, si quieres hacerlo ..

session.use_cookies = off
y si usas
session.use_only_cookies .. usalo a OFF

Cita:
If you do turn on session.auto_start then you cannot put objects into your sessions since the class definition has to be loaded before starting the session in order to recreate the objects in your session.
Se refiere a que si propagas un objeto en una sesión .. los métodos se pierden así que es necesario siempre incluir tu classe antes de asginar el objeto que propagas en la sesión que sólo contiene las variables .. no los métodos.
Código PHP:
include("la_classe.php");
session_start();
if (isset(
$_SESSION['objeto'])){
   
$objeto=$_SESSION['objeto'];
} else{
   
$objeto=new objeto();

Cita:
Por otro lado, mi servidor tiene register globals a on, pero utilizo las variables de sesion con el array SESSION, ¿eso puede ser incorrecto de alguna manera?
Ningún problema .. es más .. si bien con "register_globals" a ON no es del todo seguro el sistema . .si lo usas ganas algo de seguridad y sobre todo te hace independiente de si el servidor usa esa directiva a ON o a OFF.

Cita:
No se si he visto por ahi, que en estas condiciones, las variables del array SESSION solo se vuelven factibles al siguiente inicio de sesion.
Lo del "inicio de sesión" se referiere exactament a la "próxima petición" al servidor de una página donde ahí debes usar el inicio de sesiones "session_Start()" .. Esa petición la consigues recargando la página .. o simplemente linkeando a otra página donde leas esa sesión. Lo mismo es aplicable para las cookies (con sus diferencias .. )


Un saludo,
  #6 (permalink)  
Antiguo 12/10/2004, 16:19
 
Fecha de Ingreso: julio-2004
Mensajes: 34
Antigüedad: 13 años, 5 meses
Puntos: 0
Que rapidez! Gracias. :)
Entonces si propagar por url no es del todo seguro, mejor utilizare cookies, porque la seguridad me interesa mas.

Lo unico que, como te comentaba, la configuracion del servidor no puedo cambiarla. Al usar enable trans id, me surge otra pregunta: si usas cookies, ¿usas solo cookies?, o tb se puede propagar por ahi algun SID?. Al ser dos metodos diferentes, se usa solo uno por vez, no se pueden usar los dos a la vez, ¿no?
No se si se me entiende muy bien esto ultimo... lo pregunto porque al estar compilado con enable trans id, si se propaga algun id por ahi, yo no lo puedo ver ( porque se hace de manera transparente), y no me interesa que se vayan propagando cosas por ahi.
Por si ayuda:
session.use_cookies esta a ON
session.use_only_cookies esta a OFF.

Lo que decias sobre el array SESSION, es verdad, no se me habia ocurrido.
Saludos.

ppd: con esta rapidez, esto casi va a parecer mas un chat que un foro :).
  #7 (permalink)  
Antiguo 13/10/2004, 06:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Bueno .. en PHP hay cierta configuración (como esa de sesiones) que se puede alterar para tu script/s en concreto usando la función:

ini_set()

En las FAQ's de este foro tienes un ejemplo de uso. Se trata de usar una sintax tipo:

ini_set("nombre_directiva_php.ini","valor")

De esa forma puedes dejar session.enable_trans_sid _= oFF y usar el resto de cookies a ON para propagar el SID en cookies sólo.

Sobre el tema de session.enable_trans_sid .. Esa directiva lo que indica a PHP es que "sobre-escriba" ciertos tags de HTML como links (<a href ...>) y otros para insertar ahí el SID (mombre_Sesion=8979897asdf76565asd). Si se usa cookies para propagar el SID (session.use_cookies = ON) el SID que se propague se toma el de la cookie primero y sino .. se toma el que venga propagado en el URL. A su vez si viene propagado un SID en cookies no actua "enable_trans_sid".

Pero .. el problema de "confiar" en que si se se usa enable_trans_sid a ON junto con use_cookies a ON para "pensar" que si no se acepta cookies (en el navegador) igualmente se propagará el SID en el URL, .. no es del todo "válido" sobre todo tieniendo en cuenta que PHP con esa directiva (... enable_trans_sid) no sobreescribe URL's en javacript (window.open ... window.location ...) ni tampoco en redireccionamientos vía php por cabeceras como header("Location: ...."). En esos casos sería recomendable hacerlo "a mano" (la propagación del SID) para asegurar que realmente si no se acepta cookies se propagará el SID en el URL completamente y para todos los casos.


Un saludo,
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 21:49.