Que tal
akkaslla, como ya te indicaron el problema radica en que antes del
session_start() no puedes mandar ninguna salida al navegador, ahora tienes algunos errores de conceptos en los scripts que publicas
1. En el archivo
config.php no es necesario que apliques el
session_start() , no cierres la conexión deja la función como tal puede ser así:
Código PHP:
<?php
function Conectarse()
{ if (!($link=mysql_connect("localhost","root","atesa")))
{ echo "Error conectando a la base de datos.";
exit(); }
if (!mysql_select_db("okok9687",$link))
{ echo "Error seleccionando la base de datos.";
exit(); }
return $link;
} ?>
2. El archivo
autentificar.php modifícalo de esta forma, no es necesario que utilizes el
session_register() Código PHP:
<?php include('config.php');
$link=Conectarse();
//comprobamos en la db si existe ese nick con esa pass
$usuarios = mysql_query("SELECT * FROM users WHERE nick='$_POST[nick]' and pass='$_POST[pass]' ",$link) or die("Error en query:" .mysql_error() );
$user_ok = mysql_fetch_array($usuarios);
if(mysql_num_rows($usuarios) != 0)//si existe comenzamos con la sesion, si no, al index
{
session_start();
//damos valores a las variables de la sesión
$_SESSION['usuario'] = $user_ok["nick"]; //damos el nick a la variable usuario
$_SESSION['level'] = $user_ok["level"]; //damos el level del user a la variable level
$_SESSION['cliente'] = $user_ok["cliente"];
$_SESSION['id'] = $user_ok["id"];
header("Location:login.php"); //volvemos al login donde nos saldrá nuestro menú de usuario
}
else
{
echo 'Nick y pass incorrectos';
}
?>
3. Lo mismo en login.php agregas el
session_start() utiliza las variables de session de esta forma
$_SESSION['variable'] utilizando las comillas para que le ahorres trabajo al PHP
Código PHP:
<?php include("config.php");
$link=Conectarse();
session_start();
if(!isset($_SESSION['usuario']) ) //comprobamos que no existe la session, es decir, que no se ha logeado, y mostramos el form
{
?>
4. Y por ultimo el
logout.php , la forma correcta de destruir la sesion es así, ademas no es necesario que incluyas el archivo de conexión a la BD, ademas si deseas destruir las variables asociadas a la sesion puedes utilizar
session_unset(), o
$_SESSION = array() puedes ver la referencia en el manual de PHP,
session_destroy() Código PHP:
<?php session_start();
$_SESSION = array(); // Destruye todas las variables de la sesión
session_destroy(); //destruimos la sesion
header("Location:login.php"); //volvemos al login.php
?>
Saludos.