Ver Mensaje Individual
  #7 (permalink)  
Antiguo 22/09/2008, 08:29
akkaslla
 
Fecha de Ingreso: septiembre-2008
Mensajes: 19
Antigüedad: 15 años, 7 meses
Puntos: 0
Pregunta Respuesta: Ayuda con las Sesiones en PHP

teng estos 4 archivos donde creo que puede estar el error pues algunos de ellos se manda a llamar entre ellos
un archivo es el config.php

Código PHP:
<?php 
session_start
(); 
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

$link=Conectarse(); 
mysql_close($link); //cierra la conexion ?>
otro autentificar.php
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);
   if(
$user_ok mysql_fetch_array($usuarios)) //si existe comenzamos con la sesion, si no, al index
   
{
        
session_register("usuario"); //registramos la variable usuario que contendrá el nick del user
        
session_register("level"); //registramos la variable level que contendrá el level del user
        //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'
     } 
?>
, login.php,
Código PHP:
<?php include("config.php"); 
  
$link=Conectarse(); 
if(!isset(
$_SESSION[usuario]) ) //comprobamos que no existe la session, es decir, que no se ha logeado, y mostramos el form
{
?>
<style type="text/css">
<!--
body {
    background-image: url(rollo.JPG);
}
.Estilo1 {font-family: Tahoma}
.Estilo2 {
    font-size: 12px;
    font-style: italic;
}
.Estilo3 {color: #F6F1ED}
-->
</style>
<form action="autentificar.php" method="POST">

<p align="center">Bienvenidos al Apartado de Consulta de Saldos si ya eres usuario</p>
<p align="center">escribe tu usuario y password.  </p>
<p align="center"><strong>Iniciar sesi&oacute;n</strong></p>
<TABLE width="373" align="center" bordercolor="../principal/rollo.JPG" bordercolorlight="#E67A1A" bordercolordark="#E67A1A" background="#E67A1A"> 
<TR> 
    <TD class="Estilo11 Estilo1"> <img src="gente.gif" width="22" height="23">Usuario:     </td>      
    <TD class="Estilo4"><input type="text" name="nick" size="30"></TD> 
</TR> 
<TR> 
    <TD class="Estilo11 Estilo1"> <img src="llave.gif" width="21" height="21">Password: </td>
     <TD class="Estilo4"><input type="password" name="pass" size="30" ></td>
</tr>
<tr>
     
<TD class="Estilo11 Estilo1"> </td> 
 <TD class="Estilo4"><input type="submit" name="submit" value="Enviar"></td>
</tr>

</table>
<p align="center" class="Estilo2"><a href="php/insertarregistro.php">Nuevo..? Registrate</a> <span class="Estilo3">.............</span><a href="pass.php">Olvidaste tu Contrase&ntilde;a</a> </p>
</form>
<?
}
else
{
echo 
'Bienvenido '.$_SESSION[usuario]; //ej Bienvenido Juan
echo '<br>Tu level es '.$_SESSION[level]; //mostramos el level del user
if($_SESSION[level] == 2
{
echo 
'<br><a href=detalles.php>Detalles</a>';
echo 
'<br><a href=datos.php>Cambio de Datos</a>';
}
if(
$_SESSION[level] == 1
{
//mostramos el link para ir a la pagina privada porque el user tiene level 1 (*Nota: el level por defecto es 2, por lo tanto no se le mostrará)
//*Nota2: para cambiar el level a 1, se tiene k hacer manualmente por phpmyadmin
echo '<br><a href=perfil.php>Ir a pagina privada</a>';
 
}
echo 
'<br><a href=logout.php>Salir</a>'//link para deslogearse, iría a logout.php
}
?>
y logout.php
Código PHP:
<?php session_start();
session_destroy(); //destruimos la sesion
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db y la sesión
header("Location:login.php"); //volvemos al login.php
?>

cada uno de ellos me marca los siguientes errores

cuando quiero iniciar sesion doy clic en el menu de clientes (se abre el archivo de login que primero verifica si no hay ya un usuario logeado o sea que no haya cerrado sesion si no hay ninguno logeado te pide usuario y contraseña, ok)
bueno las escribo y doy clic en el boton enviar q este boton manda a llamar el archivo autentificar, y me marca el siguiente error:

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\atesa\principal\config.php:13) in C:\AppServ\www\atesa\principal\autentificar.php on line 14

que la linea 13 del archivo config.php es la siguiente

mysql_close($link); //cierra la conexion ?>

y la linea 14 de autentificar.php es la siguiente

header("Location:login.php");

pero bueno, aun asi le vuelvo a dar clic en el menu clientes (te acuerdas que te lo mencione arriba???) bueno al darle clic en clientes, me muestra la pagina que quiero como si hubiera entrado normal me explico!!!??

ok puedo hacer las operaciones que quiero
pero al darle clic en salir que este me lleva al archvio de logout.php me marca este error

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\atesa\principal\config.php:13) in C:\AppServ\www\atesa\principal\logout.php on line 4

que la linea 13 del archivo config.php es la siguiente y es igual al error anterior

mysql_close($link); //cierra la conexion ?>

mientras que la linea 4 de logout.php es la siguiente

header("Location:login.php"); //volvemos al login.php

si te fijas en los dos errores me marca lo mismo en el header??? que sera??? me podrias ayudar?? gracias.