Avatar billede hhjensen Nybegynder
29. oktober 2001 - 20:56 Der er 75 kommentarer og
1 løsning

Registrering af klik på links...igen!

jf. spørgsmål www.eksperten.dk/spm/115075 om registrering af klik på links!

Nu har jeg fået adgang til PHP, hvordan kommer jeg så videre med at få registreret hvor folk klikker!
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 21:01 #1
her er en ide hvis du har adgang til MySQL - hvis ikke, så kan det godt lade sige gøre, men er noget mere besværligt...

Inden jeg går i gang ved jeg bare lige høre om du har adgang til mysql ?

Avatar billede hhjensen Nybegynder
29. oktober 2001 - 21:03 #2
long> Det har jeg, men jeg er ikke så skrap til noget af det - endnu!
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 21:03 #3
oki, laver lige noget så
Avatar billede cyberdude Nybegynder
29. oktober 2001 - 21:06 #4
har du prøvet zipstat.dk ?
Der definere du dine link, så får du en \"link\" kode som du sætter på siden, og vupti så registrere de dine klik.......
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 21:07 #5
dude> Jeg bruger Zipstat til alm. statistik, men er ikke helt tilfreds med dens pålidelighed.

Vil også helst ha´ min \"egen\" løsning!
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 21:12 #6
alle dine links skal gemmes i db\'en og hvert link gives et unikt id (skriv hvis det er noget du skal have hjælp til)

et eksempel på et af dine links kunne så være: <a href=\"redirect.php?id=2\">Mit link #2</a>


redirect.php
$conn = mysql_connect(\"xxxx\",\"xxxx\",\"xxxxl\");
mysql_select_db(\"my_db\",$conn);

$sql=\"SELECT clicks FROM my_db WHERE ID=$id\";
list($result)=mysql_fetch_row(mysql_query($sql));
$clicks=$result++;

$sql=\"UPDATE my_table SET clicks=$clicks\";
mysql_query($sql);

$sql=\"SELECT url FROM my_table WHERE ID=$id\";
list($url)=mysql_fetch_row(mysql_query($sql));

header(\"Location : $url\");
exit;
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 21:16 #7
long> Kunne vi tage den helt fra bunden!
Jeg kan evt. smide nogle flere points i for din pædagogiske indsats!
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 21:17 #8
der mangler ikke så meget, men laver lige lidt mere til dig, så må du selv vurdere om det er flere point værd :-)

Avatar billede hhjensen Nybegynder
29. oktober 2001 - 21:22 #9
Når du skriver gemmes i databasen er jeg HELT blank! Hvordan skal det ske?

Avatar billede long_island_ Nybegynder
29. oktober 2001 - 21:23 #10
Jeg laver det helt fra bunden - er i gang :-)
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 21:44 #11
run_once.php køres naturligt nok kun én gang, så kan du bare slette den igen.
add_url.php bruges til at tilføje links til db\'en
show_url.php bruges til at skrive alle url\'s og antal clicks ud.
dine links skal så fremover hedde(husk at skifte id# ud):
<a href=\"redirect.php?id=123\">Link_tekst</a>
Der er sikkert nogle småfejl - men så må jeg jo bare rette dem - håber det kan bruges

\' run_once.php
<?
$conn = mysql_connect(\"xxxx\",\"xxxx\",\"xxxxl\");
mysql_select_db(\"my_db\",$conn);
$sql=\"
CREATE TABLE my_table (
  ID int(11) NOT NULL auto_increment,
  url varchar(255) NOT NULL,
  clicks int(11) NOT NULL,
  PRIMARY KEY (ID),
  UNIQUE ID (ID),
);\";
mysql_query($sql);
print mysql_error();
?>
\' end of file

\' add_url.php
<html>
<body>
<h1>Add URL</h1>
<form action=\"add_url.php?action=add\" method=\"post\">
Url:<input type=text name=url>
<br>
<input type=submit value=\" OK \">
</form>
<br>
<? if ($action==\"add\")
    {
    echo \"Url ($url) add\'ed to database\";
    $sql=\"INSERT INTO my_table (url,clicks) VALUES (\'$url\',0)\";
    mysql_query($sql);
    }
?>
</body>
</html>
\' end of file

\' show_url
<?
$conn = mysql_connect(\"xxxx\",\"xxxx\",\"xxxxl\");
mysql_select_db(\"my_db\",$conn);
?>
<html>
<body>
<h1>Links in database:</h1>
<table>
<?
$sql=\"SELECT * FROM my_table ORDER BY ID\";
    $result=mysql_query($sql);
    echo \"<tr><td>ID</td><td>Url</td><td>Clicks</td><tr>\";
    while ($row=mysql_fetch_row($result)) {
        echo \"<tr><td>\" . $row[0] . \"</td><td>\" . $row[1] . \"</td><td>\" . $row[2] . \"</td></tr>\"; }
?>
</table>
</body>
</html>
\' end of file

\' redirect.php
<?
$conn = mysql_connect(\"xxxx\",\"xxxx\",\"xxxxl\");
mysql_select_db(\"my_db\",$conn);

$sql=\"SELECT clicks FROM my_db WHERE ID=$id\";
list($result)=mysql_fetch_row(mysql_query($sql));
$clicks=$result++;

$sql=\"UPDATE my_table SET clicks=$clicks\";
mysql_query($sql);

$sql=\"SELECT url FROM my_table WHERE ID=$id\";
list($url)=mysql_fetch_row(mysql_query($sql));

header(\"Location : $url\");
exit;
?>
\' end of file
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 21:47 #12
Rent praktisk hvad gør jeg nu?
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 21:51 #13
Undskyld min uvidenhed, men jeg er ikke rigtig inde i det endnu!
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 21:52 #14
Du skifter xxxx ud med server,username og password (så det passer), og skifter my_db ud med et navnet på en database du har adgang til.
Så opretter du de filer jeg lige har skrevet, og kører run_once.php
Hvis den ikke skriver noget om nogen fejl, så kører du add_url.php
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 21:55 #15
my_db kunne det være domæne_dk_db ???

Er den database noget jeg kan se via min FTP eller hvad?
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 21:57 #16
Nej, din database kan ikke ses via ftp...

Hvis du ikke allerede har en database, så skal du have fat i en admin som kan oprette en database til dig, med mindre du selv har root-adgang
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 22:03 #17
Jeg har oplysninger om:
MySQL-server
MySQL-database
MySQL-brugernavn
MySQL-password

er det ikke dET?
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 22:06 #18
jo, det er nok :-)

hver gang der står
$conn = mysql_connect(\"xxxx\",\"xxxx\",\"xxxxl\");
mysql_select_db(\"my_db\",$conn);

skal der så stå:
$conn = mysql_connect(MYSQL-server,MYSQL-brugernavn,MYSQL-password);
mysql_select_db(MYSQL-database,$conn);
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 22:17 #19
Hvis jeg aktiverer run_once.php kommer den med følgende:

\' run_once.php
Warning: Supplied argument is not a valid MySQL-Link resource in /web/www.ergonet.dk/linkreg/run_once.php on line 3

Warning: Access denied for user: \'0@linux1\' (Using password: YES) in /web/www.ergonet.dk/linkreg/run_once.php on line 5

Warning: MySQL Connection Failed: Access denied for user: \'0@linux1\' (Using password: YES) in /web/www.ergonet.dk/linkreg/run_once.php on line 5

Warning: Supplied argument is not a valid MySQL-Link resource in /web/www.ergonet.dk/linkreg/run_once.php on line 6

Warning: Access denied for user: \'www@localhost\' (Using password: NO) in /web/www.ergonet.dk/linkreg/run_once.php on line 16

Warning: MySQL Connection Failed: Access denied for user: \'www@localhost\' (Using password: NO) in /web/www.ergonet.dk/linkreg/run_once.php on line 16

Warning: MySQL: A link to the server could not be established in /web/www.ergonet.dk/linkreg/run_once.php on line 16
Access denied for user: \'www@localhost\' (Using password: NO)\' end of file \' add_url.php
Add URL
Url:


\' end of file \' show_url
Warning: Access denied for user: \'0@linux1\' (Using password: YES) in /web/www.ergonet.dk/linkreg/run_once.php on line 44

Warning: MySQL Connection Failed: Access denied for user: \'0@linux1\' (Using password: YES) in /web/www.ergonet.dk/linkreg/run_once.php on line 44

Warning: Supplied argument is not a valid MySQL-Link resource in /web/www.ergonet.dk/linkreg/run_once.php on line 45

Links in database:

Warning: Access denied for user: \'www@localhost\' (Using password: NO) in /web/www.ergonet.dk/linkreg/run_once.php on line 53

Warning: MySQL Connection Failed: Access denied for user: \'www@localhost\' (Using password: NO) in /web/www.ergonet.dk/linkreg/run_once.php on line 53

Warning: MySQL: A link to the server could not be established in /web/www.ergonet.dk/linkreg/run_once.php on line 53
ID Url Clicks

Warning: Supplied argument is not a valid MySQL result resource in /web/www.ergonet.dk/linkreg/run_once.php on line 55

\' end of file
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 22:21 #20
kan du ikke kopiere alle dine .php filer til .phps ?
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 22:22 #21
Wow - du har glemt at lave det som flere filer.....

filen run_once.php er fra
\' run_once.php
til
\' end of file

(og så videre der nedad så du få flere filer)
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 22:23 #22
Jo!
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 22:26 #23
ud over det med at du skal have skilt dine filer ad, så skal du fjerne \"mysql_select_db(\"my_db\",$conn); \" på linie 2, og du skal fjerne \"MYSQL\" alle steder
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 22:33 #24
Hvad så med:
You have an error in your SQL syntax near \');\' at line 8

Hvad er det for en error?
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 22:34 #25
prøv med :
$sql=\"
CREATE TABLE my_table (
  ID int(11) NOT NULL auto_increment,
  url varchar(255) NOT NULL,
  clicks int(11) NOT NULL,
  PRIMARY KEY (ID),
  UNIQUE ID (ID)
)\";
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 22:37 #26
OK- nu er siden helt blank! Er det et godt tegn?
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 22:45 #27
Ja :-)

Så virker run_once - så skal du prøve at køre add_url.php
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 22:49 #28
Så kommer der en fin lille boks frem og ADD URL
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 22:51 #29
så prøv at se om du kan tilføje en url, og kig så på show_url.php
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 22:52 #30
så siger den:Url (http://www.anatomi.dk/) add\'ed to database
Warning: Access denied for user: \'www@localhost\' (Using password: NO) in /web/www.ergonet.dk/linkreg/add_url.php on line 14

Warning: MySQL Connection Failed: Access denied for user: \'www@localhost\' (Using password: NO) in /web/www.ergonet.dk/linkreg/add_url.php on line 14

Warning: MySQL: A link to the server could not be established in /web/www.ergonet.dk/linkreg/add_url.php on line 14
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 22:56 #31
oki, har du husket at sætte server,brugernavn og kodeord ?


hvis du har, eller ikke ved hvad jeg mener, så prøv at lave en .phps af add_url
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 22:59 #32
Hvor skal der være server,brugernavn og kodeord i den fil?
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 23:01 #33
min fejl - du skal indsætte følgnende i toppen af filen:
<?
$conn = mysql_connect(MYSQL-server,MYSQL-brugernavn,MYSQL-password);
mysql_select_db(MYSQL-database,$conn);
?>
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 23:04 #34
Så fungerer det!
...også med show_url
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 23:05 #35
Hvad så med redirect filen?
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 23:07 #36
prøv at skrive redirect.php?id=1 og se om du kommer hen til den url du har indtastet - og se så på show_url om der er registreret et click
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 23:08 #37
Skal jeg ikke først ind i min HTML og rette linket?
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 23:10 #38
du kan godt lave en ny side hvor du bruger <a href=\"redirect.php?id=1\">test</a> - men du må IKKE rette i php-filerne :-)
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 23:13 #39
Jeg har rettet i en af mine sider med links - denne her:
http://www.ergonet.dk/links/anatomi.htm
Første link i skemaet anatomi.dk er url id1, men det ser ikke ud til at virke!
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 23:16 #40
$sql=\"SELECT clicks FROM my_db WHERE ID=$id\";
skal ændres til
$sql=\"SELECT clicks FROM my_table WHERE ID=$id\";
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 23:17 #41
I hvilken fil?
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 23:18 #42
i redirect.php
hvis det ikke virker, så skrver jeg den lige om fra bunden - den er lidt kikset lavet :-)
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 23:22 #43
Det virker ikke umiddelbart!
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 23:23 #44
oki, jeg skriver lige hurtigt om, 2 min
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 23:26 #45
prøv den her i stedet så (håber den virker, er ved at blive ukoncentreret)

\' redirect.php
<?
  $conn = mysql_connect(\"xxxx\",\"xxxx\",\"xxxx\");
  mysql_select_db(\"xxxx\",$conn);
 
  $sql=\"SELECT * FROM my_table WHERE ID=$id\";
  $row=mysql_fetch_row(mysql_query($sql));
  $clicks=$row[2];
  $url=$row[1];

  $sql=\"UPDATE my_table SET clicks=$clicks\";
  mysql_query($sql);

  header(\"location : $sql\");
  exit;
?>
\' end of file
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 23:29 #46
ups - der skal sættes en linie ind efter url=$row[1]; og den er:
$clicks++;

Avatar billede hhjensen Nybegynder
29. oktober 2001 - 23:30 #47
Det virker sgu stadig ikke!

er http://www.ergonet.dk/links/redirect.php?id=1 ikke det link der skulle henside til det URL jeg addede?
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 23:31 #48
ligger filen ikke i linkreg sammen med de andre filer ??
og kan du ikke lige lave en .phps-version af filen ?
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 23:33 #49
Nu står der pludselig 2 clicks på alle de 3 URL´s jeg har tilføjet!
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 23:33 #50
heh, endnu en dum fejl fra min side....
her er en som vist nok er fejlfri ??
\' redirect.php
<?
  $conn = mysql_connect(\"xxxx\",\"xxxx\",\"xxxx\");
  mysql_select_db(\"xxxx\",$conn);
 
  $sql=\"SELECT * FROM my_table WHERE ID=$id\";
  $row=mysql_fetch_row(mysql_query($sql));
  $clicks=$row[2];
  $url=$row[1];
  $clicks++;

  $sql=\"UPDATE my_table SET clicks=$clicks\";
  mysql_query($sql);

  header(\"location : $url\");
  exit;
?>
\' end of file
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 23:35 #51
den er lige ved at være der - dog endnu en fejl....
$sql=\"UPDATE my_table SET clicks=$clicks\";
skal skiftes med
$sql=\"UPDATE my_table SET clicks=$clicks WHERE ID=$id\";
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 23:35 #52
Alle fire php filer ligger i /linkreg
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 23:38 #53
\' redirect.php
<?
  $conn = mysql_connect(\"xxxx\",\"xxxx\",\"xxxx\");
  mysql_select_db(\"xxxx\",$conn);
 
  $sql=\"SELECT * FROM my_table WHERE ID=$id\";
  $row=mysql_fetch_row(mysql_query($sql));
  $clicks=$row[2];
  $url=$row[1];
  $clicks++;

  $sql=\"UPDATE my_table SET clicks=$clicks WHERE ID=$id\";
  mysql_query($sql);

  header(\"location : $url\");
  exit;
?>
\' end of file
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 23:41 #54
Sådan ser filen ud nu! Men mit link virker stadig ikke!
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 23:42 #55
meget mystiskt...
kan du prøve at smide
echo $sql
før linien med header
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 23:43 #56
DOG, jeg mente $url og ikke $sql
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 23:47 #57
og så skal jeg sættes et ; efter echo $url
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 23:47 #58
Skal linket fra den alm. html-fil ikke så sådan ud?

http://www.ergonet.dk/links/redirect.php?id=1
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 23:50 #59
redirect.php?id=1 er rigtigt nok, men den ligger vel stadig i linkreg ? (du kan godt flytte den over i /links hvis du vil)

men prøv at kigge på det jeg har skrevet for et par min siden :-)
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 23:54 #60
Jeg har skrevet: echo $url; i linien efter header.
Prv at se!
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 23:55 #61
Ups før ikke efter!
Avatar billede hhjensen Nybegynder
29. oktober 2001 - 23:57 #62
Næh. Det var da det jeg havde gjort!
Avatar billede long_island_ Nybegynder
29. oktober 2001 - 23:58 #63
jeg har fundet fejlen nu....


\' redirect.php
<?
  $conn = mysql_connect(\"xxxx\",\"xxxx\",\"xxxx\");
  mysql_select_db(\"xxxx\",$conn);
 
  $sql=\"SELECT * FROM my_table WHERE ID=$id\";
  $row=mysql_fetch_row(mysql_query($sql));
  $clicks=$row[2];
  $url=$row[1];
  $clicks++;

  $sql=\"UPDATE my_table SET clicks=$clicks WHERE ID=$id\";
  mysql_query($sql);

  $header=\"Location: \" . $url;
  header($header);
  exit;
?>
\' end of file
Avatar billede hhjensen Nybegynder
30. oktober 2001 - 00:01 #64
Så er den der!
Avatar billede hhjensen Nybegynder
30. oktober 2001 - 00:02 #65
Tusind tak for hjælpen!
Avatar billede long_island_ Nybegynder
30. oktober 2001 - 00:03 #66
Det var så lidt, meget rart lidt at få frisket det lidt op - håber der er et par ekstra point i det :-)
Avatar billede hhjensen Nybegynder
30. oktober 2001 - 00:04 #67
Et lille tillægsspørgsmål!
Avatar billede long_island_ Nybegynder
30. oktober 2001 - 00:05 #68
Ja ?
Avatar billede hhjensen Nybegynder
30. oktober 2001 - 00:07 #69
Kan det lade sig gøre at integrere oplysningerne om clicks på selv HTML siden? Altså så der hele tiden står hvor mange der har klikket på de forekellige links!

Jeg skal ikke ha´ den store forklaring, bare om det kan lade sig gøre!
Avatar billede long_island_ Nybegynder
30. oktober 2001 - 00:09 #70
Det kan sagtens lade sig gøre, prøv at kigge lidt på koden i show_url.php, så kan det være du kan gennemskue hvordan, ellers så må du lige sige til
Avatar billede hhjensen Nybegynder
30. oktober 2001 - 00:10 #71
Oki! Det kan være jeg vender tilbage imorgen aften!

Endnu engang tak for hjælpen!
Avatar billede long_island_ Nybegynder
30. oktober 2001 - 00:12 #72
Det var så lidt, tak for de ekstra point :-)
Avatar billede hhjensen Nybegynder
30. oktober 2001 - 00:12 #73
Håber du er tilfreds med aflønningen!
Avatar billede hhjensen Nybegynder
30. oktober 2001 - 19:10 #74
long> G´aften!
Jeg har kigget på show_url.php og har en formodning om at man skal sætte noget fra den ind i HTML dokumentet! Men lige hvordan?
Hvis du har tid i løbet af aftenen opretter jeg et nyt spørgsmål!
Avatar billede long_island_ Nybegynder
30. oktober 2001 - 20:22 #75
Jeg har tid om en times tid - skal også lige have hørt om jeg har forstået opgaven rigtigt
Avatar billede hhjensen Nybegynder
30. oktober 2001 - 20:45 #76
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester