RE:pierdo variable al enviar formulario
siendo asi copio el codigo completo, es bastante largo:
<?php
//session_start();
//$_SESSION['mes']=$_REQUEST['$mes'];
?>
<html><head><script type='text/javascript'>
function enviar(){
document.forms[0].submit();
}
</script>
</head>
<body style="background-image:url('botones/fondob.png');background-position:left left;background-repeat:no-repeat; background-color: #0099ff" ><div style="margin:auto; width:980px"><center>
<pre>
</pre>
<font face="Verdana" size="5" color="white">Programacion de zonas</font>
<table border="0" cellspacing="17"><tr><td>
<?php
/**********conexion a la base de datos **************************/
/*** conectar a la base datos ***/
$dbh = new PDO("sqlite:lampara.db");
/*** confirmar la conexion ***/
$prev='botones/izqu50x50.png';
$next='botones/derecha50x50.png';
//obtengo la fecha
$fecha=date("L-D-d-m-Y-N H");
//obtengo el nombre del dia de la fecha (lun, martes)
$dia=date("D");
//obtengo el numero de la fecha (12, 15..)
$numero=date("d");
//obtengo el numero del nombre del dia de la semana( viernes=5, sabado=6)
$dsem=date("N");
//Obtengo el mes$Encendido=$_POST['Encendido'];
$Apagado=$_POST['Apagado'];
$mes=date("m");
//busco si el año es bisiesto o no
$bisiesto=date("L");
//Obtengo el Año
$ano=date("Y");
switch ($mes){
case 1:
$mesA="Enero";
$termina=31;
break;
case 2:
$mesA="Febrero";
if($bisiesto==0)
{$termina=28;}
else{
$termina=29;}
break;
case 3:
$mesA="Marzo";
$termina=31;
break;
case 4:
$mesA="Abril";
$termina=30;
break;
case 5:
$mesA="Mayo";
$termina=31;
break;
case 6:
$mesA="Junio";
$termina=30;
break;
case 7:
$mesA="Julio";
$termina=31;
break;
case 8:
$mesA="Agosto";
$termina=31;
break;
case 9:
$mesA="Septiembre";
$termina=30;
break;
case 10:
$mesA="Octubre";
$termina=31;
break;
case 11:
$mesA="Noviembre";
$termina=30;
break;
case 12:
$mesA="Diciembre";
$termina=31;
break;
}
$primero=$numero-1;
$primero=$primero-$dsem;
while($primero>=1)
{
for($startd=1; $startd<8; $startd++)
{
$primero=$primero-1;
}
}
$primero=$primero*-1;
echo "<p>";
$fin=$numero-$dsem+1;
while($fin<=$termina)
{
$fin=$fin+1;
$diat=$diat+1;
}
while ($diat>=1)
{
$diat=$diat-1;
$fina=$fina+1;
if($fina==8)
{$fina=0;}
}
$fina=$fina+1;
if($fina==7)
$comienza=1;
else $comienza=$fina+1;
echo "<p>";
$inic=1;
$start=1;
//inicio la tabla del calendario
echo "<table border='1' cellpadding='5' cellspacing='5' height='180' width='250'>";
echo"<tr><td colspan='7'>";
?>
<form method="GET" action="yo.php">
<input type= "image" img src="<?php echo $prev ?>" name="ejemplo2" onclick="enviar()" />
<input type="hidden" name="prev" value="<?php echo $prev ?>" /> <input type= "image" img src="<?php echo $next ?>" name="ejemplo2" onclick="enviar()" /> <input type="hidden" name="next" value="<?php echo $next ?>" />
</form>
</td></tr>
<?
if($_GET['next']){
$primero=$comienza;
$mes=$mes+1;
$meshmm=$mes;
if($mes==13)
$mes=1;
echo $mes;
switch ($mes){
case 1:
$mesA="Enero";
$termina=31;
break;
case 2:
$mesA="Febrero";
if($bisiesto==0)
{$termina=28;}
else{
$termina=29;}
break;
case 3:
$mesA="Marzo";
$termina=31;
break;
case 4:
$mesA="Abril";
$termina=30;
break;
case 5:
$mesA="Mayo";
$termina=31;
break;
case 6:
$mesA="Junio";
$termina=30;
break;
case 7:
$mesA="Julio";
$termina=31;
break;
case 8:
$mesA="Agosto";
$termina=31;
break;
case 9:
$mesA="Septiembre";
$termina=30;
break;
case 10:
$mesA="Octubre";
$termina=31;
break;
case 11:
$mesA="Noviembre";
$termina=30;
break;
case 12:
$mesA="Diciembre";
$termina=31;
break;
}
}
echo "<tr><td><font color='white' face='verdana'> Lun</font></td>";
echo "<td><font color='white' face='verdana'> Mar</font></td>";
echo "<td><font color='white' face='verdana'> Mier</font></td>";
echo "<td><font color='white' face='verdana'> Juev</font></td>";
echo "<td><font color='white' face='verdana'> Vier</font></td>";
echo "<td><font color='white' face='verdana'> Sab</font></td>";
echo "<td><font color='white' face='verdana'> Dom</font></td></tr>";
?>
<FORM METHOD="post" name="fvalida" ACTION="yo.php">
<?
for ($semana=0; $semana<6; $semana++)
{
echo "<tr>";
for ($dias=1; $dias<8; $dias++)
{
if ($inic < $primero || $start>=$termina+1)
echo "<td><center> </td>";
else{
//como son varios valores los q necesitan se grabados utilizo el parentesis si el checkbox es seleccionado
//toma el valor de start, posteriormente imprimo el valor
echo "<td><font face='verdana' color='white' size='3'>
<center><pre><input type='checkbox' name='seleccion[]' value='".$start."'> $start</pre></font></td>";
$start = $start+1;
}
$inic = $inic+1;
}
echo "</tr>";
}
echo "<tr><td colspan='5'><center>
<div align='center'><font color='white' face='verdana'>$mesA $ano</font></div></td>";
echo"</tr>";
//aca termina la tabla del calendario
?>
</table>
</td><td>
<FORM name="fvalida" METHOD="post" ACTION="yo.php">
<?
?><hr><p>
<font color='white' face='verdana'>Seleccione las zonas a programar:</font>
<p><table border="0" cellspacing="7"><tr><td>
<input type='checkbox' name='zona1' value='1'><font color='white' face='verdana'>Zona 1</font></td><td>
<input type='checkbox' name='zona2' value='2'><font color='white' face='verdana'>Zona 2</font></td></tr><tr><td>
<input type='checkbox' name='zona3' value='3'><font color='white' face='verdana'>Zona 3</font></td><td>
<input type='checkbox' name='zona4' value='4'><font color='white' face='verdana'>Zona 4</font></td></tr><tr><td>
<input type='checkbox' name='zona5' value='5'><font color='white' face='verdana'>Zona 5</font></td><td>
<input type='checkbox' name='zona6' value='6'><font color='white' face='verdana'>Zona 6</font></td></tr>
<p></font>
</table>
<hr>
<p><font color='white' face='verdana'>
Digite la hora de encendido:<p>
<input type="text" maxlength="10" size="2" name="onhora"> - <input type="text" maxlength="10" size="2" name="onmin">
<p>
Digite la hora de Apagado:<p>
<input type="text" maxlength="10" size="2" name="offhora"> - <input type="text" maxlength="10" size="2" name="offmin">
<p>
<hr>
<pre> <font size=2>la horas deben ser escritas con formato <br> de hora militar ej: 13:30</font></pre>
<p>
<pre> <input name=Guardar value="Guardar" type="submit" onClick="valida_envia()"></pre>
</form>
<?php
if (isset($_REQUEST['zona1']))
{
$a=1;
}
if (isset($_REQUEST['zona2']))
{
$b=2;
}
if (isset($_REQUEST['zona3']))
{
$c=4;
}
if (isset($_REQUEST['zona4']))
{
$d=8;
}
if (isset($_REQUEST['zona5']))
{
$e=16;
}
if (isset($_REQUEST['zona6']))
{
$f=32;
}
$total=$a+$b+$c+$d+$e+$f;
$offhora=$_POST['offhora'];
$offmin=$_POST['offmin'];
$puntos= ":";
$Apagado=$offhora .$puntos . $offmin;
$onhora=$_POST['onhora'];
$onmin=$_POST['onmin'];
$Encendido=$onhora .$puntos . $onmin;
$cuantos=count($totaln);
$totaln= $_POST['seleccion'];
echo "Miro aver si se perdio";
echo $meshmm;
if($_POST['Guardar'])
{
//$_SESSION['mes']=$_REQUEST['mes'];
echo "<br><br>";
echo "La clave recuperada de la variable de sesión:".$_SESSION['mes'];
$error=0;
if($total==0){
echo "seleccione las zonas a programar<br>";
$error=$error+1;}
if ($onhora==""||$onmin=="" ){
echo "complete los campos con q se va Encender <br>";
$error=$error+1;}
if ($offhora==""||$offmin=="" ){
echo "complete los campos con q se va Apagar <br>";
$error=$error+1;}
if ($onhora>24 || $offhora>24){
echo "digite correctamente los valores <br>";
$error=$error+1;
}
if($onmin>60 || $offmin>60){
echo "digite correctamente los valores m <br>";
$error=$error+1;
}
if ($offhora<$onhora){
if ($offmin<$onmin){
echo "Recuerde q el Formato es de hora militar <br>";
$error=$error+1;}
}
if ($error==0)
{
echo "<script type='text/javascript'>
alert('Ha ingresado correctamente los datos.')
</script>";
echo "ha digitado los campos correctamente <br>";
foreach($totaln as $row)
{
/*$sql11 ="INSERT INTO programacion(ano, mes, dia,horaE, horaA, dato,estado) VALUES('$ano','$mes','$row','$Encendido','$Apagado','$total',1)";
$dbh->query($sql11);*/
echo "on";
echo $Encendido;
echo "off";
echo $Apagado;
echo "dias";
echo $row;
echo "zonas";
echo $total;
echo "mes";
echo $mes;
echo "ano";
echo $ano;
echo "<p>";
}
}
echo $error;
}
?>
</form>
</td></tr><tr><td>
<div align="left">
<a href="lampara.php" target=_self><img src="botones/prev.png" border="0"></a></div></td></tr>
</table>
</div>
</body>
</html>