Esto me tiene muy complicado, no logro encontrar la falla.
Tengo que hacer un fotolog, todo iba bien en el desarrollo hasta que una seccion me saca de la sesion por una razon que no entiendo. Trabajo con Firefox pero lo probe en IE y me da el mismo efecto.
Otras secciones tienen la misma estructura y no causan problemas.
Cuando entro a la cuenta de usuario doy clic en el link de esa seccion, y se carga bien.. pero cuando recargo la pagina o vuelvo a hacer clic en el mismo link (lo cual deberia dar el mismo resultado) me saca de la sesion.
Es como si algo en la pagina dejara un rastro para que se salga de la sesion.
No entiendo. Si entro a la sesion, y hago click en otro link similar y luego recargo, ningun problema.
Como veran lo que se ejecuta es la ultima instruccion. Si hubiera un problema de llaves me daria error y no es asi.
Agradeceré cualquier aporte. Ya muchas horas dandole vueltas a esto.
Aqui va la pagina
Código PHP:
<?
if ($_SESSION[AUT] && ($_SESSION[USER] == $CUENTA_USER)) {
$S_datos = "SELECT * FROM tab_users WHERE id = '$ID_USER'";
$R_datos = mysql_query($S_datos);
if (mysql_num_rows($R_datos) > 0) {
$USER = mysql_fetch_array($R_datos);
}
$HORA = date("H:i:s", time() - (60*60));
if (date("H") == "00") $FECHA = date("Y-m-d", time() - (24*60*60));
else $FECHA = date("Y-m-d");
$mensaje = "";
?>
<div style="font-size:12px; color:#000000">
<div style="font-size:18px; font-weight:bold; margin-bottom:10px">Cuenta de usuario</div>
<fieldset>
<legend>Configuración básica</legend>
<form name="form_user" method="post" action="index.php?pag=cuenta">
<table cellspacing="0" cellpadding="0" border="0">
<tr style="vertical-align:top">
<td>Nombre de usuario:</td>
<td style="font-weight:bold"><?=$CUENTA_USER?></td>
</tr>
<tr style="vertical-align:top">
<td>Nueva contraseña:</td>
<td><input name="n_pass" type="password" value="">
<br>
<br>
</td>
</tr>
<tr style="vertical-align:top">
<td>Repetir nueva contraseña:</td>
<td><input name="n_pass2" type="password" value=""><br>
<br>
</td>
</tr>
<tr style="vertical-align:top">
<td>Dirección de email:</td>
<td><input name="email" type="text" value=""><br>
<br>
</td>
</tr>
<tr style="vertical-align:top">
<td>Escribe tu contraseña actual para actualizar:</td>
<td><input name="pass" type="password" value="">
<br>
<br>
</td>
</tr>
<tr style="vertical-align:top">
<td colspan="2"><button type="submit">Actualizar</button></td>
</tr>
</table>
</form>
</fieldset>
<fieldset>
<legend>Perfil de usuario</legend>
<form name="form_perfil" method="post" action="index.php?pag=cuenta">
<table cellspacing="0" cellpadding="0" border="0">
<tr style="vertical-align:top">
<td>Nombre de la mascota:</td>
<td style="font-weight:bold"><input name="nombre_mascota" type="text" value="<?=$USER[nombre_mascota]?>"></td>
</tr>
<tr>
<td>Sexo de la mascota:</td>
<td style="font-weight:bold"><input name="sexo_mascota" type="radio" value="m" id="sexo_m"> <label for="sexo_m">Macho</label> <input name="sexo_mascota" type="radio" value="h" id="sexo_h"> <label for="sexo_h">Hembra</label></td>
</tr>
<tr style="vertical-align:top">
<td>Propietario:</td>
<td><input name="nombre_propietario" type="text" value="<?=$USER[nombre_propietario]?>">
<br>
<br></td>
</tr>
<tr style="vertical-align:top">
<td>Nombre(s):</td>
<td><select name="dia_mascota">
<option value=""> </option>
<?
for ($i = 1; $i <= 31; $i++) {
if ($i < 10) $i = "0".$i;
else $i = $i;
print "<option value=\"$i\"";
if ($i == $USER[dia_mascota]) print " selected=\"selected\"";
print ">$i</option>\n";
}
?>
</select>
/
<select name="mes_mascota">
<option value=""> </option>
<?
$meses = array(1=>"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre");
while(list($codigo, $mes) = each($meses)) {
if ($codigo < 10) $codigo = "0".$codigo;
else $codigo = $codigo;
print "<option value=\"$codigo\"";
if ($codigo == $USER[mes_mascota]) print " selected=\"selected\"";
print ">$mes</option>\n";
}
?>
</select>
/
<select name="ano_mascota">
<option value=""> </option>
<?
$ano_actual = date("Y");
$ano_minimo = $ano_actual - 40;
$dif = $ano_actual - $ano_minimo;
$j = 0;
for ($i = $ano_minimo; $i <= $ano_actual; $i++) {
$ano[$j] = $i;
$j++;
}
$ano2 = array_reverse($ano);
foreach($ano2 as $valor) {
print "<option value=\"$valor\"";
if ($valor == $USER[ano_mascota]) print " selected=\"selected\"";
print ">$valor</option>\n";
}
?>
</select>
<br>
<br>
</td>
</tr>
<tr style="vertical-align:top">
<td>Apellido paterno:</td>
<td><br>
<br></td>
</tr>
<tr style="vertical-align:top">
<td>Apellido materno:</td>
<td><input name="email" type="text" value=""><br>
<br></td>
</tr>
<tr style="vertical-align:top">
<td>Escribe tu contraseña actual para actualizar:</td>
<td><input name="pass" type="password" value="">
<br>
<br></td>
</tr>
<tr style="vertical-align:top">
<td colspan="2"><button type="submit">Actualizar</button></td>
</tr>
</table>
</form>
</fieldset>
</div>
<?
}
else {
print JSredir("index.php");
}
?>
Código PHP:
function JSredir($url, $algo="") {
$html = "<script type=\"text/javascript\"> location.href='$url';";
if ($algo != "") $html .= " $algo";
$html .= "</script>";
if ($html != "") return $html;
}
Saludos