PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 17-01-2010 15:25:10

madstrix
Membre
Inscription : 23-12-2009
Messages : 58

Filtre ip

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

#2 18-01-2010 13:32:05

Maskime
Membre
Lieu : Paris 15ème
Inscription : 11-05-2009
Messages : 134
Site Web

Re : Filtre ip

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 wink

Hors ligne

#3 18-01-2010 20:20:56

madstrix
Membre
Inscription : 23-12-2009
Messages : 58

Re : Filtre ip

non un ptp pay to promote

Hors ligne

#4 19-01-2010 16:41:26

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : Filtre ip

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

#5 19-01-2010 21:18:28

madstrix
Membre
Inscription : 23-12-2009
Messages : 58

Re : Filtre ip

ok merci mais je voudrais compter la date d'expiration en minutes j'utilise un timestamp ? si oui comment ?

Hors ligne

#6 20-01-2010 08:23:40

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Filtre ip

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

#7 20-01-2010 09:43:02

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : Filtre ip

écran d'une heure 3600s oui, tout le calcul à faire avec la requete SQL wink

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

#8 26-01-2010 20:53:06

madstrix
Membre
Inscription : 23-12-2009
Messages : 58

Re : Filtre ip

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 :

$ip = $_SERVER['REMOTE_ADDR'];   
$check1 = mysql_query("SELECT ip FROM ipverification WHERE ip='$ip'");
$check = @mysql_result($check1, 0);
$time = 60;

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

#9 26-01-2010 20:59:13

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Filtre ip

Ps : la ligne 7 et la ligne 2 pourraient être une seule et même requête...

Hors ligne

#10 26-01-2010 21:03:34

madstrix
Membre
Inscription : 23-12-2009
Messages : 58

Re : Filtre ip

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

#11 26-01-2010 21:07:31

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Filtre ip

Euh en quoi cela pourrait-il buguer ? Je suis pas sûr de comprendre là. ^^"
Soit l'ip existe soit elle n'existe pas... Et pour gérer les erreurs Mysql possède des fonctions qui te permette de le savoir.

Hors ligne

#12 26-01-2010 21:10:09

madstrix
Membre
Inscription : 23-12-2009
Messages : 58

Re : Filtre ip

okok admettons j'ai dis une connerie mais est-ce que ça marche ???

Hors ligne

#13 26-01-2010 21:14:52

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Filtre ip

Non car la valeur sera toujours égale à 60. ^^
Il vaut mieux stocker un timestamp.

Un script de ce genre :

?php
$ip = $_SERVER['REMOTE_ADDR'];  
$check1 = mysql_query("SELECT time FROM ipverification WHERE ip='$ip'");
if( mysql_num_rows($check1) == 1 ){
  $check = @mysql_result($check1, 0);
  $attente =  time() - $check;

  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

#14 26-01-2010 21:28:28

madstrix
Membre
Inscription : 23-12-2009
Messages : 58

Re : Filtre ip

ma table sql je la met sous quel format pour le timestamp ?

Hors ligne

#15 26-01-2010 21:33:05

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Filtre ip

timestamp ? ^^

Hors ligne

#16 26-01-2010 21:35:15

madstrix
Membre
Inscription : 23-12-2009
Messages : 58

Re : Filtre ip

il me met un format 000-000-000-000 en gros c ça

Hors ligne

#17 26-01-2010 21:38:30

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Filtre ip

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

#18 26-01-2010 21:42:47

madstrix
Membre
Inscription : 23-12-2009
Messages : 58

Re : Filtre ip

oui mais ya un biug si je met en timestamp il va me mettre

time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

et quand j'execute ton script rien n'est enregistré tout reste en 0000-00-00 00:00:00

Hors ligne

#19 27-01-2010 08:16:33

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Filtre ip

Au temps pour moi. Mets la en TIME alors. Et si toujours rien un varchar bien calibré.

Hors ligne

#20 27-01-2010 18:58:59

madstrix
Membre
Inscription : 23-12-2009
Messages : 58

Re : Filtre ip

time ne marche pas qu'est-ce que tu appelle varcher bien calibré ?

Hors ligne

#21 27-01-2010 19:04:12

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Filtre ip

Un champs texte de type VARCHAR avec comme taille la longueur maximale d'un time.

Dernière modification par xTG (27-01-2010 19:04:34)

Hors ligne

#22 27-01-2010 19:19:37

madstrix
Membre
Inscription : 23-12-2009
Messages : 58

Re : Filtre ip

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

#23 27-01-2010 20:04:54

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : Filtre ip

Ah bah normal vu le calcul... Je comprend donc que tu n'as pas compris mon code...

La correction :

$attente =  $check + 60 - time();

Hors ligne

#24 27-01-2010 20:09:38

madstrix
Membre
Inscription : 23-12-2009
Messages : 58

Re : Filtre ip

mdr d'ailleur j'était entrain d'y réfléchir merci beaucoups xTG ça marche.

Hors ligne

Pied de page des forums