Foros del Web » Programando para Internet » PHP »

session_start()

Estas en el tema de session_start() en el foro de PHP en Foros del Web. Haber antes, tenia una página principal, y para iniciar sesión llamaba a un pop-pup en el cual el usuario se logeaba y al cerrar el ...
  #1 (permalink)  
Antiguo 15/04/2006, 15:46
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
session_start()

Haber antes, tenia una página principal, y para iniciar sesión llamaba a un pop-pup en el cual el usuario se logeaba y al cerrar el pop-pup, la página principal se refrescaba, y el usuario quedaba logueado, bien, ahora e querido integrar el logueo en la página principal, con un include, el problema es que antes y ahora tanto la página principal como la página del logueo tienen el session_start() y funcionaba bien, pero ahora cuando hago el logueo, me dice:

Código PHP:
NoticeA session had already been started ignoring session_start() in /usr/local/.... on line 114 
Segun entiendo me dice que ya ha habido un inicio de sesión antes, al haber dos session_start(), pero e probado tanto quitar el de la página principal, como en la pagina del logueo y me da error. haber si alguien me puede ayudar.

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #2 (permalink)  
Antiguo 15/04/2006, 16:49
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
No tendras dos inicio de sesiones por ahi?

Saludos
__________________
www.dataautos.com
  #3 (permalink)  
Antiguo 15/04/2006, 16:59
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Haber en el include tengo:

Código PHP:
<?
    ob_start
();
?>

<?php

    
}

    if(isset(
$submit)):

        
$db mysql_pconnect("localhost""root") or die("No pudo conectar");
        
mysql_select_db("users"$db) or die("No se encuentra la base usuarios");
        
$sql "select * from usuarios where usuario = '$usuario'";
        
$result mysql_query($sql) or die("La query no funciona: ".mysql_error());
        
$row_count mysql_num_rows($result);
        if(
$row_count == 0):

?>

<script type="text/javascript">alert('Nombre de usuario incorrecto! Inténtalo de nuevo');</script>

<?php

        print_form
();
else:

        
$row mysql_fetch_array($result);
        if(
$Password != $row["pass"]):


?>

<script type="text/javascript">alert('Contraseña incorrecta! Inténtalo de nuevo');</script>

<?php

        print_form
();

    else:
        
session_start();
        
$_SESSION['usuario_nombre'] = $usuario;
        endif;

    endif;
    else:
    
        
print_form();

    endif;

?>
y en el la página principal (index):

Código PHP:
<?php
    session_start
();
    
ini_set ('error_reporting'E_ALL);
?>
si quito uno de los session_start(); del index o del include, me da error, si lo quito del index, me da:

Código PHP:
Warningsession_start() [function.session-start]: Cannot send session cookie headers already sent by (output started at /usr/local/...) in /usr/local/... on line 113

Warning
session_start() [function.session-start]: Cannot send session cache limiter headers already sent (output started at /usr/local/....) in /usr/local/.... on line 113 
y si lo quito del include, no me muestra el formulario para el logeo

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #4 (permalink)  
Antiguo 15/04/2006, 17:43
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
Estas usando la funcion Header en algun lado? si es asi verifica que antes de la funcion no exista nada de html o algun espacio (llamese una linea en blanco)
__________________
www.dataautos.com
  #5 (permalink)  
Antiguo 15/04/2006, 17:58
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
pues va a ser que, que funcion es esa o que hace??

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #6 (permalink)  
Antiguo 15/04/2006, 18:00
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
verifica si la tienes por ahi, eso sirve para enviar informacion via el "header" ejejej
__________________
www.dataautos.com
  #7 (permalink)  
Antiguo 15/04/2006, 18:06
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
pues no la veo por ningun lugar
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #8 (permalink)  
Antiguo 15/04/2006, 18:13
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
He encontrado esto, tengo un include para cerrar la sesión:

Código PHP:
<?php
    session_start
();
    
$_SESSION = array();
    
session_destroy();
    
header("Location: index.php");
    exit;
?>
bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #9 (permalink)  
Antiguo 15/04/2006, 18:18
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
perdón no es un include, es una página que llamo con un link, para cerrar la sesión.

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #10 (permalink)  
Antiguo 15/04/2006, 18:23
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
Buen el caso, solo puedes tener un session _star en un archivo, asi que elimina uno de los dos y busca la forma de que se te muestre el formulario
__________________
www.dataautos.com
  #11 (permalink)  
Antiguo 16/04/2006, 04:41
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
La verdad es que solo hay un session _star(); por fichero, pero un es un include, dentro del otro y a lo mejor por eso pasa, pero sigo sin resolver el asunto.

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #12 (permalink)  
Antiguo 16/04/2006, 12:20
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
Es que al momento que haces un include todo lo que esta en ese archivo va a pertenecer al archivo donde lo incluite. Deja solo una session_star() y mira a ver como resuelve el problema de que te muestre el login, no creo que sea tan dificil debe ser mas facil que resolver el otro problema

Saludos
__________________
www.dataautos.com
  #13 (permalink)  
Antiguo 16/04/2006, 12:39
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Vamos a resumir, cuando el inicio de sesión lo hacia en una página independiente, en esa página tenia:

Código PHP:
<?
    ob_start
();
?>
Y mas abajo en esa misma página:
Código PHP:
else:
        
        
session_start();
        
$_SESSION['usuario_nombre'] = $usuario;
        
endif; 
y en el index:

Código PHP:
<?php
    session_start
();
    
ini_set ('error_reporting'E_ALL);
?>
Esto es como estaba y funcionaba, ahora al integrar esa página como un include, la página queda asi:

Código PHP:
<?
    
//ob_start();
?>
Código PHP:
else:
        
        
session_start();
        
$_SESSION['usuario_nombre'] = $usuario;
        
    endif; 
y el index:

Código PHP:
<?php
    
    ob_start
();

    
//session_start();
    //ini_set ('error_reporting', E_ALL);
?>
Funciona, a medias, es decir, yo cuando logeo, quiero que me aparezcan unos datos del usuario, como su nombre, su ip, etc y haciendolo de esta forma, no aparecen, pero si lo pongo como estaba al principio, me da el error de:

Código PHP:
NoticeA session had already been started ignoring session_start() in /usr/local/.... on line 114 
y entonces actualizo la página y desaparece el error pero me muestra los datos.

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
  #14 (permalink)  
Antiguo 16/04/2006, 15:09
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 22 años, 2 meses
Puntos: 6
bueno dime como va?

Código PHP:
NoticeA session had already been started ignoring session_start() in /usr/local/.... on line 114 
Ese error de que pagina es? del include?
__________________
www.dataautos.com
  #15 (permalink)  
Antiguo 17/04/2006, 10:30
Avatar de bichomen  
Fecha de Ingreso: junio-2003
Ubicación: Barcelona y alrededores, España
Mensajes: 877
Antigüedad: 20 años, 10 meses
Puntos: 2
Si es del include.

bichomen
__________________
"Se sabe con exactitud, con cuanta imprecisión, se sabe algo"
Linux Registered User #320332
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




La zona horaria es GMT -6. Ahora son las 04:18.