Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/06/2011, 13:29
jesusjj
 
Fecha de Ingreso: noviembre-2007
Mensajes: 154
Antigüedad: 16 años, 5 meses
Puntos: 2
Pregunta PHP Dudas POO



Buenas tardes:

Estoy empezando a trastear rehaciendo una web en POO. Se trata de un pequeño sistema de administración para una asociación, con movimiento el justo, con lo que no es muy grande.

El tema, es que por evitar usar smarty, por parecerme demasiado para lo que necesito, me he puesto a hacer 'includes' y 'requires' como un loco y esto funciona sólo a medias y eso que sólo he empezando con la transformación.

El problema en concreto que estoy teniendo, es que por hacer una clase generadora de menús de navegación (tampoco tengo muy claro por qué, sólo por separarlo de la vista) he hecho una clase que captura de la BBDD los apartados y los 'pinta' en la página a través de un include. Antes de ésto, verifica si existe la '$_SESSION['usuario']' creada en el login. Pues por mucho que ponga en el index más index de todos el 'session_start()', en la comprobación de la $_SESSION para el menú, dice que no existe. Haciendo pruebas:
Código PHP:
print_r($_SESSION
No muestra nada, a no ser que en la clase de menú ponga también un session_start(), que es entonces cuando se pega con todo.

Bueno, pongo un poco de código, para que veáis el lío que estoy montando y si no os importa, me orientéis un poco.

Muchas gracias de antemano.

Saludos.

index.php
Código PHP:
<?php 
session_start
();

setlocale(LC_TIME"es_ES");

require_once (
"includes/php/constantes.php");
include_once (
'includes/php/pages/index2.php');
?>
index2.php
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title><?php echo TITULO_PAGINA ?></title>

    <!-- CSS -->
    <link rel="stylesheet" type="text/css" href="<?php echo RUTA_CSS ?>reset.css" />
    <link rel="stylesheet" type="text/css" href="<?php echo RUTA_CSS ?>960.css" />
    <link rel="stylesheet" type="text/css" href="<?php echo RUTA_CSS ?>admStyles.css" />
    <link rel="stylesheet" type="text/css" href="<?php echo RUTA_CSS ?>formularios.css" />
    <link rel="stylesheet" type="text/css" href="<?php echo RUTA_CSS ?>jquery-ui_Datepicker.css" />
    <link rel="stylesheet" type="text/css" href="<?php echo RUTA_CSS ?>demo_table.css" />

    <!-- JS -->
    <script type="text/javascript" src="<?php echo RUTA_JS ?>jquery.js"></script>
    <script type="text/javascript" src="<?php echo RUTA_JS ?>jquery-ui.js"></script>
    <script type="text/javascript" src="<?php echo RUTA_JS ?>jquery.dataTables.js"></script>
    <script type="text/javascript" src="<?php echo RUTA_JS ?>jquery.validate.min.js"></script>
    <script type="text/javascript" src="<?php echo RUTA_JS ?>jquery.tools.js"></script>
    <script type="text/javascript" src="<?php echo RUTA_JS ?>preloadCssImages.js"></script>
    <script type="text/javascript" src="<?php echo RUTA_JS ?>fns_jQuery.js"></script>
  </head>

  <body>
    <div id="cp_wrapper">                                                       
      <div id="cp_general" class="container_12 alpha omega">                    
        <div id="cp_cabecera"  class="">                                        
           <div id="cp_usuario" class="grid_3 prefix_9">                                
            <p class="nombreUs"><?php echo $_SESSION['usuario']; ?></p>
          </div>
        </div>
        <div class="clear">&nbsp;</div>
        <div id="cp_menuSup" class="">                                          
          <?php include(RUTA_MODULOS.'/menu/menuSuperior.php'); ?>
        </div>
        <div class="clear">&nbsp;</div>
        <div id="cp_contTop">&nbsp;</div>                                       
        <div class="clear">&nbsp;</div>
        <div id="cp_contGral">                                                  
          <div id="cp_contContenido" class="grid_10 prefix_1">                  
           <?php include(RUTA_PHP.'pages/home.php'); ?>
          </div>
          <div class="clear">&nbsp;</div>
        </div>
        <div class="clear">&nbsp;</div>

        <div id="footer" class="grid_10 prefix_1">
<!--
          <table id="men_inferior">
            <tr>
            </tr>
          </table>
-->
        </div>
        <div class="clear">&nbsp;</div>
      </div> <!-- Final Contenedor (cp_general) -->
      <div id="cp_inferior" class="">&nbsp;</div>
    </div>
  </body>
</html>
menuSuperior.php
Código PHP:
<?php
require_once 'Menu.class.php';

if(!(@
$_SESSION['usuario']) OR ($_SESSION['usuario'] == ''))
{
    echo 
"Men&uacute; Superior<br/>";
    
print_r ($_SESSION);
}else{
    
$menuSuperior = new Menu();
    
$resultados=$menuSuperior->getElementosMenu();
    
print_r($resultados);
}

?>
Menu.class.php
Código PHP:
<?php
require_once '../../MySQL.class.php';
require_once 
'../../constantes.php';

class 
Menu {

    var 
$posicion;
    var 
$db;
    var 
$sql;

    function 
__construct() 
    {
        
$this->db = new MySQL();
    }
    
    public function 
getElementosMenu()
    {
        
$this->sql"select * from tMenu where Tipo = 1 order by idMenu"//and idPerfilAcceso <= ".$_SESSION['userPerfil']." order by idMenu";
        
$resultado $this->db->consulta($this->sql);
        
$elementos $this->db->fetch_array($resultado);
        return 
$elementos;
    }

}
?>
Login.class.php
Código PHP:
[...]
class 
Login extends Usuario {

    private 
$maxIntentos 3;
    private 
$numIntentos 0;

    function 
__construct() {
        
parent::__construct();
        
$_SESSION['login'] = false;
        
$_SESSION['usuario'] = '1';
        
$_SESSION['contador'] = 0;
        
$_SESSION['uid'] = 0;
        
        echo 
$_SESSION['usuario'];
    }
[...]