Foros del Web » Programando para Internet » PHP »

Clases y variables globales

Estas en el tema de Clases y variables globales en el foro de PHP en Foros del Web. Hola gente... Bueno estoy haciendo una clase para manejo de sesiones, y me quedo una parte sin resolver... La cosa es que esta pensada para ...
  #1 (permalink)  
Antiguo 30/06/2002, 01:46
Avatar de gomo  
Fecha de Ingreso: mayo-2002
Ubicación: [email protected]
Mensajes: 906
Antigüedad: 15 años, 7 meses
Puntos: 0
Clases y variables globales

Hola gente...
Bueno estoy haciendo una clase para manejo de sesiones, y me quedo una parte sin resolver... La cosa es que esta pensada para funcionar ya sea recibiendo el ID de sesion por la URL, en caso de que el usuario no soporte cookies, o reconocer la sesion automaticamente.
Me gustaria entonces, hacer que reconozca solo esto usando una funcion INTERNA.
o sea
class Sesion {
var porlaurl = $HTTP_GET_VARS['SID'];
function Sesion(){
if(!$this->porlaurl){
//reconocer solo
}
else{
//usar el sessid
}
}
El problema esta en que no toma el array $HTTP_GET_VARS, ni siquiera si antes le hago global $HTTP_GET_VARS['SID']...

Agradeceria que alguien me de una mano con esto...
Y ya que estamos, una de yapa...
En otra clase hago un global dentro de una funcion, y despues cuando quiero enviar cookies pone headers already sent... Que tiene que ver global con eso? (Si comento ese comando el error desaparece)
Jeje bueno a ver los mas experimentados si pueden ayudarme...
Saludos



<div align="center"><img src="http://cablemodem.fibertel.com.ar/sainztrapaga/images/firma.jpg" width="435" height="70" border="0">
</div>
  #2 (permalink)  
Antiguo 30/06/2002, 01:53
Avatar de gomo  
Fecha de Ingreso: mayo-2002
Ubicación: [email protected]
Mensajes: 906
Antigüedad: 15 años, 7 meses
Puntos: 0
Re: Clases y variables globales

ah me falto el '$' antes de porlaurl en la primera linea de la clase... es codigo al aire eh
saludos


<div align="center"><img src="http://cablemodem.fibertel.com.ar/sainztrapaga/images/firma.jpg" width="435" height="70" border="0">
</div>
  #3 (permalink)  
Antiguo 30/06/2002, 02:33
 
Fecha de Ingreso: septiembre-2001
Ubicación: Monterrey
Mensajes: 663
Antigüedad: 16 años, 2 meses
Puntos: 6
Re: Clases y variables globales

Ya probaste usando el arreglo, $HTTP_SESSION_VARS .
Si por alguna razon no puedes usar la variable de arriba usa $HTTP_GET_VARS[PHPSESSID], si no mal recuerdo

Saludos!.
Mty. NL.
  #4 (permalink)  
Antiguo 30/06/2002, 04:04
Nok
 
Fecha de Ingreso: abril-2001
Mensajes: 302
Antigüedad: 16 años, 7 meses
Puntos: 0
Re: Clases y variables globales

Hola:
Si mal no recuerdo las variables HTTP_*_VARS no son globales a todos los ambientes, como lo son $_GET y $_POST. Por lo que deben incluirla explicitamente con un global $HTTP_GET_VARS.

Respecto al otro error, fijate si no estas haciendo un echo antes de setear la session o cookie. Ademas controla que no haya lineas en blanco no codigo HTML al proncipio del archivo. El archivo debe empezar si o si con el tag &lt;?

Saludos, espero que te sirva.

<font face=Verdana size=2 color=#006699>Nok;)<br>Juan Pablo Winiarczyk<br>Neuquen - Patagonia Argentina[/CODE]
  #5 (permalink)  
Antiguo 30/06/2002, 10:58
Avatar de gomo  
Fecha de Ingreso: mayo-2002
Ubicación: [email protected]
Mensajes: 906
Antigüedad: 15 años, 7 meses
Puntos: 0
Re: Clases y variables globales

Gracias por sus respuestas...
Bueno con lo de headers already sent el problema esta con el global, ya que si comento esa linea el error desaparece...
Y lo otro esta bien, se que la variable no es global pero por mas que lo ponga &quot;global $HTTP...&quot; no toma el arrar
Bueno ahora le voy a echar un ojo a tu sistema de Templates ya que estamos trabajando en uno, saludos ;)


<div align="center"><img src="http://cablemodem.fibertel.com.ar/sainztrapaga/images/firma.jpg" width="435" height="70" border="0">
</div>
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 10:20.