Foros del Web » Programando para Internet » PHP »

REGISTER_GLOBALS_OFF y session que no funciona

Estas en el tema de REGISTER_GLOBALS_OFF y session que no funciona en el foro de PHP en Foros del Web. Bueno, re planteo mi tema, es un calendario que en localhost y en otro server que lo usaba funciona perfectamente pero en el que estoy ...
  #1 (permalink)  
Antiguo 30/05/2008, 01:12
 
Fecha de Ingreso: septiembre-2006
Mensajes: 141
Antigüedad: 17 años, 7 meses
Puntos: 1
REGISTER_GLOBALS_OFF y session que no funciona

Bueno, re planteo mi tema, es un calendario que en localhost y en otro server que lo usaba funciona perfectamente pero en el que estoy trabajando ahora no funciona.
Aparentemente es por que las REGISTER_GLOBALS está OFF, bien.
¿Cómo puedo modificar la manera de manejar la session sin cambiar el calendario y hacerlo funcionar? ¿Se puede lograr?

Código PHP:
<?
session_start
();
$g=split("-",$_SESSION['fecha']);
if(isset(
$prm) and $prm 0){
$m=$prm+$chm;}else{
$m$g[1]; ;}
if(isset(
$dia)){
$d=$dia;
}
else{

$d$g[2];
}    
// Finds today's date
$y$g[0]; 

$agenda_hay=array();


$fecha=$y."-".$m."-".$d;
Para hacer el post menos aburrido posteo solo el arranque.
Gracias por la ayuda!
  #2 (permalink)  
Antiguo 30/05/2008, 05:00
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Respuesta: REGISTER_GLOBALS_OFF y session que no funciona

Pues en la parte de código que muestras, no hay errores... no al menos con la sesión; utilizas correctamente $_SESSION

Ahora, si ese es el inicio de tu script, ¿dónde se definen variables como $prm $chm? (que sí, por eso validas, pero es que según eso no hay posibilidad de una definición previa).

Si estas ocupando esas variables como globales (definidas con register_globals()), eso es lo que ya esta obsoleto. Debes recojerlas con la variable superglobal correspondiente. Lee por acá: www.php.net/security.globals

Por favor utiliza <?php en lugar de <? ... igual y es ese tu error, no especificaste cuál era :-/.

Saluton
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 30/05/2008, 07:40
 
Fecha de Ingreso: septiembre-2006
Mensajes: 141
Antigüedad: 17 años, 7 meses
Puntos: 1
Respuesta: REGISTER_GLOBALS_OFF y session que no funciona

El error es que este script en el servidor que estoy no funciona, en mi maquina y el server anterior si. Precisamente donde está fallando no logro entender.

$prm y $chm son el mes y el día en la navegación del calendario, no sé lo define pero funcionaba bien estando así. Me explico mejor, te muestro como funcionan esas variables. Al hacer click por ejemplo en el 22 del mes que muestra (Mayo del 2008) la direeción que me lleva es esta http://localhost/../calendario.php?prm=05&dia=22, lo cual está perfecto.

Cuando lo intento usar en el servidor me aparece en Diciembre de 1969 y $prm y $chm dejan de funcionar.

Este es el calendario completo:

Código PHP:
<?php
session_start
();
$g=split("-",$_SESSION['fecha']);
if(isset(
$prm) and $prm 0){
$m=$prm+$chm;}else{
$m$g[1]; ;}
if(isset(
$dia)){
$d=$dia;
}
else{

$d$g[2]; 
}    
// Finds today's date
$y$g[0]; 

$agenda_hay=array();


$fecha=$y."-".$m."-".$d;




$no_of_days date('t',mktime(0,0,0,$m,$d,$y)); // This is to calculate number of days in a month

$mn=date('M',mktime(0,0,0,$m,$d,$y)); // Month is calculated to display at the top of the calendar

$yn=date('Y',mktime(0,0,0,$m,$d,$y)); // Year is calculated to display at the top of the calendar

$jdate('w',mktime(0,0,0,$m,1,$y)); // This will calculate the week day of the first day of the month

$dia_semana_date('D',mktime(0,0,0,$m,$d,$y));




$primer_dia=$y."-".$m."-1";
$ultimo_dia=$y."-".$m."-".$no_of_days;



for(
$k=1$k<=$j$k++){ // Adjustment of date starting
$adj .="<td>&nbsp;</td>";
}






switch (
$mn) {
case 
"Jan":
$mn="Enero";
break;
case 
"Febrero":
$mn="Feb";
break;
case 
"Mar":
$mn="Marzp";
break;
case 
"Apr":
$mn="Abril";
break;
case 
"May":
$mn="Mayo";
break;
case 
"Jun":
$mn="Junio";
break;
case 
"Jul":
$mn="Julio";
break;
case 
"Aug":
$mn="Agosto";
break;
case 
"Sep":
$mn="Setiembre";
break;
case 
"Oct":
$mn="Octubre";
break;
case 
"Nov":
$mn="Noviembre";
break;
case 
"Dec":
$mn="Diciembre";
break;
}




/// Starting of top line showing name of the days of the week
?>
<html><head><title>Seleccione la Fecha de la Edición</title>
<link rel="stylesheet" type="text/css" href="links.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
<!--
a:link {
    color: #333333;
    text-decoration: none;
}
a:visited {
    text-decoration: none;
    color: #333333;
}
a:hover {
    text-decoration: underline;
}
a:active {
    text-decoration: none;
    color: #333333;
}
-->
</style>
<script>
function ir(){
window.opener.location="archivo.php";
window.self.close();

}

</script>

</head><body>
<table border="0" align="center" width="262" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" id="AutoNumber1">
<tr>
            <td colspan="3" height="31" valign="bottom" bgcolor="#6080BB">
                <p align="center">
                  <img src="logo2extras.jpg" width="260" height="40" border="0"></a>
          </p>            </td>
  </tr></table>
<?
echo " <table border='0' bgcolor='#DDDDDD' bordercolor='#999999' cellspacing='0' cellpadding='1' align=center>

<tr><td>"
;

echo 
"<table cellspacing='0' cellpadding='1' align=center width='260' border='0' class='listadolinks'><td align=center bgcolor='#C1CEE8'><font size='2' face='Verdana'> <a href='calendario.php?prm=$m&chm=-1'> <</a> </td><td colspan=5 align=center bgcolor='#C1CEE8'><font size='2' face='Tahoma'>$mn $yn </td><td align=center bgcolor='#C1CEE8'><font size='2' face='Verdana'> <a href='calendario.php?prm=$m&chm=1'>> </a> </td></tr><tr>";

echo 
"<td align='center'><font size='1' face='Verdana'><b>Dom</b></font></td><td align='center'><font size='1' face='Verdana'><b>Lun</b></font></td><td align='center'><font size='1' face='Verdana'><b>Mar</b></font></td><td align='center'><font size='1' face='Verdana'><b>Mié</b></font></td><td align='center'><font size='1' face='Verdana'><b>Jue</b></font></td><td align='center'><font size='1' face='Verdana'><b>Vie</b></font></td><td align='center'><font size='1' face='Verdana'><b>Sáb</b></font></td></tr><tr>";

////// End of the top line showing name of the days of the week//////////

//////// Starting of the days//////////
for($i=1;$i<=$no_of_days;$i++){

    
$ii="0".$i;
    if (
$i!=$d)        
        
            echo 
$adj."<td valign=top align=center><a class=\"linkCalendario\" href=\"calendario.php?prm=$m&dia=$i\">$i</a><br>"
        
    else
echo 
$adj."<td valign=top bgcolor=#FFFFFF align=center class=\"tabladerecha\"><a class=\"linkCalendario\" href=\"calendario.php?prm=$m&dia=$d\">$i</a><br>"
echo 
" </b></td>";
$adj='';
$j ++;
if(
$j==7){echo "</tr><tr>";
$j=0;}

}

echo 
"<tr><td colspan=7 align=center></td></tr>"
echo 
"</tr></table></td></tr></table>";
echo 
"<center><font face='Verdana' size='2'></center></font>";
$fecha="$y-$m-$d";
$_SESSION['fecha']=$fecha;
?>
<table border="0" cellpadding="1" cellspacing="0" class="tabladerecha" align="center" width="262px">
 <tr> 
          <td width="363" bgcolor="#DDDDDD" class="txt-noticias"><div id="infoFecha">FECHA SELECCIONADA:

            <? $g=split("-",$_SESSION['fecha'])?> 

    <? echo $g[2]."/".$g[1]."/".$g[0]?> <a href="#" onClick="ir()">VER EDICI&Oacute;N </a></div></td>
  </tr>
  <td width="363" bgcolor="#DDDDDD" class="txt-noticias"><div id="infoFecha">* Para volver a la edici&oacute;n actual haga click en PORTADA, en el MEN&Uacute; DE LA IZQUIERDA </div></td>
</table>
  #4 (permalink)  
Antiguo 30/05/2008, 12:12
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Respuesta: REGISTER_GLOBALS_OFF y session que no funciona

Cita:
Iniciado por elbastardo Ver Mensaje
[...]
Cuando lo intento usar en el servidor me aparece en Diciembre de 1969 y $prm y $chm dejan de funcionar.
[...]
Pues, como dije, no hay error en las sesiones sino en cómo intentas leer esas variables. Me cito: "Debes recojerlas con la variable superglobal correspondiente. Lee por acá: www.php.net/security.globals"

Para tu caso debes utilizar $_GET, como, por ejemplo:
Código PHP:
$prm $_GET['prm']; // podrías hacerlo para no sustituir todas las variables
if(isset($prm) and $prm 0){ 
Igual podrías leer por acá: www.php.net/variables.external

Suerte
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:38.