Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour, voila je suis propriétaire d'un ptp et je voudrais savoir comment faire un filtre ip/1minute c'est a dire que le script ne distribut pas de point si le visiteur est venu il y a moin d'une minute.
Merci
Hors ligne
Hello,
Parles tu d'un serveur FTP ?
La programmation est composée de 80% de réflexion pour 20% de syntaxe -> réfléchissez à votre problème par étapes
Recommande l'utilisation du pattern Singleton
Si jamais je poste un morceau de code pour vous aider, prenez bien compte que je n'ai pas forcément testé le code que je poste et qu'il est possible qu'il contienne des erreurs
Hors ligne
non un ptp pay to promote
Hors ligne
salut,
le seul moyen serait de récupérer l'ip.
une table qui contient les infos user, ip, date d'expiration.
a l'affichage d'une page tu regarde dans la table si l'ip est présente, si oui tu regarde si la date d'expiration est inférieure a la date actuelle.
Si l'ip n'est pas présente tu l'ajoute dans la base.
si l'IP est présente et que la date d'expiration est passé tu ajoute tes points.
Attention l'adresse IP seule est quelque chose de peu fiable (possibilité de plusieur user derriere une seul IP, c'est le cas d'un réseau local).
@+
Il en faut peu pour être heureux pompompompompompompompompompompom
Hors ligne
ok merci mais je voudrais compter la date d'expiration en minutes j'utilise un timestamp ? si oui comment ?
Hors ligne
Au moment où tu l'enregistres dans la BDD tu enregistres le timestamp actuel oui. ^^
Qui dit timestamp dit secondes. Donc quand tu compares le timestamp de la BDD au timestamp actuel tu auras un écart en secondes.
Ecart d'une heure = 60(secondes)*60(minutes)
Dernière modification par xTG (20-01-2010 08:24:40)
Hors ligne
écran d'une heure 3600s oui, tout le calcul à faire avec la requete SQL
Genre select truc from machin where dateexpiration> now().
exemple bourrin mais le principe est la.
@+
Il en faut peu pour être heureux pompompompompompompompompompompom
Hors ligne
Désolé du retard.
Donc si j'ai une base de donnée comme ç :
ip time
xx.xx.xx.xx 60
et un code comme ça :
if ($check = $ip){
$check3 = mysql_query("SELECT time FROM ipverification WHERE ip='$$check'");
$check2 = @mysql_result($check3, 0);
if ($check2 > 60){echo "ok"}else{echo "revenez dans 1 minute";}
}else{ mysql_query("INSERT INTO `ipverification` (`ip`, `time`) VALUES ('$ip', '$time')")
ça marche ?
Hors ligne
non car c'est une sorte de sécurité si le script a bugué ya un ratrapage derriere non ?
Sinon ça marche ? je pense qu'il faut mettre un timestamp de l'heure mais je sais pas comment faire.
Hors ligne
okok admettons j'ai dis une connerie mais est-ce que ça marche ???
Hors ligne
Non car la valeur sera toujours égale à 60. ^^
Il vaut mieux stocker un timestamp.
Un script de ce genre :
if($attente > 0 ) echo 'Il vous reste '.$attente.' seconde(s) à attendre.';
else echo 'Tout est ok !';
}
else
{
mysql_query("INSERT INTO `ipverification` (`ip`, `time`) VALUES ('".$ip."', '".time()."')");
echo 'Attendez 60secondes.';
}
?>
Hors ligne
ma table sql je la met sous quel format pour le timestamp ?
Hors ligne
il me met un format 000-000-000-000 en gros c ça
Hors ligne
Dans tous les cas saches que mysql ne compare que des timestamp (si je dis pas de bêtises). Quand il compare deux dates en format DATE il les converti en timestamp pour la comparaison.
Donc tu peux lui mettre n'importe quel format de date et la comparer à la fonction time().
Après le format dépend de la précision que tu veux ou de l'affichage que tu as besoin sans avoir à faire des conversions.
Dernière modification par xTG (26-01-2010 21:38:51)
Hors ligne
oui mais ya un biug si je met en timestamp il va me mettre
et quand j'execute ton script rien n'est enregistré tout reste en 0000-00-00 00:00:00
Hors ligne
time ne marche pas qu'est-ce que tu appelle varcher bien calibré ?
Hors ligne
9a ne marche pas le script me dis il vous reste 60 secondes a attendres puis a chaque actualisation ça passe de 3 a 4 a 5 etc ...
Hors ligne
mdr d'ailleur j'était entrain d'y réfléchir merci beaucoups xTG ça marche.
Hors ligne
Pages :: 1