Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/06/2016, 11:03
milangue10
 
Fecha de Ingreso: agosto-2015
Ubicación: Colombilandia
Mensajes: 10
Antigüedad: 8 años, 9 meses
Puntos: 0
Información header 303 y proicesamiento previo de información

Muy buenos dias, tengo una serie de dudas e inquietudes sobre el uso de
Código:
header("Location: http://(direccion IP)/prueba.php",true,303);
(1)proceso la sesión y creo el cookie (son para el include('_mod_print_6.php'); al final, es una tabla con ventanas modales no interesa aqui).
(2)Carga cuatro funciones: mostrartitulo(); -- p02(); -- p03; -- reenviar(); luego de que las carga ahi si empieza el código que las utiliza, hace varias tonterias y luego viene un Switch que decide que funcion p02(); o p03(); usar, ya que p02(); es para dos cosas: (a)Registrar quien hizo esa tarea y (b)crear un archivo de texto con una base de datos que luego otro software lo toma e imprime algo de ahi. Y la funcion p03(); solo hace unicamente: Registrar quien hizo la tarea.
Luego tengo reenviar();solo crea el archivo pero NO registra la tarea.

Si se fijan tengo header(); en cada final de funcion y condicion, la idea es que la funcion procese TODA y al finalizar se redireccione a la misma pagina pero limpia de POST's o GET's (por eso uso el 303 en el header)! :) porque ese era el problema que tenia en un origen, ya que esta pagina es "multifuncion" cuando alguien enviaba algo por los formularios de el include quedaba en la "memoria"(post) de la pagina o en la URL (get), cuando alguien ejecutaba algo por la forma aveces no se enviaba porque se procesaba el get o post previo!

Todo eso lo resolví con header() ya que me permite limpiar la pagina al recargarla con solicitud 303 y dejarla sin ningun post o get ahi colgado!

LAS DUDAS:
Ya explicandoles todo eso.. tengo varias dudas:
(1) Aveces no se estan registrando en BD algunas tareas. Y tengo la duda con header(), ya que tengo entendido que header, talvez me equivoco, se ejecuta de inmediato, no importa si el resto de instrucciones ya se hayan ejecuado o no.
(2) Observen que eliminé los headers de p02(); para que aparezca una forma con un boton que envia por post un true que activa al regreso reenviar(); que ya explique su función, pero me pasa que aunque quite header() de la condicion de p02() que muestra ese boton, aun asi nose porque se ejecuta header(), porque se refresca sola y no me muestra el boton.

He de aclarar que las funciones y parametros que hacen que se ejecuten las funciones trabajan al 100%. Osea antes de usar header() si yo leia por segunda vez una etiqueta(osea se repetia un valor unico) se cumple en p02 el mostrar el boton "reenviar", pero ahora ya no lo hace aunque como ya dije, quite header() de la condicion que me muestra ese BOTON.

DISCULPEN DE ANTEMANO EL "PERIODICO"

Código PHP:
<!--código html5 que no interesa explicar aqui-->

<?php
function mostrartitulo($show_id_uni)
{
//no es importante para el caso
}

function 
leer_p02($show_id_uni)
{
  
/* MODULO FRAGMENTACION CODIGO */
  
$id6 = (substr($show_id_uni,-3,4));
  
$id6 intval($id6);
  
$show_id_uni_a = (substr($show_id_uni,2,12));
  
$show_id_short = (substr($show_id_uni_a,0,12));
  
$show_id_short_a = (substr($show_id_short,0,8)); //-->> Opcion 1
  
$año = (substr($show_id_short_a,0,4));
  
$mes = (substr($show_id_short_a,4,2));
  
$dia = (substr($show_id_short_a,6,2));
  
$time $dia.'-'.$mes.'-'.$año;
  
$show_id_short_b=(substr($show_id_short,-4,4)); //  <<--
  
include('_conexion.php');

  
$prohibicion pg_query("SELECT bol_plastificado_send FROM tab_cabeza_prod WHERE date_same = '".$time."' AND id_numerounico = ".$show_id_short_b."");
  
$prohibicionb pg_fetch_array($prohibicion);
  
if (
't' == $prohibicionb['bol_plastificado_send']) {
    
mostrartitulo("Ese código ya fué impreso");

    
//aqui código para reenviar
    
reenviar('f',0);
    echo 
'<button type="button" class="btn btn-primary" data-toggle="modal" data-target=".bs-example-modal-sm">¿Volver a enviar?</button>

    <div class="modal fade bs-example-modal-sm" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel">
      <div class="modal-dialog modal-sm">
        <div class="modal-content">
          <div class="modal-header">

            <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
            <h4 class="modal-title" id="myModalLabel">¿Está seguro de volver a enviar este código?</h4>

          </div>
          <div class="modal-body">

            <form class="form-horizontal" action="" method="post" name="leercode_2">
              <fieldset>
                <input type="hidden" name="bol" value="t">
                <input type="hidden" name="show_id_uni" value="'
.$show_id_uni.'">
                <input type="hidden" name="show_id_short" value="'
.$show_id_short.'">
                <button type="button" class="btn btn-default" data-dismiss="modal">No</button>
                <button type="submit" class="btn btn-primary" name="enviar">Sí, enviar</button>
              </fieldset>
            </form>

          </div>
        </div>
      </div>
    </div>'
;
  }else{
    
/* MÓDULO DE REGISTRO DE TAREAS */
    
$show_id_uni_prefix = (substr($show_id_uni,0,2)); 

    
$show_id_uni_a = ($show_id_uni_a.$show_id_uni_prefix); 
    
$consulta pg_query("SELECT fun_preupdater1('".$show_id_uni_a."',".$id6.")"); 
    
$mensaje pg_last_notice($conexion);
 
    
/* MÓDULO DE IMPRESION SEGUNDA ETIQUETA */
    
$consulta2 pg_query("SELECT fun_p02('".$show_id_short."')");
    
$receptor pg_last_notice($conexion);

    
$nombreFichero "p02.txt";
    
$fi fopen("p02/".$nombreFichero ,"a")
    or die(
"Problemas al crear el archivo");

    
fwrite($fi$receptor);
    
fwrite($fi, .PHP_EOL);
    
fclose($fi);
    
//echo 'leerp02 FUNCION else F prohibicion';
    //header("Location: http://10.10.200.11/leer_imprimir_6_v4.php",true,303);  
    //exit();
  
}
}

function 
leer_p03($show_id_uni)
{
  include(
'_conexion.php');
    
/* MÓDULO DE REGISTRO DE TAREAS */
  
$id6 = (substr($show_id_uni,-3,4));
  
$id6 intval($id6);
  
$show_id_uni_a = (substr($show_id_uni,2,12));
  
$show_id_uni_prefix = (substr($show_id_uni,0,2)); 
  
$show_id_uni_a = ($show_id_uni_a.$show_id_uni_prefix); 
  
$consulta pg_query("SELECT fun_preupdater1('".$show_id_uni_a."',".$id6.")"); 
  
$mensaje pg_last_notice($conexion);

  
header("Location: http://10.10.200.11/leer_imprimir_6_v4.php",true,303);  
  exit(); 
}

function 
reenviar($bol,$show_id_short)
{
  if (
't' == $bol) {
    include(
'_conexion.php');
    
/* MÓDULO DE IMPRESION SEGUNDA ETIQUETA */
    
$consulta2_alt pg_query("SELECT fun_p02('".$show_id_short."')");
    
$receptor_alt pg_last_notice($conexion);

    
$nombreFichero "p02.txt";
    
$fi fopen("p02/".$nombreFichero ,"a")
    or die(
"Problemas al crear el archivo");

    
fwrite($fi$receptor_alt);
    
fwrite($fi, .PHP_EOL);
    
fclose($fi);
    
mostrartitulo("Se reenvió el código");

    
header("Location: http://10.10.200.11/leer_imprimir_6_v4.php",true,303);  
    exit(); 
  }elseif (
'f' == $bol OR empty($bol)) {
    
header("Location: http://10.10.200.11/leer_imprimir_6_v4.php",true,303);  
    exit(); 
  }
}
  
echo 
'<form action="" method="post" name="leercode">
<fieldset><center>
  <legend><h2 style="font-family:courier;"><b>REGISTRAR TAREAS & GENERAR ETIQUETA PLASTIFICADO:</b></h2></legend>
  <input autofocus name="id_uni" type="text" id="exampleInputEmail2" style="text-align:left; width:600px; height:75px; font-size:48px; font-family:courier;">
</center></fieldset>
</form>'
;

  if (!empty(
$_POST['id_uni'])) {
    
// -> CODIGO QUE ELIGE LA FUNCION CORRECTA <-

    
$show_id_uni $_POST['id_uni'];
    
$show_id_uni_a = (substr($show_id_uni,2,12));
    
$show_id_uni_prefix = (substr($show_id_uni,0,2));

    
mostrartitulo($show_id_uni);

    
$siete '07';
    
$seis '06';
    
$cinco '05';
    
$cuatro '04';
    
$tres '03';
    
$dos '02';

    if (empty(
$show_id_uni)) {
      
mostrartitulo("Lea el código");
    }else{
        switch (
$show_id_uni_prefix) {
          case 
$siete//plastificado
              
mostrartitulo("Tarea de plastificado/Imprimiendo");
              
leer_p02($show_id_uni);
            break;
          case 
$seis//plastificado
              
mostrartitulo("Tarea de plastificado/Imprimiendo");
              
leer_p02($show_id_uni);
            break;
          case 
$cinco//cerrado
              
leer_p03($show_id_uni);
              
mostrartitulo("Tarea NO es de plastificado/No imprimir");
            break;
          case 
$cuatro//chuzado 
              
leer_p03($show_id_uni);
              
mostrartitulo("Tarea NO es de plastificado/No imprimir");
            break;
          case 
$tres//chuzado
              
leer_p03($show_id_uni);
              
mostrartitulo("Tarea NO es de plastificado/No imprimir");
            break;
          case 
$dos//costura
              
leer_p03($show_id_uni);
              
mostrartitulo("Tarea NO es de plastificado/No imprimir");
            break;
        }
    }
  }elseif (!empty(
$_POST['bol'])) {
      
$show_id_short $_POST['show_id_short'];
      
reenviar($_POST['bol'],$show_id_short);
  }

include(
'_mod_print_6.php');
?>

<!--mas código html5-->