Pon una contraseña, de modo que la persona no pueda saberla pero el botón sí.
ejemplo:
Código HTML:
<!-- El boton lleva a pagina.php ->
<a href="pagina.php">Enlace</a>
<!-- El boton lleva a pagina.php protegida con contraseña ->
<a href="pagina.php?contra=123">Enlace</a>
Pero... Una vez el usuario vea la contraseña en el botón, ya sabrá ponerla en la URL cuando quiera, no? Sabrá que es 123... Y solo tendrá que poner
pagina.php?contra=123 en la URL.
Pues en vez de ser siempre 123, puedes hacer que vaya variando, por ejemplo según el día:
Código PHP:
<?php
$dia = date("d");
$contra = base64_encode($dia+5);
?>
<a href="pagina.php?contra=<?=$contra?>">Enlace</a>
Y en la página
pagina.php lo compruebas asi:
Código PHP:
<?php
$dia = date("d");
$contra = $_GET['contra'];
if (base64_decode($contra) != ($dia+5))
{
exit ("No puedes entrar");
}
//Aqui lo que quieras en pagina.php
//....
?>
En vez de hacerlo solo con el día (del mes), puedes hacerlo con el día de la semana, la hora,... la clave que se te ocurra.
Otro método, quizá más efectivo sería trabajar con
session, de forma que en la página que contiene el botón creas la sesión, y luego en la siguiente (pagina.php) miras si está creada o no. Así de simple.