Foros del Web » Programando para Internet » PHP »

Añadir tiempo de caducidad a la Sesion

Estas en el tema de Añadir tiempo de caducidad a la Sesion en el foro de PHP en Foros del Web. hola aqui tengo el codigo que hice para que los visitantes solo puedan sumar+1 el contador de visitas mediante Cookies... pero yo lo quiero en ...
  #1 (permalink)  
Antiguo 10/07/2003, 00:59
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
Añadir tiempo de caducidad a la Sesion

hola aqui tengo el codigo que hice para que los visitantes solo puedan sumar+1 el contador de visitas mediante Cookies...

pero yo lo quiero en sessiones.... y siempre que lo hago se me estropea, no se pq... bueno si... aun no se manejar bien lo de las sessiones... alguien me puede ayudar a convertir este codigo a sessiones....

Código PHP:
<?php
ob_start
(); //Iniciamos contador de datos descargados
echo <<< HTML
<html>
<body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0">
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%">
<tr valign="center" align="center">
<td>
HTML;
if (
$_GET['accion']=="votar"){
require (
"aut_config.inc.php");
$id_mod_nivel$_GET['id'];
$usuario_consulta mysql_query("SELECT $selecttbl FROM $sql_tabla WHERE id=$id_mod_nivel") or die("$error6");
while(
$resultados mysql_fetch_array($usuario_consulta)) {
$contador "$resultados[visitas]";
$renombrecookie="$resultados[id]_visitatop";
$gcc_cookie_name  $renombrecookie;// noombre de la cookie
$gcc_cookie_value "shadowtopvisitavalor";// valor del tiempo de duracion
$gcc_alt 'alt=""';
if(isset(
$_COOKIE["$gcc_cookie_name"]) && $_COOKIE["$gcc_cookie_name"] == "$gcc_cookie_value")
{
}
else
{
setcookie($gcc_cookie_name$gcc_cookie_valuetime()+$gcc_cookie_life"");
$contador ++;
mysql_query("UPDATE $sql_tabla SET visitas='$contador' WHERE id='$id'") or die(mysql_error());
}
$nweb=$_GET['id'];
$infowebvotos"$resultados[votos]";
$infowebvisitas"$resultados[visitas]";
echo <<< HTML
<table width=97 border=0 cellspacing=0 cellpadding=0><a href="cuenta.voto.php?accion=votar&id=$nweb" target=_blank>
    <tr height=76>
        <td align=center valign="bottom" bgcolor=#1e1e43 width=97 height=76 background="images/icono.votar.jpg"><font size=1 color=white face=Verdana><b>SHADOW TOP<br>
            <br><br><br><br>Dame Tu Voto</b></font></td>
    </tr>
    <tr height=16>
        <td align=center valign="middle" bgcolor=#1e1e43 width=97 height=16><font size=1 color=White face=Verdana><b>VISITAS: $infowebvisitas</b></td>
    </tr>
    <tr height=3>
        <td bgcolor=white width=97 height=1></td>
    </tr>
</table>
HTML;
}
mysql_free_result($usuario_consulta);
mysql_close();
}
echo <<< HTML
</td></tr></table></body></html>
HTML;
?>
__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 10/07/2003 a las 23:29
  #2 (permalink)  
Antiguo 10/07/2003, 02:48
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Bueno, antes de cambiar esto a sesiones necesitas reestructurarlo un poco...

Antes de asignar un valor a una variable de sesión, NO PUEDE haber salidas al navegador (html, echo, print, etc), por lo tanto debes cambiar tu codigo a que PRIMERO haga las comprobaciones y despues comience a arrojar html.

Una vez que consigas eso (que es muy sencillo, viendo tu codigo), migrar de cookies a sesiones sera solo cuestion de cambiar un par de lineas...

__________________
Manoloweb
  #3 (permalink)  
Antiguo 10/07/2003, 07:28
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
umm, manolo... hazme el favor... que lo he intendado 40 veces... y estoy cegado.. me parece que me equivoco, cuando pongo arriba el php y abajo el html... no me sale...

lo he dejado asi.. le he quitado el html del principio y ahora...??


Código PHP:
if ($_GET['accion']=="votar"){
require (
"aut_config.inc.php");
$id_mod_nivel$_GET['id'];
$usuario_consulta mysql_query("SELECT $selecttbl FROM $sql_tabla WHERE id=$id_mod_nivel") or die("$error6");
while(
$resultados mysql_fetch_array($usuario_consulta)) {
$contador "$resultados[visitas]";
$renombrecookie="$resultados[id]_visitatop";
$gcc_cookie_name  $renombrecookie;// noombre de la cookie
$gcc_cookie_value "shadowtopvisitavalor";// valor del tiempo de duracion
$gcc_alt 'alt=""';
if(isset(
$_COOKIE["$gcc_cookie_name"]) && $_COOKIE["$gcc_cookie_name"] == "$gcc_cookie_value")
{
}
else
{
setcookie($gcc_cookie_name$gcc_cookie_valuetime()+$gcc_cookie_life"");
$contador ++;
mysql_query("UPDATE $sql_tabla SET visitas='$contador' WHERE id='$id'") or die(mysql_error());
}
$nweb=$_GET['id'];
$infowebvotos"$resultados[votos]";
$infowebvisitas"$resultados[visitas]";
echo <<< HTML
<table width=97 border=0 cellspacing=0 cellpadding=0><a href="cuenta.voto.php?accion=votar&id=$nweb" target=_blank>
    <tr height=76>
        <td align=center valign="bottom" bgcolor=#1e1e43 width=97 height=76 background="images/icono.votar.jpg"><font size=1 color=white face=Verdana><b>SHADOW TOP<br>
            <br><br><br><br>Dame Tu Voto</b></font></td>
    </tr>
    <tr height=16>
        <td align=center valign="middle" bgcolor=#1e1e43 width=97 height=16><font size=1 color=White face=Verdana><b>VISITAS: $infowebvisitas</b></td>
    </tr>
    <tr height=3>
        <td bgcolor=white width=97 height=1></td>
    </tr>
</table>
HTML;
}
mysql_free_result($usuario_consulta);
mysql_close();
}
echo <<< HTML
</td></tr></table></body></html>
HTML;
?> 
__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 10/07/2003 a las 07:37
  #4 (permalink)  
Antiguo 10/07/2003, 15:03
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
.
__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 10/07/2003 a las 23:28
  #5 (permalink)  
Antiguo 10/07/2003, 23:29
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
Pregunta ??

hola ya tengo hecho el codigo en Sessiones... pero ahora otra pregunta... como haceis para que añada la ip y la compare con un tiempo en segundos predeterminado?...., para que no sume+1 cada 24 horas...

Código PHP:
<?php
session_start
();
include (
"aut_config.inc.php");
if (!
session_is_registered("contadorglob")){
    
mysql_query("UPDATE contador SET datos=(datos + 1) WHERE id=1");
session_register("contadorglob");
}
?>
__________________
3w.valenciadjs.com
3w.laislatv.com
  #6 (permalink)  
Antiguo 11/07/2003, 00:02
Avatar de Manoloweb  
Fecha de Ingreso: enero-2002
Ubicación: Monterrey
Mensajes: 2.454
Antigüedad: 15 años, 10 meses
Puntos: 5
Bueno, para hacer eso vas a tener que apoyarte con MySQL o algun sistema de archivos, pues las variables de sesión son destruidas al cerrar el navegador. Por ejemplo creas una tabla así...

IP | FechaHora

La lógica sería mas o menos así...

1.- Compruebas en la BD si existe un registro para esa IP en ese día
2.- Si NO existe, sumas al contador y marcas un registro en la BD para esa IP con la hora del registro
3.-Si SI existe, omites el incremento al contador

...

Mas o menos...

__________________
Manoloweb
  #7 (permalink)  
Antiguo 11/07/2003, 01:20
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
gracias manolo... pero si eso lo tengo claro... lo que no se es como haceis para poner ese tiempo.... y luego como se compara... y todo eso... no tienes ninguna direccion donde me lo expliquen mas detalladamente.... esq no llevo ni 1 mes y medio con php... aun no se muchas cosas...
__________________
3w.valenciadjs.com
3w.laislatv.com
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:40.