Nu vil jeg så gerne udbygge den lidt, og lave så hvis ens ip allerede er registeret i databasen så skal det ikke tælle som en besøgende men istedet skrive "Du har været her før". Hvordan klarer jeg det ? Jeg har rodet med at sætte noget if & else op, men det virker bare ik for mig :/
$ip = $_SERVER['REMOTE_ADDR']; mysql_query("INSERT INTO hits (ip) VALUES ('$ip')");
$hits = mysql_result(mysql_query('SELECT COUNT(*) FROM hits'),0); echo "Du er besøgende nr $hits<br>";
if (mysql_result(mysql_query("SELECT ip FROM hits WHERE ip='$ip'"),0) > 1) { echo 'Du her været her før'; } else { echo 'Du har ikke været her før'; } echo "<hr align=left color=red size=15 width=$hits>"; mysql_close($conn); ?>
Det script du havde/har i forvejen virker lidt omstændigt og muligvis forkert - tæller den ikke 2 hits pr. besøg på siden - og tabelstrukturen virker også lidt mærkelig - eller også er det bare mig som ikke forstår det...
Givet et IP-nummer får du altid det samme hostnavn tilbage med gethostbyaddr. Der er derfor ingen grund til at bruge den. Den koster netværkstrafik, måske til en DNS server på den anden side af jorden (hvis dine besøgende kommer derfra), og det tager pænt mange millisekunder. Nogle gange er den jo hurtig - det er rigtig nok.
<?php /* CREATE TABLE hits ( ip varchar(100) NOT NULL default '' ) TYPE=MyISAM; */ mysql_connect('','',''); mysql_select_db('');
$ip = $_SERVER['REMOTE_ADDR']; mysql_query("INSERT INTO VALUES ('$ip')");
$hits = mysql_result(mysql_query('SELECT COUNT(*) FROM hits'),0); echo "Du er besøgende nr. $hits (Ikke særligt unikt)<br>";
if (mysql_result(mysql_query("SELECT ip FROM hits WHERE ip='$ip'"),0) > 1) { echo 'Dette IP-nummer har besøgt siden før'; } else { echo 'Et nyt ip-nummer!'; } mysql_close($conn); ?>
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.