Sometimes I do not recover the varaible of SESSION in php

1

I have a ticket system, when doing a registration I have to insert in 3 different tables (sometimes up to 4 tables) from a single form ... One of the data that I have to insert in the Database is a session variable and here is the problem, since in certain occasions it does not register that data, I want to think that the session expires and therefore the data can not be recovered . Annex my code to see if you can guide me, in advance thank you very much.

HTML code

Form header

<?php
session_start();
if(isset($_SESSION['u_usuario'])){
    if($_SESSION['u_usuario']['rol']!=2){
        header("Location: ../admin/");
    }
}else{
    header("Location: ../index.php");
}

require('../conn/conexion.php');
//$ID = $_GET['PK_idCategoria'];

$categoria = mysqli_query($con,"SELECT * FROM categoria ORDER BY categoriaDesc ASC");

$subcategoria = mysqli_query($con,"SELECT * FROM subcategoria");

#Rol (2) Pertenece a los Técnicos

$tecnico = mysqli_query($con,"SELECT usuario.PK_idUsuario, usuario.nombre, usuario.apellidos FROM usuario WHERE usuario.rol <> 3");
$cliente = mysqli_query($con,"SELECT usuario.PK_idUsuario, usuario.nombre, usuario.apellidos FROM usuario ORDER BY usuario.nombre ASC");

Form Body.

    <!--Modal Registro-->
    <div class="modal fade" id="registrarTicket" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
        <div class="modal-dialog modal-lg modal-primary" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="exampleModalLabel"><i class="fa fa-plus-circle"></i> Crear Ticket</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <form action="" method="post" id="frmregistrarTicket" enctype="multipart/form-data">
                    <div class="modal-body">
                        <div class="messages"></div>
                        <div class="alert alert-info" id="botonAF">
                            <a class="" data-toggle="collapse" href="#btnactividadesFrecuentes" aria-expanded="false" aria-controls="btnactividadesFrecuentes">
                                <i></i> Actividades frecuentes <i class="fa fa-angle-double-right"></i>
                            </a>
                        </div>
                        <div class="collapse" id="btnactividadesFrecuentes">
                            <div class="card-block" id="btnActFre">
                                <div class="row">
                                    <div class="col-md-8">
                                        <button type="button" class="btn btn-success" id="cambioDomicilio" >
                                            <i class="fa fa-exchange"></i> Cambio
                                        </button>
                                        <button type="button" class="btn btn-warning" id="facturas" >
                                            <i class="fa fa-file-text"></i> Timbrado
                                        </button>
                                        <button type="button" class="btn btn-primary" id="toner" >
                                            <i class="fa fa-print"></i> Toner
                                        </button>
                                    </div>
                                    <div class="col-md-4">
                                        <button type="button" class="btn btn-danger pull-right" id="limpiarCampos" >
                                            <i class="fa fa-close"></i> Cancelar
                                        </button>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <hr>

                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group">
                                    <div class="input-group">
                                        <span class="input-group-addon">¿Es hijo?</span>
                                        <select class="form-control" id="regEshijo" name="regEshijo">
                                            <option value="0">No</option>
                                            <option value="1">Si</option>
                                        </select>
                                        &nbsp;&nbsp;
                                        <button type="button" class="btn btn-tool btn-sm" data-toggle="tooltip" data-placement="bottom" title="Si el ticket a generar depende de otro ya creado">
                                          <i class="fa fa-question"></i>
                                        </button>
                                    </div>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group">
                                    <div class="input-group" id="referencia"> 
                                        <span class="input-group-addon">ID Referencia</span>
                                        <input type="text" id="regReferencia" name="regReferencia" class="form-control" placeholder="Referencia ticket padre">
                                        <button type="button" id="heredar" class="btn btn-primary btn-sm"><i class="fa fa-angle-double-right"></i></button>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group">
                                    <div class="input-group">
                                        <span class="input-group-addon">Requerimiento</span>
                                        <select class="form-control" name="regCategoria" id="regCategoria" required>
                                            <option value="">Seleccione...</option>
                                            <?php
                                            while($fila=mysqli_fetch_array($categoria)){
                                                //$ID=$fila['PK_idCategoria'];
                                                echo '<option value="'.$fila['PK_idCategoria'].'">'.$fila['categoriaDesc'].'</option>';
                                            }
                                            ?>
                                        </select>
                                    </div>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group">
                                    <div class="input-group" id="idSubcategoria_">
                                        <span class="input-group-addon">Subcategoria</span>
                                        <select class="form-control" name="regSubcategoria" id="regSubcategoria" required>
                                            <option value="">Seleccione...</option>
                                            <?php
                                                while($fila=mysqli_fetch_array($subcategoria)){
                                                echo '<option value="'.$fila['PK_idSubcategoria'].'">'.$fila['subcategoriaDesc'].'</option>';
                                            }
                                            ?>
                                        </select>
                                    </div>
                                </div>
                            </div>
                        </div>

                        <div class="form-group">
                            <div class="input-group">
                                <span class="input-group-addon">Tema</span>
                                <input type="text" id="regTema" name="regTema" class="form-control" placeholder="Titulo tema" required>
                            </div>
                        </div>

                        <div class="form-group">
                            <div class="input-group">
                                <span class="input-group-addon">Descripción</span>
                                <textarea rows="3" id="regDescripcion" name="regDescripcion" class="form-control" placeholder="Descripcion" required></textarea>
                            </div>
                        </div>

                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group">
                                    <div class="input-group">
                                        <span class="input-group-addon">Cliente</span>
                                        <select class="form-control" name="regCliente" id="regCliente" required>
                                            <option value="">Seleccione...</option>
                                            <?php
                                            while($row=mysqli_fetch_array($cliente)){
                                                echo '<option value="'.$row['PK_idUsuario'].'">'.$row['nombre'].' '.$row['apellidos'].'</option>';
                                            }
                                            ?>
                                        </select>
                                    </div>
                                </div>
                            </div>

                            <div class="col-md-6">
                                <div class="form-group">
                                    <div class="input-group" id="idSucursal_">
                                        <span class="input-group-addon">Sucursal</span>
                                        <select class="form-control" name="regSucursal" id="regSucursal" required>

                                        </select>
                                    </div>
                                </div>
                            </div>                      
                        </div>

                        <div class="row">                               
                            <div class="col-md-6">
                                <div class="form-group">
                                    <div class="input-group">
                                        <span class="input-group-addon">Tipo de ticket</span>
                                        <select class="form-control" name="regTipo" id="regTipo" required>
                                            <option value="">Seleccione...</option>
                                            <option value="1">Servicio</option>
                                            <option value="2">Incidente</option>
                                            <option value="3">Problema</option>
                                        </select>
                                    </div>
                                </div>
                            </div>  
                            <div class="col-md-6">
                                <div class="form-group">
                                    <div class="input-group">
                                        <span class="input-group-addon">Asignar a</span>
                                        <select class="form-control" name="regTecnico" id="regTecnico" required>
                                            <option value="">Seleccione...</option>
                                            <?php
                                            while($fila=mysqli_fetch_array($tecnico)){
                                                echo '<option value="'.$fila['PK_idUsuario'].'">'.$fila['nombre'].' '.$fila['apellidos'].'</option>';
                                            }
                                            ?>
                                        </select>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <div class="row">
                            <div class="col-md-6">
                                <div class="form-group">
                                    <div class="input-group">
                                        <span class="input-group-addon">Status</span>
                                        <select class="form-control" name="regStatus" id="regStatus" required>
                                            <option value="">Seleccione...</option>
                                            <option value="1">Abierto</option>
                                            <option value="2">Asignado</option>
                                            <option value="3">Pendiente</option>
                                            <option value="4">Cerrado</option>
                                            <option value="5">Cancelado</option>
                                            <option value="6">Resuelto</option>
                                            <option value="7">Reabierto</option>
                                        </select>
                                    </div>
                                </div>
                            </div>
                            <div class="col-md-6">
                                <div class="form-group">
                                    <div class="input-group">
                                        <span class="input-group-addon">Prioridad</span>
                                        <select class="form-control" name="regPrioridad" id="regPrioridad" required>
                                            <option value="">Seleccione...</option>
                                            <option value="1">Critica (1 hr)</option>
                                            <option value="2">Urgente (4 hr)</option>
                                            <option value="3">Alto (2 dias)</option>
                                            <option value="4">Medio (1 semana)</option>
                                            <option value="5">Bajo (3 meses)</option>
                                        </select>
                                    </div>
                                </div>
                            </div>
                        </div>
                        <hr>
                        <label class="input-group-addon">Archivo(s)</label>
                        <input class="file-loading" id="imagen" type="file" multiple name="image[]">
                        <div id="errorBlock" class="help-block"></div> 
                    </div>
                    <div class="modal-footer">
                        <button type="reset" class="btn btn-secondary" data-dismiss="modal" onclick="resetear()">Cerrar</button>
                        <button type="submit" class="btn btn-primary" id="btnGuardar_">Guardar</button>
                    </div>
                </form>
            </div>
        </div>
    </div><!--Fin Modal -->     

</div>

PHP code

<?php
session_start();
$usuario = $_SESSION['u_usuario']['PK_idUsuario'];
//var_dump($usuario);

error_reporting(E_ALL);
ini_set('date.timezone','America/Mexico_City');
require_once('../conn/conexion.php');
require('../includes/funciones.php');
$page = isset($_GET['op'])?$_GET['op']:'';


#Seccion Agregar Ticket
if($page=='create'){
    if($_POST) {
        $validator = array('success' => false, 'messages' => array());

        #Obtener el Usuario que inició sesion para saber quién está manipulando los tickets.
        $usuarioCreado = $_SESSION['u_usuario']['PK_idUsuario'];            

        #Datos del formulario
        $regEshijo = $_POST["regEshijo"];

        #Si el ticket no es hijo la REFERENCIA será 0, de caso contrario tomará el valor del campo referencia.
        $regReferencia = $_POST["regReferencia"];
        if (empty($regReferencia)) {
            $regReferencia = 0;
        }else{
            $regReferencia = $_POST["regReferencia"];
        }       

        #Datos del formulario.
        $regCategoria = $_POST["regCategoria"];
        $regSubcategoria = $_POST["regSubcategoria"];
        $regTitulo = $_POST["regTema"];
        $regDescripcion = $_POST["regDescripcion"];
        $regTipo = $_POST["regTipo"];           
        $regTecnico = $_POST["regTecnico"];             
        $regStatus = $_POST["regStatus"];
        $regPrioridad = $_POST["regPrioridad"];
        $regCliente = $_POST["regCliente"]; 
        $regUbicacion = $_POST['regSucursal'];
        #Valores por default.
        $regAlerta = 1;
        $regEscalado = 1;
        $alta = 'ALTA';
        $atencion = 'ATENCION';
        $cliente = 'CLIENTE';

        $query = mysqli_query($con, "INSERT INTO ticket (FK_idUbicacion, FK_idSubcategoria, tituloTicket, descripcionTicket, statusTicket, prioridadTicket, alertaTicket, escaladoTicket, tipoTicket, esHijo, refTicket) VALUES  ('$regUbicacion','$regSubcategoria','$regTitulo','$regDescripcion','$regStatus','$regPrioridad','$regAlerta', '$regEscalado', '$regTipo', '$regEshijo' , '$regReferencia')");
        $idTick = mysqli_insert_id($con);

        #Dar de alta en la tabla ticket_usuario los datos del Cliente, del Técnico y quien creó el Ticket.
        $query1 = mysqli_query ($con, "INSERT INTO ticket_usuario(FK_idTicket, FK_idUsuario, status) VALUES ('$idTick', '$usuarioCreado', '$alta')");           
        $query2 = mysqli_query ($con, "INSERT INTO ticket_usuario(FK_idTicket, FK_idUsuario, status) VALUES ('$idTick', '$regTecnico', '$atencion')");
        $query3 = mysqli_query ($con, "INSERT INTO ticket_usuario(FK_idTicket, FK_idUsuario, status) VALUES ('$idTick', '$regCliente', '$cliente')");           


        #Crear las carpetas para los archivos, se agruparán por  CATEGORIA Y SUBCATEGORIA
        $sql = mysqli_query($con, "SELECT * FROM categoria WHERE PK_idCategoria ='".$regCategoria."'");
        $cat = mysqli_fetch_assoc($sql);
        $rutaCat = $cat['categoriaDesc'];
        $des = str_replace(" ","_",$rutaCat);

        $sql1 = mysqli_query($con, "SELECT * FROM subcategoria WHERE PK_idSubcategoria ='".$regSubcategoria."'");
        $subcat = mysqli_fetch_assoc($sql1);
        $rutaSubcat = $subcat['subcategoriaDesc'];
        $des1 = str_replace(" ","_",$rutaSubcat);

        #Ruta para los archivos
        $archivo = "../archivos/$des/$des1/";

        #Crear carpetas sino existen.
        if (!file_exists($archivo)) {
            mkdir($archivo, 0777, true);
        }

        #Cargar Imagenes
        if(isset($_FILES['image']['tmp_name'])){
        #Numero de archivos a cargar
            $num_files = count($_FILES['image']['tmp_name']);
            for($i=0; $i < $num_files;$i++)
            {
                #Ver si hay archivos para subir
                if(!is_uploaded_file($_FILES['image']['tmp_name'][$i]))
                {
                    #echo "No se encontraron archivos";
                }
                else
                {
                    #Copiar imagenes a la carpeta correspondiente de acuerdo a la marca
                    if(@copy($_FILES['image']['tmp_name'][$i],"$archivo".$_FILES['image']['name'][$i])){
                        $path = "".$_FILES['image']['name'][$i];
                        $query4= mysqli_query($con, "INSERT INTO archivoticket(FK_idTicket, archivoTicket) VALUES('$idTick', '$path')");                        
                    }
                    else
                    {
                        #echo "No se pudo subir el archivo";
                    }
                }
            }
        }

        #Si todos los datos se han insertado correctamente se muestra un mensaje de éxito, de caso contrario un alerta de error.            
        if($query === TRUE && $query1 === TRUE  && $query2 === TRUE && $query3 === TRUE) {
            $validator['success'] = true;
            $validator['messages'] = "Ticket creado correctamente";
        } else {
            $validator['success'] = false;
            $validator['messages'] = "Error al crear el ticket";
        }
        $con->close();
        echo json_encode($validator);
    }
}


else{

}

jQuery

$("#frmregistrarTicket").on("submit", function(e){
        //var parametros = $(this).serialize();
        $('#btnGuardar_').attr("disabled", true);
        e.preventDefault();
        var formData = new FormData(document.getElementById("frmregistrarTicket"));
        var ruta = "crudTickets.php?op=create";
        $.ajax({
            type: "POST",
            url: ruta,              
            data: formData,
            contentType: false,
            processData: false,             
            dataType : 'json',
            success: function(response)
            {
               if(response.success == true) {
                    // Recargar la tabla y limpiar los campos y mostrar mensaje de error
                    tblTicket.ajax.reload();
                    $("#frmregistrarTicket")[0].reset();
                    $("#registrarTicket").modal('hide');
                    swal({
                        title: "Éxito!",
                        text: "El ticket se ha creado correctamente!",
                        type: "success",
                        timer: 3000,
                        showConfirmButton: true  
                    });
                    //location.reload();


                    //Error 
                } else {
                    swal({
                        title: "Error!",
                        text: "No se pudo crear el ticket.!",
                        type: "error",
                        timer: 3000,
                        showConfirmButton: true  
                    });
                }
            }
        });         
    }); 
    
asked by Silvestre Silva 05.09.2017 в 16:50
source

0 answers