Limiter un clic tous les 24 heures.
Posté : 06 juil. 2016, 12:12
Bonjour,
Je viens à vous pour un problème que j'ai pour coder mon site en php.
En fait, j'ai une page qui fait gagner des points et quand on clique sur le lien. On est redirigé vers une page qui attribue les points aux joueurs.
Voici le code de le page qui attribut les points :
Dans ma base de donnée, j'ai une table échange avec id, id_membre, id_lien et date.
Mon problème, c'est que lorsque je clique sur le lien après les 30 secondes, sa me redirigie vers le le lien même si j'ai cliqué avant les 24 heures imposé :/
Je ne vois pas comment faire.
Pouvez-vous m'aider ?
Merci
Je viens à vous pour un problème que j'ai pour coder mon site en php.
En fait, j'ai une page qui fait gagner des points et quand on clique sur le lien. On est redirigé vers une page qui attribue les points aux joueurs.
Voici le code de le page qui attribut les points :
Code : Tout sélectionner
<?php include('include/mysql.php');
$id = $_GET["id"];
$id_membre =$_SESSION['userid'];
if(isset($_SESSION['username']))
{
$sql = 'SELECT * FROM echange WHERE id_membre ="'.$id_membre.'" ORDER BY id DESC LIMIT 1';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($req)) {
$date = $data['date'];
}
$sql2 = 'SELECT * FROM liens WHERE id="'.$id.'"';
$req = mysql_query($sql2) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while ($data = mysql_fetch_array($req)) {
$lien = $data['lien'];
$id_lien = $data['id_lien'];
}
mysql_free_result ($req);
$my_new_date=$date+30;
$id_membre =$_SESSION['userid'];
date_default_timezone_set('Europe/Paris');
$time= time();
if(time()>=$my_new_date)
{
echo $id_membre;
echo'<br/>';
echo $id_lien;
$sql4 = "SELECT COUNT(*) as nb FROM echange WHERE id_membre ='".$id_membre."' AND id_lien ='".$id."'";
$req4 = mysql_query($sql4) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
$row4 = mysql_fetch_assoc($req4);
$dn = $row4['nb'];
echo $dn;
if($dn==0)
{
?>
<SCRIPT LANGUAGE="JavaScript">
window.setTimeout("location=('<?php echo $lien; ?>');",10);
</SCRIPT>
<?php
$vu = "UPDATE liens SET vu=vu+1 WHERE id='".$id."'";
mysql_query($vu);
$point = "UPDATE point SET nbr=nbr+2 WHERE id='".$id_membre."'";
mysql_query($point);
$point2 = "UPDATE liens SET point=point-2 WHERE id='".$id."'";
mysql_query($point2);
$echange = 'insert into echange(id_lien, id_membre, date) values ("'.$id.'", "'.$id_membre.'", "'.time().'")';
mysql_query($echange);
}
if($dn>0) {
echo'<br/>Tu as cliqué sur ce lien '.$dn.' fois<br/>';
$req2 = mysql_query("SELECT * FROM echange WHERE id_lien='".$id."' AND id_membre='".$id_membre."' LIMIT 1 ORDER BY id DESC"); //On récupère tous les membres pas actifs
while ($donnees = mysql_fetch_array($req2))
{
$date_inscription = $donnees['date'];
date_default_timezone_set('Europe/Paris');
$date2 = time();
$difference = $date2 - $date_inscription;
$nbreSecondesEn2Jours = 86400;
if ($difference >= $nbreSecondesEn2Jours)//On supprime le membre
{
$vu = "UPDATE liens SET vu=vu+1 WHERE id='".$id."'";
mysql_query($vu);
$point = "UPDATE point SET nbr=nbr+2 WHERE id='".$id_membre."'";
mysql_query($point);
$point2 = "UPDATE liens SET point=point-2 WHERE id='".$id."'";
mysql_query($point2);
$echange = 'insert into echange(id_lien, id_membre, date) values ("'.$id.'", "'.$id_membre.'", "'.time().'")';
mysql_query($echange);
?>
<SCRIPT LANGUAGE="JavaScript">
window.setTimeout("location=('<?php echo $lien; ?>');",10);
</SCRIPT>
<?php
}else{
$id_lien = $data['id'];
// Requette SQl
$strSQL = "
SELECT echange.date, liens.id, users.id
FROM echange, liens, users
WHERE echange.id_lien = '".$id."' && echange.id_membre = users.id LIMIT 1";
// Envoyer la requete
$resultat = mysql_query($strSQL);
// Boucle sur le retour pour les résultats
while ($ligne = mysql_fetch_array($resultat)) {
$date = $ligne['date'];
$new = $date+86400;
}
echo'Prochain clic <br/>';
echo date('Y/m/d H:i:s', $new);
}
}
}
}else{
$tps_restant= $my_new_date - time();
echo'Vous avez cliqué il y a moins de 30 secondes<br/> <a href="go2.php?id='.$id.'">Actualise la page</a><br/> Il vous reste ';
echo $tps_restant;
echo' secondes à attendre.';
}
}else{
?>
<SCRIPT LANGUAGE="JavaScript">
document.location.href="/connexion.php"
</SCRIPT><?php
}
?>
<br/><br/>Mon problème, c'est que lorsque je clique sur le lien après les 30 secondes, sa me redirigie vers le le lien même si j'ai cliqué avant les 24 heures imposé :/
Je ne vois pas comment faire.
Pouvez-vous m'aider ?
Merci