Adresse ip + compteur

cs_lugdanum Messages postés 58 Date d'inscription samedi 23 novembre 2002 Statut Membre Dernière intervention 12 décembre 2006 - 1 mars 2006 à 23:48
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 - 2 mars 2006 à 18:22
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

cs_lugdanum Messages postés 58 Date d'inscription samedi 23 novembre 2002 Statut Membre Dernière intervention 12 décembre 2006
1 mars 2006 à 23:50
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'");
?>
0
cs_Arnauti Messages postés 392 Date d'inscription mercredi 24 novembre 2004 Statut Membre Dernière intervention 26 septembre 2009
2 mars 2006 à 10:48
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
0
cs_lugdanum Messages postés 58 Date d'inscription samedi 23 novembre 2002 Statut Membre Dernière intervention 12 décembre 2006
2 mars 2006 à 11:53
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 ?! :
0
cs_lugdanum Messages postés 58 Date d'inscription samedi 23 novembre 2002 Statut Membre Dernière intervention 12 décembre 2006
2 mars 2006 à 11:53
<?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'");
?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
2 mars 2006 à 18:22
"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.
0
Rejoignez-nous