Oh ja, die unieke IP-teller ben ik inderdaad vergeten. Hierbij het aangepaste script:
SQL
Code:
CREATE TABLE `externalsites` (
`id` INT NOT NULL AUTO_INCREMENT ,
`url` TEXT NOT NULL ,
`hits` INT DEFAULT '1' NOT NULL ,
`uniquehits` INT DEFAULT '1' NOT NULL ,
PRIMARY KEY ( `id` )
) ;
CREATE TABLE `ipaddresses` (
`id` INT NOT NULL AUTO_INCREMENT ,
`ipaddress` TEXT NOT NULL ,
`externalsite` INT DEFAULT '1' NOT NULL ,
PRIMARY KEY ( `id` )
) ;
mysqlconnect.php
PHP:
<?php
mysql_select_db("database", mysql_connect("localhost", "username", "password"));
?>
goto.php
PHP:
<?php
include "mysqlconnect.php";
if (isset($_GET["url"])) {
$result = mysql_query("SELECT `id` FROM `externalsites` WHERE `url` = '" . $_GET["url"] . "'");
if ($externalsite = mysql_fetch_assoc($result)) {
$ipaddress = mysql_fetch_assoc(mysql_query("SELECT COUNT(*) AS `count` FROM `ipaddresses` WHERE `externalsite` = '" . $externalsite["id"] . "' AND `ipaddress` = '" . $_SERVER["REMOTE_ADDR"] . "'"));
if ($ipaddress["count"] == "0") {
mysql_query("UPDATE `externalsites` SET `hits` = `hits` + '1', `uniquehits` = `uniquehits` + '1' WHERE `id` = '" . $externalsite["id"] . "'");
mysql_query("INSERT INTO `ipaddresses` (`ipaddress`, `externalsite`) VALUES ('" . $_SERVER["REMOTE_ADDR"] . "', '" . $externalsite["id"] . "')");
} else {
mysql_query("UPDATE `externalsites` SET `hits` = `hits` + '1' WHERE `id` = '" . $externalsite["id"] . "'");
}
} else {
mysql_query("INSERT INTO `externalsites` (`url`) VALUES ('" . $_GET["url"] . "')");
}
header("Location: " . $_GET["url"]);
}
?>
Een link aanroepen gaat dan alsvolgt:
HTML:
<a href="goto.php?url=http://www.helpmij.nl/" target="_blank">Helpmij.nl</a>
Tha Devil, ik ben het er helemaal mee eens dat het beter is als de vraagsteller zelf dat script dat jij gaf aanpast, maar er zijn zoveel aanpassingen nodig, dat daarvoor denk ik meer ervaring nodig is. Volgens mij heeft hij dat niet, aangezien hij zei dat hij wel C++ kent, maar niet veel van PHP. Overigens is het princiepe misschien hetzelfde, maar het zit toch wel heel anders in elkaar. Ik denk zelfs dat je maar een paar kleine gedeelten uit het script kunt gebruiken dat jij gaf. Nu had ik natuurlijk wel een tutorial kunnen schrijven hierover, maar daar had ik geen zin in. Als jij dat wilt, mag je dat natuurlijk doen.
CanTBeaTme, succes met het gebruiken van het script (als je dat tenminste wilt) en vind je nog fouten, dan kun je die natuurlijk melden, want het script is niet getest.