Foros del Web » Programando para Internet » PHP »

Notice: A session had already been started - ignoring session_start()

Estas en el tema de Notice: A session had already been started - ignoring session_start() en el foro de PHP en Foros del Web. Muy buenos días amigos expertos, soy un usuario de esos muchos que andan navegando por sus líneas en busca de soluciones y antes de comentar ...
  #1 (permalink)  
Antiguo 07/11/2012, 09:06
 
Fecha de Ingreso: noviembre-2012
Ubicación: caracas
Mensajes: 7
Antigüedad: 11 años, 5 meses
Puntos: 0
Exclamación Notice: A session had already been started - ignoring session_start()

Muy buenos días amigos expertos, soy un usuario de esos muchos que andan navegando por sus líneas en busca de soluciones y antes de comentar mi situación comentarles que me han sido de mucha ayuda en momentos de crisis en configuración de servidores e implementación de códigos, Gracias! Pero esta vez tome la decisión de participar (por cierto este es mi primer mensaje en el foro) ya que por mas que busque y busque no conseguí respuesta que me solucione, aquí va mi cuestión:

Resulta que me encuentro después de mucho tiempo sin lidiar con configuración en el php.ini (por lo menos para la puesta en marcha de mi sitio) y estoy llevando a cabo tareas que ya hace mucho tiempo hice con buenos resultados mas en estos momentos no recuerdo que fue lo que hice en aquel entonces y se me ha vuelto un dolor de cabeza desde hace varios días el hecho de que al querer iniciar sesión con session_start(); recibo la siguiente notificación:

Notice: A session had already been started - ignoring session_start()

Resulta que en efecto si estoy realizando 2 inicios de session ya que el otro esta en un include que aveces tambien funciona solo y necesita su propio session_start() pero eso para mi antes no era un inconveniente ya que conseguí poder hacerlo sin que me muestre dicha notificación y sin tener que ocultar los errores colocándole el @ antes de la sentencia o colocando if (! isset ($ _SESSION)) { session_start (); } ni nada por el estilo ya que el problema no se basa solo en el hecho de no poder iniciar sesión 2 veces, el problema radica en que al no iniciar sesión las variables de sesión no toman los valores y me sale lo siguiente: Notice: Undefined index.

No quiero tocar en código por que me funciona perfectamente en el primer entorno, estoy convencido que el cambio debo hacerlo en el php.ini.

Ya revise el php.ini varias veces sin éxito, no logro hallar la configuración que antes había hecho, de hecho, cuando me traigo el php.ini viejo no me muestra dicha notificación pero como el nuevo php que instale es el XAMPP este trae su propia configuración y no puedo cambiar los php.ini asi como asi, de hecho, cuando lo hice me mostro otro tipo de errores pero ninguno relacionado con el session_start().

Disculpen lo largo del mensaje pero es para que solo los expertos se dediquen a mi caso y no recibir soluciones que ya he explorado antes.

Nota: en el php.ini ya hice varias pruebas que yo recuerde como:
- Comentar y descomentar el session.save_path
- Colocar el session.auto_start en “0”y en “1”
Así que por ahí tampoco van los tiros.

Gracias por su ayuda.
  #2 (permalink)  
Antiguo 07/11/2012, 09:18
Avatar de Javier01  
Fecha de Ingreso: febrero-2008
Ubicación: Montevideo
Mensajes: 261
Antigüedad: 16 años, 2 meses
Puntos: 31
Respuesta: Notice: A session had already been started - ignoring session_start()

buenas tardes y Bienvenido,

Me parece que lo mejor sería que arregles para no inicializar la sesion 2 veces.
Seguramente la diferencia entre los php.ini es la variable display_errors = Off/On
Pero ocultar el error no resuelve el problema.

Saludos!
__________________
Tomarse un tiempo para redactar correctamente la pregunta, utilizando los signos de puntuación adecuados, es ganar tiempo y calidad en la respuesta.
  #3 (permalink)  
Antiguo 07/11/2012, 09:20
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 15 años
Puntos: 38
Respuesta: Notice: A session had already been started - ignoring session_start()

trata con
Código PHP:
$estado_session session_status();

if(
$estado_session == PHP_SESSION_NONE)
{
    
session_start();
}

if(
$status == PHP_SESSION_DISABLED)
{
    echo 
'Session no activada'
}

if(
$status == PHP_SESSION_ACTIVE)
{
    
session_destroy();
    
session_start();
}

// puedes tambien usar 

if(!isset($_SESSION)) 

        
session_start(); 
}
else
{
        
session_destroy();
        
session_start(); 
}

// o tambein chequear 

if(session_id() != "")
{
      
session_start();

  #4 (permalink)  
Antiguo 07/11/2012, 09:52
 
Fecha de Ingreso: noviembre-2012
Ubicación: caracas
Mensajes: 7
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Notice: A session had already been started - ignoring session_start()

Gracias por sus prontas respuestas.

En ambas el display_errors esta en On así que a primera vista no estoy ocultando el problema Javier01 de hecho a mi parecer php debe tener una excepción para este tipo de repeticiones de inicio de sesión por que de otra forma no se explica que no me de fallos en mi otro servidor.

Por otro lado, creo que deberían basarse en el hecho de que mi otro entorno no da error, y a partir de ahí tratar el problema, como dije anteriormente rolygc no me gustaría tocar mi código ya que me funciona perfectamente y repito: "que creo que el problema radica en la configuración del php.ini"

También te comento o te recalco lo que al inicio escribí del error " Notice: Undefined index".

Gracias.
  #5 (permalink)  
Antiguo 07/11/2012, 09:56
Avatar de veruti85  
Fecha de Ingreso: octubre-2012
Ubicación: Entre Huelva y Madrid
Mensajes: 32
Antigüedad: 11 años, 5 meses
Puntos: 7
Respuesta: Notice: A session had already been started - ignoring session_start()

Puede que venga por el error_reporting, has mirado como lo tienes en los 2 php.ini?

error_reporting = E_ALL //Te muestra todos los errores

error_reporting = E_ALL & ~E_NOTICE //Te muestra todos los errores excepto loso NOTICE

Saludos
  #6 (permalink)  
Antiguo 07/11/2012, 10:06
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 15 años
Puntos: 38
Respuesta: Notice: A session had already been started - ignoring session_start()

"no me gustaría tocar mi código ya que me funciona perfectamente"

Notice: A session had already been started - ignoring session_start()

Notice: Undefined index

Si a esto le llamas funcionar perfectamente, entonces tendras ke hacer magia para solucionarlo sin tocar el codigo.
  #7 (permalink)  
Antiguo 07/11/2012, 10:28
 
Fecha de Ingreso: noviembre-2012
Ubicación: caracas
Mensajes: 7
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Notice: A session had already been started - ignoring session_start()

Estas son las 2 sentencias que me aparecen veruti85:

php.ini anterior (el que funciona):

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED

php.ini nuevo (el que presenta fallas):

error_reporting = E_ALL | E_STRICT

por lo visto en el viejo tiene restricciones para este tipo de notificaciones como tu lo indicas, voy a proceder a igualarlos a ver que sucede, ahora el hecho de ocultar estos errores me evitara el Notice: Undefined index?

rolygc cuando digo "no me gustaría tocar mi código ya que me funciona perfectamente" me refiero al anterior, estos errores me aparecen en el php.ini nuevo, y la razón por la que no quiero tocar el código es por que serian lineas de código adicionales, tiempo adicional, (en algo que ya funcionaba) de igual forma no e implementado el código que me pasaste voy a probar y gracias, a ver si esto me soluciona el problema también del Notice: Undefined index cuando coloco variables de sesion en el resto del codigo, si es asi listo! lo implemento en el resto del sitio y quedaría muy agradecido.
  #8 (permalink)  
Antiguo 07/11/2012, 10:32
Avatar de veruti85  
Fecha de Ingreso: octubre-2012
Ubicación: Entre Huelva y Madrid
Mensajes: 32
Antigüedad: 11 años, 5 meses
Puntos: 7
Respuesta: Notice: A session had already been started - ignoring session_start()

Si pones E_ALL & ~E_NOTICE te oculta todos los Notices que salten, que no quiere decir que este bien, pero no te los muestra...

El de undefined index, al ser notice tambien lo oculta, pero yo que tu, ya que te vas a meter a tocar el codigo le metia un isset() para evitar el problema

Saludos!
  #9 (permalink)  
Antiguo 07/11/2012, 10:50
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 15 años
Puntos: 38
Respuesta: Notice: A session had already been started - ignoring session_start()

Y el php.ini no es codigo ????

pon en tu pagina COMO_SE_LLAME.php

Código PHP:
ini_set('display_errors'1); // para ke te haga display de todos los errores
ini_set('date.timezone''CONTINENTE/CIUDAD'); // establece tu zona horaria 
y veras como modificas el codigo, del php.ini

todo al final es codigo, un interprete ke va leyendo lo ke escribes por lo ke tendras ke tocar el codigo obligatoriamente ya sea en tu script o en el file de configuracion de php php.ini o como sea, pero no lo solucionaras sin tocar el codigo.
  #10 (permalink)  
Antiguo 07/11/2012, 11:52
 
Fecha de Ingreso: noviembre-2012
Ubicación: caracas
Mensajes: 7
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Notice: A session had already been started - ignoring session_start()

Muy agradecido veruti85 rolygc implemente E_ALL & ~E_NOTICE versuit y pluff como por arte de magia! claro esta el hecho de que yo siempre vi esta solución en diferentes foros pero sucede que no la implementaba por que lo preocupante era que con el Notice: Undefined index pensé que no me le iba a asignar la variables pero al parecer en algún otro lado del sitio se las asigno, igual queda pendiente revisar al pelo mi código para evitar ocultar notificaciones.

rolygc para la próxima especificare mejor "que tipo de código era el que no quería tocar" pensé que quedaba sobre entendido que me refería al código de mi sitio y no al de configuración general en especifico pero creo que algunos si me entendieron.

Y bueno a la final me resulto mucho mas fácil meterle mano a una sola hoja de código que a casi 30 en mi sitio.

Muchas Gracias, problema solucionado.
  #11 (permalink)  
Antiguo 07/11/2012, 12:11
 
Fecha de Ingreso: abril-2009
Ubicación: en un lugar de la mancha
Mensajes: 236
Antigüedad: 15 años
Puntos: 38
Respuesta: Notice: A session had already been started - ignoring session_start()

Pues el problema no esta solucionado solo has ocultado el error, pero el problema persiste, y continua y puede generar mas problemas, esto de ocultar el error no es la solucion.

si tienes una variable undefined y depsues kieres manipularla y esperas el resultado manipulado obtendras mas errores. undefined y el resultado obtenido esta erroeno.

por lo ke este problema se puede ir multiplicando.
  #12 (permalink)  
Antiguo 07/11/2012, 12:19
 
Fecha de Ingreso: noviembre-2012
Ubicación: caracas
Mensajes: 7
Antigüedad: 11 años, 5 meses
Puntos: 0
Respuesta: Notice: A session had already been started - ignoring session_start()

Tienes razón y bueno nada como comente mas arriba "igual queda pendiente revisar al pelo mi código para evitar ocultar notificaciones" me tengo que sentar a revisar y cambiar mi código y luego desocultar las notificaciones y que no aparezca nada de nada pero por lo menos mi sitio esta como en su estado anterior, puedo levantar el servidor nuevo que para mi era algo urgente y tengo mas cancha ahora para sentarme a modificar.

gracias de nuevo un abrazo hermano.
  #13 (permalink)  
Antiguo 01/04/2013, 17:58
 
Fecha de Ingreso: abril-2013
Mensajes: 1
Antigüedad: 11 años
Puntos: 0
Respuesta: Notice: A session had already been started - ignoring session_start()

He venido a esta pagina con el mismo problema.
Alarmado ante ese terror de tener activados los errores,
y que salga la farroña que en su momento deje.. xD

Con el mismo error que tu ,
busque el fichero sobre el cual me decia que tenia dicho error y la linea mencionada.
No encontraba nada anormal, solo un sesion start().
y despues de fumar y de mis pelos tirar,
vi que era un fichero, sobre el cual,
con un include lo hacia llamar,
sobre otro, con otra sesion_start.
Sorprendido ante esta situacion,
y convencido de mi,
al fichero del include fui,
y eliminada la duplicidad,
en este reino de el error,
no se volvio a hablar.

LOL --> Lo siento estaba inspirado, y las horas que son...

PD: Ten cuidado porque la duplicidad puede deberse al hecho, de que tenga algun archivo enlazado con include el cual tambien tenga el sesion start() (lo que me ha pasado a mi)

Mejor repasalo y encuentra el error, porque escondiendolos siempre estaran ahi..
(hoy llevo 4 horas encontrandome cosas que deje asi = MAL HECHAS )

Animo robagi !!! Solo tienes que encontrarlo !!

Espero haberte ayudado
Gracias

Última edición por culebrawolf; 01/04/2013 a las 18:04

Etiquetas: apache, php.ini, xampp
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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:17.