Código:
(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).header("Location: http://(direccion IP)/prueba.php",true,303);
(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"
![sonrisota](http://static.forosdelweb.com/fdwtheme/images/smilies/xD.png)
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">×</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-->