Estoy tratando de crear un botón, solo puedo hacer clic una vez en 24 horas, incluso si el usuario abandonó la página y regresó, no encuentra disponible hasta el final de las 24 horas, no me importa ninguna forma posible (java script, base de datos, jquery , php). gracias a todos chicos
tengo este codigo html:
<form action="#" method="POST"> <div class="card1" id="card1"> <h3>book 1</h3> <button id="roll1""name="roll1"><a href="bbb.php">read now</a></button> </div> <div class="card2" id="card2"> <h3>book 2</h3> <button id="roll2" "name="roll2"> <a href="ccc.php">read now</a></button> </div> <div class="card3" id="card3"> <h3 >book 3</h3> <botton id="roll3" "name="roll3""> <a href="aaa.php">read now</a></button> </div> </form>
Traté de hacer eso, pero cuando el usuario actualiza el botón de nuevo Habilitado:
<?php if(isset($_POST['roll'])) { echo 'you can not click , try again later'; } ?> <form action="aaa.php" method="POST"> <button type="submit" name="roll" <?php echo isset($_POST["roll"]) ? "disabled" : "";?>>read now </button> </form>
Puedes probar esto con session. Si la sesión persiste en una base de datos, será mejor, porque el usuario puede eliminar la sesión en el navegador.
En su archivo index.php (donde está su formulario), puede tener esto:
<?php session_start(); ?> <form action="aaa.php" method="POST"> <button type="submit" name="roll" value="roll" <?php echo isset($_SESSION["lock_timestamp_24h"]) && date('m/d/YH:i:s', time()) <= date('m/d/YH:i:s', $_SESSION["lock_timestamp_24h"]) ? 'disabled' : '' ?> >read now </button> </form>
Como veo en su pregunta, publica en el archivo aaa.php . Entonces, en este archivo, podrías hacer esto:
<?php session_start(); if (isset($_POST['roll'])) { if( !isset($_SESSION["lock_timestamp_24h"]) ) { $_SESSION["lock_timestamp_24h"] = strtotime("+ 1 day", (new DateTime())->getTimestamp()); } }