Hola ,
He encontrado algo muy similar a lo que busco , entro a una página que contiene un enlace..
Código:
<?php
$token = md5(microtime(TRUE) . rand(0, 100000));
session_start();
$_SESSION['token'] = $token;
$_SESSION['token-expires'] = time() + 20;
echo '<a href="enlace.php?token='.$token.'">Prueba</a>';
?>
Ese token que es generado está hecho para que a los 20 segundos después de su generación , si no es clickeado , el enlace ya no es válido , pero yo quiero que caduque con solo un click.
¿Cómo hago esto?
Cuando llegas a el archivo , en este caso enlace.php
Código:
<?php
$token = $_GET['token'];
session_start();
if (!isset($_SESSION['token'], $_SESSION['token-expires']))
{
die ('token is required!');
}
$token = $_SESSION['token'];
$expires = $_SESSION['token-expires'];
$_SESSION['token'] = NULL;
$_SESSION['token-expires'] = 0;
if ($expires < time() || $token != $token)
{
die ('Invalid or expired token!');
}
else
{
print 'Token good!';
}
?>
Si no tiene el enlace token , te avisa , si es válido te deja paso y si han pasado los 20 segundos te salta un aviso.
Tengo 2 problemas..
1o: Estoy en 1and1 y cuando entro correctamente o caducado el link o incluso sin token me sale este mensaje debajo de mi contenido:
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0
2o: En vez de que caduque a los 20 segundos quisiera que caducase cuando ejecute el enlace , ¿esto como lo hago?
Muchas gracias!