Ver Mensaje Individual
  #9 (permalink)  
Antiguo 15/07/2014, 13:24
Avatar de lmichailian
lmichailian
 
Fecha de Ingreso: noviembre-2013
Mensajes: 20
Antigüedad: 10 años, 5 meses
Puntos: 0
Respuesta: Al cambiar de pagina no mantiene la sesion

Mi problema es que cuando inicio sesión OK recargo la pagina OK se mantiene. En header.php tengo un link a index.php para retornar al inicio de la pagina si hago click en el mismo la sesión ya no esta abierta.

En este caso session_start() solo se encuentra en index.php pero si lo pongo en header.php tambien sigue haciendo lo mismo pero dando los siguiente Notice: A session had already been started - ignoring session_start() in C:\xampp\htdocs\rocker\templates\header.php on line 5

index.php

Código PHP:
    <!-- Templates config -->
    <?php require 'config/templates.config.php'?>
    
    <!-- DB config & functions-->
    <?php require 'config/db.config.php'?>

    <?php require 'lib/db.funciones.php' ?>
    <?php require 'lib/article.funciones.php' ?>
    <?php require 'lib/user.funciones.php' ?>


    <!--Connect-->
    <?php    
    
    session_start
();
    
    
$connect connect(DB_HOST,DB_USER,DB_PASS,DB_NAME);

    

    if (!
$connect) {
        echo 
"<h1 style='background:red;'>ERROR EN LA CONEXION CON LA BASE DE DATOS<h1>";
    }

    
//Template -> Load principal elements, if the user call a page,
    //              when this is ready load without *Home elements*     
    
    
require TEMPLATE_PATH.'/head.php'
    require 
TEMPLATE_PATH.'/header.php'

    if(isset(
$_GET["page"])) {

        require 
TEMPLATE_PATH."pages/".$_GET["page"].".html";

    } else {

        
//*Home elements*
        
require TEMPLATE_PATH.'/home.php';
          require 
TEMPLATE_PATH.'/articles.php';
          require 
TEMPLATE_PATH.'/aside.php';
    }

      require 
TEMPLATE_PATH.'/footer.php';

    
?>
header.php

Código PHP:
<?php  
     

    
if (isset($_POST["user"]) && isset($_POST["password"]) ) {     
     
        
$user    checkLogin($_POST["user"], $_POST["password"]); 

        if(
$user) { 

        
$_SESSION["user"] = $user
        } 

    } else { 

        
$user FALSE
    }     
                         
?> 

<header class="upper"> 
            <nav id="header-container"> 
                <ul> 
                    <li><a href="index.php">Inicio</a></li> 
                    <li><a title="Quien soy" class="upper" href="#">Quien soy</a></li> 
                    <li><a title="Diseño Web" id="dropper" href="#">Dise&ntilde;o Web</a> 
                        <ul class="drop-menu upper"> 
                             <li><a href="#">Consultoria</a></li> 
                             <hr> 
                             <li><a title="Proyectos" href="">Proyectos</a></li> 
                         </ul>     
                    </li> 
                    <li ><a title="Blog" class="upper" href="#">Blog</a></li> 
                    <li ><a tittle="Contacto" class="upper" href="#">Contacto</a></li> 
                </ul> 
             
                <?php  
                        
echo "<div class='login'>"

                    if (
isLogin()) { 
                         
                        echo 
"<h3>Bienvenido"." ".$user["user"]."!</h3>"
                        echo 
"<a href='".closeSession()."'><button class='danger-red'>Cerrar Sesion</button></a>"

                    }  

                    if (!
isLogin()) { 
                         
                        echo 
"<button class='aqua-green login-btn'>Iniciar Sesi&oacute;n</button> 
                              <a href='index.php?page=sign-up'><button class='orange'>Registrarme</button></a>"

                    }      
                     
                    if (
wrongData($user)) { 
                        echo 
"<h3 style='position:absolute; color:red'><em>Datos invalidos</em></h3>"
                    } 

                    echo 
"</div>"
                
?> 
                <div class="rockerModal"> 
                    <?php 
                        
require TEMPLATE_PATH.'form.html'
                    
?> 
                  </div> 
            </nav>     
</header>
user.funciones.php

Código PHP:
<?php 

    
function checkLogin($user,$password) { 

        
$connect connect(); 

        
$password mysqli_real_escape_string($connect,$password); 

        
$user       mysqli_real_escape_string($connect,$user); 

        
$fields   "id,user,password,name,is_author,is_root"
         
        
$sql      "SELECT $fields FROM users WHERE user='$user' AND password='$password'"

        
$result   queryArray($sql); 

        if (
$result) { 
            return 
$result[0]; 
        } 

        return 
FALSE
    } 

    function 
closeSession(){ 
        
session_destroy(); 
    } 

    function 
isLogin(){ 

        if (isset(
$_SESSION["user"])) { 
            return 
TRUE;  
        }     
            return 
FALSE
     } 

      
     function 
wrongData($user) { 
         if (isset(
$_POST["user"]) && $user["user"] != $_POST["user"] && isset($user)) { 
             return 
TRUE
         } 
         return 
FALSE
    }