Foros del Web » Programando para Internet » PHP »

opinion sobre sessiones en php

Estas en el tema de opinion sobre sessiones en php en el foro de PHP en Foros del Web. quisiera saber si este codigo para saber si se ha iniciado una session en php esta bueno session_start() devuelve un boolean me gustaria saber si ...
  #1 (permalink)  
Antiguo 13/11/2006, 11:26
 
Fecha de Ingreso: junio-2006
Mensajes: 126
Antigüedad: 17 años, 10 meses
Puntos: 0
Pregunta opinion sobre sessiones en php

quisiera saber si este codigo para saber si se ha iniciado una session en php esta bueno

session_start() devuelve un boolean

me gustaria saber si esto esta correcto para verificar si una session se ha iniciado

$started = session_start();
if($started == true)
{

//hacer lo que quiero

}
else
{

//hacer lo otro que quiero

}
  #2 (permalink)  
Antiguo 13/11/2006, 11:30
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Según la documentación oficial, session_start siempre devuelve TRUE. Así que, me parece que eso no te va a funcionar.
Quizás podrías utilizar la función session_regenerate_id porque puede devolverte FALSE en caso de error.

Un saludo
  #3 (permalink)  
Antiguo 13/11/2006, 11:47
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Mas bien las validaciones deberías aplicarlas a una variable de sesión tuya que la aplicación maneje:

Código PHP:
session_start();
if (isset(
$_SESSION['alguna_variable'])){
// sesión creada ..
} else {
// sesión no creada.

El hecho de que sólo con un "session_start()" no veas que la sesión está activa es por qué dicha función inicia o continua con un "SID" válido propagado a tu script (sea por cookies/URL). Por eso sería necesario revisar más bien la existencia de alguna variable de sesión que declares en tu aplicación.

Un saludo,

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 13/11/2006, 14:05
 
Fecha de Ingreso: junio-2006
Mensajes: 126
Antigüedad: 17 años, 10 meses
Puntos: 0
Este es el codigo que quiero implementar para poner un enlace para un usuario administrador y otro que no sea administrador y me salen estos warning

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at c:\SERVIDOR\WEB\repositorio\publicaciones.php:8) in c:\SERVIDOR\WEB\repositorio\publicaciones.php on line 123

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:\SERVIDOR\WEB\repositorio\publicaciones.php:8) in c:\SERVIDOR\WEB\repositorio\publicaciones.php on line 123

les agradeceria mucho que me ayudaran.

<?php
// le damos un mobre a la sesion.
//session_name($usuarios_sesion);
// incia sessiones para verificar que tipo de usuario es
session_start();
if(isset($_SESSION['iniciada']))
{
if($_SESSION['usuario_nivel'] == 0)
{
?>
<div style="background-color:#9CBADE; width:400px">
<a href="panel.php" class="Estilo79">Regresar al panel administrador</a>
</div>
<?
}//Cierre del if
}
else
{
?>
<div style="background-color:#9CBADE; width:400px">
<a href="../index.php" class="Estilo79">Regresar a la portada principal</a> </div>
<?
}
?>
  #5 (permalink)  
Antiguo 13/11/2006, 17:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El mensaje de error te indica que en el script de nombre:
publicaciones.php

En su línea: 8

Tienes una "salida" originada, .. un simple espacio, salto de línea, algo de HTML .. un echo "algo" antes de <?

La función session_start() debes estar por encima de cualquiera de estas situacioens ("salida") originada al cliente.

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 03:01.