Tracking systeem

Status
Niet open voor verdere reacties.

CanTBeaTme

Banned
Lid geworden
25 jul 2006
Berichten
235
Ik wil een systeem met een log opbouwen die mij laat zien welke bepaalde externe links op mijn site bezocht worden.

als ik dan bijvoorbeeld www.helpmij.nl zou zetten, en iemand zou klikken zou ik dat in een logje kunnen zien. bezoekers en unieke bezoekers naar die externe website :)

hoe doe ik dat?
 
nou nee, ik zoek een code of script dat ik bij mijn <a href> kan voegen zodat ie automatish als er een bezoeker naar verwezen wordt, (externe pagina) dat hij dat registreert en in een of ander bestandje die bezoeker opslaat "telt" zodat ik later kan zien welke externe links op mijn pagina naar een andere website aantrekkelijk zijn
 
Ja, dat kan. Maar het moet dan wel met een server-side scripttaal, zoals PHP. En met een database erbij is nog gemakkelijker.
Beschik je over PHP-ondersteuning?
 
Ja, dat kan. Maar het moet dan wel met een server-side scripttaal, zoals PHP. En met een database erbij is nog gemakkelijker.
Beschik je over PHP-ondersteuning?

tuurlijk! :P kanje me een linkje naar zoon script geven? ik ken zelf c++, dus kan ik het wel lezen en editen waar nodig, maar zelf opstellen is iets anders ;)

bedankt. ik heb ook CGI support
 

nou ja, dat is voor je site zelf. maar dat heb ik al, ik wil een scriptje die telt hoeveel keer links op mijn website bezocht worden.

bv als ik er www.helpmij.nl zou zetten en iemand die op mijn site is zou er op klikken zou de "counter" voor die website met 1 stijgen.

ik wil het in een soort tabelletje
Code:
externe websites:                 hits:
www.helpmij.nl                                   7
www.eensite.nl                                  10
www.nogeensite.nl                             4

snaptje? :P
 
Volgens mij is dat niet wat er bedoeld wordt. Dat script houd volgens mij de statistieken bij van de eigen site, maar er moet volgens mij juist worden bijgehouden naar welke externe links de gebruikers gaan. Ik heb toch zelf maar even een script geschreven:

SQL
Code:
CREATE TABLE `externalsites` (
`id` INT NOT NULL AUTO_INCREMENT ,
`url` TEXT NOT NULL ,
`count` 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"])) {
	mysql_query("UPDATE `externalsites` SET `count` = count + '1' WHERE `url` = '" . $_GET["url"] . "'");
	if (mysql_affected_rows() == 0) {
		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>


Ik heb het script niet getest, maar ik hoop dat het werkt.
 
Volgens mij is dat niet wat er bedoeld wordt. Dat script houd volgens mij de statistieken bij van de eigen site, maar er moet volgens mij juist worden bijgehouden naar welke externe links de gebruikers gaan.

Het mag dan voor je eigen site zijn, maar het principe is hetzelfde. Je controleert het IP van de bezoeker en als die niet voorkomt plaats je hem in de database en verhoog je de unique hits en de gewone hits met 1 en wanneer hij wel voorkomt dan verhoog je alleen de gewone hits...

Wat jouw script nog mist Jeroen is een unique hits counter...

Alles voorkauwen is ook zo makkelijk voor de TS en dan leert hij er ook niets van :rolleyes: Een script aanpassen dat een soortgelijk iets doet daar leer je veel meer van :)
 
Laatst bewerkt:
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.
 
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.


bedankt, dat is wat ik zocht. Ik ben nog maar pas bezig met internet programeer talen, en ik wil eerst HTML goed onder de knie krijgen (niet dat dat zo moeilijk is) maar door gebrek van tijd kan ik nu geen nieuwe taal beginnen leren, de volgende zal php zijn.

als ik veel moeite had gedaan had ik zelf wel zoiets in mekaar kunnen knutselen, maar dan stukjes van hier en daar bijeen plakken natuurliijk :P

hartelijk bedankt voor je scripjte :)
 
ik heb nog een klein probleempje waar ik zelf niet uitkom ...

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/epidemic/public_html/goto.php on line 15

Warning: Cannot modify header information - headers already sent by (output started at /home/epidemic/public_html/goto.php:9) in /home/epidemic/public_html/goto.php on line 26


wat moet ik hiermee? het argument van myscql_fetch_assoc() is dit: $result
ochjaaa je kan het in de bovenstaande post wel zien :P
 
Maak eens van die ene regel:

PHP:
    $result = mysql_query("SELECT `id` FROM `externalsites` WHERE `url` = '" . $_GET["url"] . "'") or die(mysql_error());
Hierdoor krijg je een gedetailleerdere foutbeschrijving.
 
okej! bedankt voor je snelle reactie:)
dit is de error die ik dan krijg

No database selected

zal wel een foutje van mij zijn dan.. ik ga alvast zoeken :P
Oke die error is nou opgelost, mijn host had automatish een voorvoegsel voor mijn database gemaakt die mijn username is... ik had mijn database externaltracker genoemt, en dat zo aangepast in het script... maar het was dus feitelijk epidemic_externaltracker!
maar nu krijg ik hetvolgende!

Warning: Cannot modify header information - headers already sent by (output started at /home/epidemic/public_html/goto.php:9) in /home/epidemic/public_html/goto.php on line 26
 
Laatst bewerkt:
Deze error wordt veroorzaakt doordat er nog iets boven het script staat dat ik je gaf. Als de functie header() wordt aangeroepen, mag er daarvoor geen output staan. Voor de inhoud van goto.php mag dus niks staan. Als je daar iets neerzet krijg je ook niets te zien, dus het heeft ook geen nut daar iets neer te zetten, je wordt namelijk meteen doorgestuurd naar de aangeroepen website.
 
ik snap het niet echt? wat moet ik nu doen...

Ik heb het opgelost :P sorry, je info was wel duidelijk... maar ik ken niks van php of mysql en daarmee is het nogal klummelachtig!
ik heb mijn oplossing hier gevonden:
http://www.phpfreakz.nl/artikelen.php?aid=109

oftwel gewoon die header() vanboven gezet :P
 
Laatst bewerkt:
Plaats hier eens precies de broncode van het bestand goto.php dat je nu hebt. En ook de includes die je in dat bestand doet.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan