Adresse ip + compteur

Signaler
Messages postés
58
Date d'inscription
samedi 23 novembre 2002
Statut
Membre
Dernière intervention
12 décembre 2006
-
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
-
Bonjour tout le monde

Pourriez-vous m'aider un peu en me disant ce qui ne marche pas dans mon code? :
<?
$table = "NomDeMaTable";
$user = "User";
$password = "Pass";
$host = "localhost";
$temps=3600;
mysql_connect($host, $user, $password);
mysql_select_db($table);
$heure=date("U");
$ip=$REMOTE_ADDR;
$result=mysql_query("SELECT * FROM visites");
$res=mysql_query("SELECT * FROM visites WHERE ip='$ip'");
if (mysql_num_rows($res))
{
mysql_query("UPDATE visites SET time='$heure' WHERE ip='$ip'");
$res1=mysql_query("SELECT nb FROM visites WHERE ip='$ip'");
if ($res1==0){echo "Vous avez eu vos $res1 essais, fini pour aujourd'hui";}
}
else
{
mysql_query("INSERT INTO visites (ip, time) VALUES ('$ip', '$heure')");
$res1=mysql_query("SELECT nb FROM visites WHERE ip='$ip'");
if ($res1>0){echo "il vous reste $res1 essais";}
$nb--;
mysql_query("UPDATE visites SET nb='$nb'");
}
$heuremax=$heure-$temps;
mysql_query("DELETE FROM visites WHERE time<'$heuremax'");
?>

$ip=je stoke la valeur ip dedans
$nb=je stoke le nombre de fois que la personne est venue

J'ai essayer plusieurs choses et je n'ai réussi à rien.
Voilà ce que je cherche à faire :

1) Quand la personne arrive sur ma page, je vérifie que son IP n'est pas dans ma base.
2) Si elle n'y est pas, je l'ajoute et je passe au 3)
2) Si elle y est, est que cela ne fait pas plus de 24 h qu'elle s'y trouve, je passe au 3), sinon je l'efface et reviens au 1
3) Est-ce que ça fait 3 fois qu'elle est déjà venue aujourd'hui?
4) Si oui, je lui indique que cela fait déjà 3 fois et qu'il faut qu'elle attende 24 h pour revenir
4) Si non, je lui dis qu'il lui reste encore x passage possible et je décrémente en fonction.

Voilà, j'espère ne pas avoir écris trop de charabia.
En tout cas merci d'avance pour vos réponses.

5 réponses

Messages postés
58
Date d'inscription
samedi 23 novembre 2002
Statut
Membre
Dernière intervention
12 décembre 2006

Désolé, j'ai remis le code qui n'était pas passé
<?
$table = "NomDeMaTable";
$user = "User";
$password = "Pass";
$host = "localhost";
$temps=3600;
mysql_connect($host, $user, $password);
mysql_select_db($table);
$heure=date("U");
$ip=$REMOTE_ADDR;
$result=mysql_query("SELECT * FROM visites");
$res=mysql_query("SELECT * FROM visites WHERE ip='$ip'");
if (mysql_num_rows($res))
{
mysql_query("UPDATE visites SET time='$heure' WHERE ip='$ip'");
$res1=mysql_query("SELECT nb FROM visites WHERE ip='$ip'");
if ($res1==0){echo "Vous avez eu vos $res1 essais, fini pour aujourd'hui";}
}
else
{
mysql_query("INSERT INTO visites (ip, time) VALUES ('$ip', '$heure')");
$res1=mysql_query("SELECT nb FROM visites WHERE ip='$ip'");
if ($res1>0){echo "il vous reste $res1 essais";}
$nb--;
mysql_query("UPDATE visites SET nb='$nb'");
}
$heuremax=$heure-$temps;
mysql_query("DELETE FROM visites WHERE time<'$heuremax'");
?>
Messages postés
392
Date d'inscription
mercredi 24 novembre 2004
Statut
Membre
Dernière intervention
26 septembre 2009

Est ce que tu as une erreur ? Que ce passe t-il avec ce script ?
A++
<hr size="2" width="100%">Si un des membres a posté une reponse qui convient, acceptez la !
Mon blog : http://blogs.rf.lv/arnauti
Messages postés
58
Date d'inscription
samedi 23 novembre 2002
Statut
Membre
Dernière intervention
12 décembre 2006

Oui à la première venue, je n'est que : "l vous reste essais" qui apparaît."
Ensuite à la deuxième, je n'est que : "Vous avez eu vos essais, fini pour aujourd'hui" et après il ne reste affiché que ça. J'ai regarder dans la base, l'IP est bien là.

j'ai de nouveau essayé avec ce code.
Je le poste en 2fois ?! :
Messages postés
58
Date d'inscription
samedi 23 novembre 2002
Statut
Membre
Dernière intervention
12 décembre 2006

<?php
$table = "lugdanum_db";
$user = "lugdanum";
$password = "";
$host = "localhost";
$temps=3600;
mysql_connect($host, $user, $password);
mysql_select_db($table);
$heure=date("U");
$ip=$_SERVER['REMOTE_ADDR'];
$result=mysql_query("SELECT * FROM visites");
$res=mysql_query("SELECT * FROM visites WHERE ip='$ip'");
if (mysql_num_rows($res))
{
$res1=mysql_fetvh_assoc("SELECT nb FROM visites WHERE ip='$ip'");
if ($res1==0)
{
echo "Vous avez eu vos $res1 essais, fini pour aujourd'hui";
}
else
{
$res1=mysql_fetvh_assoc("SELECT nb FROM visites WHERE ip='$ip'");
echo "il vous reste $res1 essais";
$res1--;
$res1= mysql_query("UPDATE * FROM visites SET nb='$res1' WHERE ip='$ip'");
}
}
else
{
mysql_query("INSERT INTO visites (nb,ip, time) VALUES ('3','$ip', '$heure')");
$res1=mysql_fetvh_assoc("SELECT nb FROM visites WHERE ip='$ip'");
echo "il vous reste $res1 essais";
$res1--;
$res1= mysql_query("UPDATE * FROM visites SET nb='$res1' WHERE ip='$ip'");
}
$heuremax=$heure-$temps;
mysql_query("DELETE FROM visites WHERE time<'$heuremax'");
?>
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
"if ($res1==0)"

Voui bien sur...

www.php.net

Au dessus, t'as une barre de recherche.
Tu tapes :
mysql_query
mysql_numrows
mysql_fetch_row
mysql_fetch_array

Et tu lis.
Tu comprendras tes erreurs tout seul.