PHP - Error con variables session_start

 
Vista:
sin imagen de perfil

Error con variables session_start

Publicado por Eduardo (17 intervenciones) el 28/11/2020 17:19:20
Saludos expertos:

Tengo el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<?php
 
    if(session_status() === PHP_SESSION_NONE) {
      session_start() ;
      require('funcion.php') ;
    }else{
      header('Location: login.php');
    }
 
    $SMem = $_SESSION;
    if ( isset($SMem['mem_clicod']) ) {
 
      $clie_codigo = $_SESSION["mem_clicod"] ;
      $clie_data   = GetClieData($clie_codigo);
      $hoy         = date("d-m-Y") ;
 
      $bus_tipo    = '' ;
      $bus_string  = '' ;
 
      if ( count($clie_data) > 0 ) {
 
         $clie_ruc    = $clie_data[1] ;
         $clie_nombre = $clie_data[2] ;
         $clie_cat    = $clie_data[3] ;
         $clie_gpo    = $clie_data[4] ;
         $clie_plan   = $clie_data[5] ;
         $clie_vend   = $clie_data[6] ;
         $clie_pp     = $clie_data[7] ;
         $clie_mail   = $clie_data[8] ;
         $clie_dias   = $clie_data[9] ;
         $clie_line   = $clie_data[10] ;
         $clie_cons   = $clie_data[11] ;
         $clie_esta   = $clie_data[12] ;
         $clie_canj   = $clie_data[13] ;
 
         $mark_csv   = 'marcas.csv' ;
         $list_mark  = csv_to_array( $mark_csv ) ;
         $cmb_mark   = " <option value=''>Seleccionar marca...</option>" ;
         foreach ( $list_mark as list($mrk_cod,$mrk_nom,$mrk_cnj) ) {
            $cmb_mark .=" <option value='".$mrk_cod."'>".$mrk_nom."</option>";
         }
 
         $cmb_filt = " <option value=''>Seleccionar filtro...</option>";
         $cmb_filt .= " <option value='NUEVO'>Ingresos nuevos</option>";
         $cmb_filt .= " <option value='REBAJA'>Productos en oferta</option>";
 
         if ( !empty($_SESSION["mem_bustip"]) && empty($_GET["busnom"]) && empty($_GET["busdci"]) && empty($_GET["busmar"]) && empty($_GET["busfil"]) ) {
            switch ($_SESSION["mem_bustip"]) {
               case "xnombre":
                  $_GET["busnom"] = $_SESSION["mem_busstr"] ;
                  break;
               case "xdci":
                  $_GET["busdci"] = $_SESSION["mem_busstr"] ;
                  break;
               case "xmarca":
                  $_GET["busmar"] = $_SESSION["mem_busstr"] ;
                  break;
               case "xfilt":
                  $_GET["busfil"] = $_SESSION["mem_busstr"] ;
                  break;
            }
         }
 
         if ( !empty($_GET["busnom"]) ) {
            $bus_tipo   = 'xnombre' ;
            $bus_string = trim( strtoupper( $_GET["busnom"] ) ) ;
            $bus_lineas = cargarVista($clie_codigo,$clie_gpo,$clie_plan,$bus_tipo,$bus_string) ;  // array para lista_carga.php
         }
 
         if ( !empty($_GET["busdci"]) ) {
            $bus_tipo   = 'xdci' ;
            $bus_string = trim( strtoupper( $_GET["busdci"] ) ) ;
            $bus_lineas = cargarVista($clie_codigo,$clie_gpo,$clie_plan,$bus_tipo,$bus_string) ;  // array para lista_carga.php
         }
 
         if ( !empty($_GET["busmar"]) ) {
            $bus_tipo   = 'xmarca' ;
            $bus_string = trim( strtoupper( $_GET["busmar"] ) ) ;
            $bus_lineas = cargarVista($clie_codigo,$clie_gpo,$clie_plan,$bus_tipo,$bus_string) ;  // array para lista_carga.php
         }
 
         if ( !empty($_GET["busfil"]) ) {
            $bus_tipo   = 'xfilt' ;
            $bus_string = trim( strtoupper( $_GET["busfil"] ) ) ;
            $bus_lineas = cargarVista($clie_codigo,$clie_gpo,$clie_plan,$bus_tipo,$bus_string) ;  // array para lista_carga.php
         }
 
         $_SESSION["mem_bustip"] = $bus_tipo ;
         $_SESSION["mem_busstr"] = $bus_string ;
 
      }
 
    }else{
 
      header('Location: login.php');
 
    }
 
?>
 
<!DOCTYPE HTML>
<html lang="es">
<head>
 
	 <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0" />
    <link rel="stylesheet" href="css/navbar.css" />
    <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" />
	 <title>Lista de precios FARMACOM</title>
 
    <!-- Optional JavaScript -->
    <!-- jQuery first, then Popper.js, then Bootstrap JS -->
    <script src="https://code.jquery.com/jquery-3.5.1.js" integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js" integrity="sha384-OgVRvuATP1z7JjHLkuOU7Xw704+h835Lr+6QL9UvYjZE3Ipu6Tp75j7Bh/kR0JKI" crossorigin="anonymous"></script>
 
</head>
 
 
<body>
 
   <div class="container-fluid">
 
      <div class="container-fluid">
         <div class="row">
            <div class="col-9" style="min-height: 100px; background-image: url('imagen/logo-lista.png'); background-repeat: no-repeat; background-size: cover; ">
            </div>
            <div class="col-3" style="min-height: 100px; background-image: url('imagen/logo-vac.png'); background-repeat: no-repeat; background-size: cover; ">
               <div id="noticiasFarmacom" class="carousel slide" data-ride="carousel">
                  <div class="carousel-inner">
                     <div class="carousel-item active">
                        <img src="imagen/banner-1.png" class="img-fluid" alt="...">
                     </div>
                     <div class="carousel-item">
                        <img src="imagen/banner-2.png" class="img-fluid" alt="...">
                     </div>
                     <div class="carousel-item">
                        <img src="imagen/banner-3.png" class="img-fluid" alt="...">
                     </div>
                  </div>
               </div>
            </div>
         </div>
         <div class="row">
            <?php echo "<h6>Bienvenido ".$clie_nombre."</h6>"; ?>  // <-LINEA 145
            <?php echo "<input type='hidden' name='post_codcli' id='cliente_codigo' value='".$clie_codigo."'>"; ?>
         </div>
         <div class="row">
            <?php echo "<h6>Hoy es ".obtenerFechaEnLetra($hoy)."</h6>" ; ?>
         </div>
      </div>
...

Cuando realicé mis pruebas ha funcionado sin problema, pero ahora que estoy en producción constantemente encuentro este error_log en el host:

1
2
3
4
5
6
[28-Nov-2020 10:36:14 America/Lima] PHP Notice:  Undefined variable: clie_nombre in /home/farmacom/public_html/pedidos/lista.php on line 145
[28-Nov-2020 10:36:14 America/Lima] PHP Notice:  Undefined variable: clie_codigo in /home/farmacom/public_html/pedidos/lista.php on line 146
[28-Nov-2020 10:36:14 America/Lima] PHP Notice:  Undefined variable: hoy in /home/farmacom/public_html/pedidos/lista.php on line 149
[28-Nov-2020 10:36:14 America/Lima] PHP Notice:  Undefined variable: clie_canj in /home/farmacom/public_html/pedidos/lista.php on line 168
[28-Nov-2020 10:36:14 America/Lima] PHP Notice:  Undefined variable: cmb_mark in /home/farmacom/public_html/pedidos/lista.php on line 196
[28-Nov-2020 10:36:14 America/Lima] PHP Notice:  Undefined variable: cmb_filt in /home/farmacom/public_html/pedidos/lista.php on line 204

No entiendo porque no encuentra las variables si hay un condicional para que si no encuentra la variable en la sesión lleve al usuario a la página del login.

Agradeceré cualquier ayuda al respecto.


Cordiales saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1.071
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error con variables session_start

Publicado por Yamil (888 intervenciones) el 28/11/2020 17:23:54
Chequea el php.ini de tu ambiente de produccion a ver si tienes las sessiones activas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de joel
Val: 3.828
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Error con variables session_start

Publicado por joel (1269 intervenciones) el 29/11/2020 10:55:40
Hola Eduardo, son "Notice"... puede ser que en tu maquina las tengas desabilitadas las "Notice"...

Si no entra en el condicional de la linea 11 o 20, la variable $clie_nombre no obtiene valor, por eso el "Notice" que te indica que la variable no esta definida.

Puedes solucionarlo comprobando si esta definida la variable algo así:
1
<?php echo "<h6>Bienvenido ".(isset($clie_nombre) ? $cliente : "")."</h6>"; ?>

pero creo que es mejor controlar porque no tiene valor antes de mostrar la variable.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauro
Val: 2.761
Oro
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Error con variables session_start

Publicado por Mauro (1036 intervenciones) el 01/12/2020 00:36:17
Fijate que en la linea 7, despues del header('Location...');

No hay un die, con lo cual el script continua ejecutandose despues de enviar el encabezado.

Si lo que quieres hacer es una redireccion incondicional debes agregar el die luego del header
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Eduardo
Val: 70
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Error con variables session_start

Publicado por Eduardo (13 intervenciones) el 01/12/2020 15:02:00
Mil gracias por tu tiempo, ya realicé la modificación espero vaya bien.

Saludos cordiales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar