Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Klikkaukset?

Sivun loppuun

Jamma [29.08.2002 11:58:42]

#

Olen etsinyt jo tunnin tollasta mutta ei löydy. Eli kun klikkaa jotain linkkiä niin se kirjaa txt tiedostoon sen linkin klikkaukset. esim:

http://www.sunsivu.com/click.php?http://www.fi

aina kun joku klikkaa tota niin se pistää + 1 txt tiedostoon.

mikko [29.08.2002 12:42:27]

#

Tunnissa kerkeet tehdä ton ite ja kaikkee muutakin siinä sivussa.

Antti [30.08.2002 11:26:55]

#

Milläköhän kielellä? JavaScript? ASP? etc.

pistemies [30.08.2002 15:37:50]

#

lainaus:

/click.php?http://www.fi

aina kun joku klikkaa tota niin se pistää + 1 txt tiedostoon.

Kyse on php-kielestä.

thefox [30.08.2002 18:35:22]

#

Ja JavaScriptillä tuo ei edes olisi mahdollinen. Sanotaanko näin että muutaman viikon PHP opettelun jälkeen (mikkot:ia lainatakseni):

lainaus:

Tunnissa kerkeet tehdä ton ite ja kaikkee muutakin siinä sivussa.

Antti [31.08.2002 12:53:16]

#

fawkz: Kyllä vain on mahdollista, jos suoritat Javascriptin serverin päässä. "Language=JavaScript Runat=Server"

thefox [31.08.2002 13:09:00]

#

Onko näin? Kaikkea sitä oppii kun vanhaksi elää.
Mutta kyllä PHP silti pieksää JavaScriptin 10-0.

Antti [31.08.2002 13:24:39]

#

Ei ihan noinkaan... koska se suoritetaan samalla tavoin palvelimen päässä ei tehoeroa juurikaan ole ja yhdistämällä sen suoraan komponentteihin (COM+ tai JavaBeans) saat melkoisen suorituskyvyn... koska tällöin koodia ei enää "scriptata" eli tulkata vaan se on käännetty binääriksi.

thefox [31.08.2002 15:19:16]

#

Joo mutta voihan PHP:nkin kanssa käyttää DLL:iä ja ties mitä. Ja silloinkin leikitään binäärien kanssa.
Kielenä PHP C-kaltaisuutensa vuoksi IMHO pieksää JavaScriptin 10-0.
Mutta tämä on taas yksi asia josta on varmaan turha tapella.. jokainen tallaa tavallaan..

Antti [02.09.2002 12:09:54]

#

Juuh... ja kun asiaa tarkastellaan tuolta kantilta niin Javascript perustuu Javaan syntaxiltaan. Eli se on javan kaltaista... Java taas on paranneltu malli C++:sta....

No oli miten oli... en minäkään koskaan sitä JavaScriptiä käytä muualla kuin clientin päässä... pointtihan oli vain se, että tuo koodi on mahdollista silläkin...

thefox [02.09.2002 15:44:43]

#

JavaScript ei ole mitenkään yhtä monipuolinen kuin Java tai C++. Toisaalta jos se olisi liian monipuolinen niin koodauskynnys voisi nousta.. että se on parhaimmillaan varmaan noin kohtalaisen yksinkertaisena.
Väitän edelleen että vaikka JavaScript löysästi pohjautuu Javaan (jonka syntaksi hieman enemmän pohjautuu C++:n..) niin PHP on varmasti monipuolisempi JA parempi kuin JavaScript (puhutaan nyt toki siis server-side stuffista).
Tämä keskustelu voi minun puolestani päättyä tähän.

trinit [02.09.2002 15:44:54]

#

lainaus:

Olen etsinyt jo tunnin tollasta mutta ei löydy. Eli kun klikkaa jotain linkkiä niin se kirjaa txt tiedostoon sen linkin klikkaukset. esim:

http://www.sunsivu.com/click.php?http://www.fi

aina kun joku klikkaa tota niin se pistää + 1 txt tiedostoon.

Haluatko niin, että klikatessa mitä tahansa linkkiä niin yhdessä tekstitiedostossa olevaa laskuria kasvatetaan yhdellä? Vaiko niin, että jokaiselle linkille on omat laskurinsa?

Seuraava esimerkki kasvattaa laskurin arvoa laskuri.txt tiedostossa. Laskurin arvoon lisätään aina yksi oli linkin osoite mikä tahansa.

<?php
// ----- click.php -----

$link = $_GET['url'];

if (file_exists("laskuri.txt"))
{
    // Luetaan edellinen laskurinarvo muistiin
    $ff = fopen("laskuri.txt", "r") or exit("laskuri.txt tiedoston avaus epäonnistui!");
        $tmp = trim(fgets($ff, 100));
        $tmp++;         // Lisätään laskuria yhdellä
    fclose($ff);

    $ff = fopen("laskuri.txt", "w") or exit("laskuri.txt tiedoston avaus epäonnistui!");
        fwrite($ff, $tmp);  // Kirjoitetaan laskurin arvo tiedostoon
    fclose($ff);

    header("Location: " . $link);
}
else
{
    $ff = fopen("laskuri.txt", "w") or exit("laskuri.txt tiedoston avaus epäonnistui!");
        fwrite($ff, "1");  // Kirjoitetaan laskurin arvo tiedostoon
    fclose($ff);

    header("Location: " . $link);
}

?>

Sitten jollakin html-sivulla on esimerkiksi tällainen sisältö:

<html>
<head><title>Testi sivu</title></head>
<body>
Tästä pääset <a href="click.php?url=https://www.ohjelmointiputka.net">Ohjelmointiputkaan</a>
</body>
</html>

TETRIS [07.09.2002 13:12:17]

#

No mites sitten sellanen ku jotain tiettyä painaa nii se lisää tiettyyn txt:hen yhen?

trinit [07.09.2002 17:02:02]

#

Vaikka niin että esim. tuossa laskuri.txt:ssä on kaikki linkit allekkain omilla riveillään ja niiden perässä on yhtäkuin merkillä erotettu klikkausten määrä, esim:

-- laskuri.txt --

https://www.ohjelmointiputka.net = 1
http://www.google.com = 0

Tuossa siis ensimmäistä linkkiä on klikattu yhden kerran ja toista ei vielä kertaakaan. Esimerkkiä en ala tuosta kirjoittamaan koska siitä tulisi aika pitkä.

Olen jokin aika sitten tehnyt linkkihakemiston joka lisäsi käyttäjien antamia osoitteita sekä kuvauksia (eli kertomus linkin sisällöstä) tiedostoihin. Linkkihakemisto piti myös kirjaa klikkausten määrästä. Kun linkkiä klikattiin linkkihakemisto päivitti ensin klikkausten määrän ja sen jälkeen ohjasi sille sivulle - yhteensä koodirivejä tuli n. 100 (kai sen pienempääkin tilaan saisi) siihen skriptiin joka tuon hoiti.

TETRIS [07.09.2002 19:11:20]

#

Danke :)

TETRIS [08.09.2002 19:55:10]

#

Entäs mites sellasen coden vielä sais et se näyttää ne klikkasten määrät (niin ku sä kait tossa jus kerroit) eli tähän styleen :
Ohjelmointiputka = 1

trinit [09.09.2002 21:09:24]

#

Mikäli linkit ja klikkausten määrä on esitelty laskuri.txt:ssä allekkain ja = -merkillä erotettuina kuten kirjoitin edellisessä viestissä, niin jotenkin näin se varmaan menisi (en ole testannut):

<?php

  $ff = fopen("laskuri.txt", "r") or exit("virhe");
    while (!feof($ff))
    {
      $rivi = trim(fgets($ff, 1024));
      $linkstat = explode("=", $rivi);
      echo "Linkkiä " . $linkstat[0] . " on klikattu " . $linkstat[1] . " kertaa";
    }
  fclose($ff);

?>

snakari [11.09.2002 21:05:15]

#

mieluummin näin:

<?php
$f=@file("laskuri.txt") or die("virhe");
for ($rivi=0; $rivi<count($f); $rivi++)
{
 $linkki=explode("=", trim($f[$rivi]));
 echo 'linkkiä '.$linkki[0].' on hiplailtu '.$linkki[1].' kertaa<br>';
}
}
?>

snakari [11.09.2002 21:05:50]

#

ei nyt paljon eroa, mutta mun mielestä tää on toimivampi

trinit [12.09.2002 18:22:26]

#

lainaus:

ei nyt paljon eroa, mutta mun mielestä tää on toimivampi

No joo, kyllä se noinkin menee ihan hyvin. Mutta mikäli laskuri.txt alkaa kasvamaan kovin suureksi niin silloin tuo vie palvelimelta muistia ja mikäli se loppuu tulee virheilmoituksia.

snakari [12.09.2002 18:33:50]

#

no joo

TETRIS [14.09.2002 10:44:13]

#

Eikös sit jos on monta linkkiä niin se mee jotenki näin :

<?php
$f=@file("laskuri.txt") or die("virhe");
for ($rivi=0; $rivi<count($f); $rivi++)
{
$linkki=explode("=", trim($f[$rivi]));
echo 'linkkiä '.$linkki[0].' on hiplailtu '.$linkki[1].' kertaa<br>';
}
}

$f=@file("laskuri.txt") or die("virhe");
for ($rivi=1; $rivi<count($f); $rivi++)
{
$linkki=explode("=", trim($f[$rivi]));
echo 'linkkiä '.$linkki[1].' on hiplailtu '.$linkki[1].' kertaa<br>';
}
}
?>

(tosin tuo varmasti bugaa eli saisko vähän helppiä)

TETRIS [14.09.2002 10:46:30]

#

Miten tollasen kaksi rivisen jutun vois tehä eli näin :

Ohjelmointiputka 2 klikkausta
Google 8 klikkausta
jne...

trinit [14.09.2002 21:08:14]

#

Sen pitäisi mennä ihan tuolla esimerkillä minkä viimeksi kirjoitin - olettaen että linkit ovat allekkain tiedostossa ja niiden klikkausmäärät on eroteltu = -merkillä osoitteesta. Esimerkki toimii myös useammalla kuin kahdella linkillä, koska laskuri.txt tiedostoa luetaan niin kauan kunnes tulee EOF.

Pistetään nyt vielä kerran se tähän:

<?php
    $ff = fopen("laskuri.txt", "r") or exit("virhe");
    while (!feof($ff))
    {
        $rivi = trim(fgets($ff, 1024));
        $linkstat = explode("=", $rivi);
        echo "Linkkiä " . $linkstat[0] . " on klikattu " . $linkstat[1] . " kertaa<br>";
    }
    fclose($ff);
?>

Enkä sitten ole testannut tuota, mutta noin sitä lähtisin itse tekemään.

trinit [14.09.2002 21:10:05]

#

Jaahas, tuosta kohdasta jossa lukee " kertaa puuttuu <br> tagi. Eli sen rivin pitäisi olla tällainen:

echo "Linkkiä " . $linkstat[0] . " on klikattu " . $linkstat[1] . " kertaa<br>";

snakari [15.09.2002 12:36:00]

#

tossa mun linkit-scriptissä käytetän mun itte tekemää viritystä

TETRIS [15.09.2002 18:29:43]

#

Voisitteko kertoa tarkemmin eli että scriptissä olisi ne kaksi kohtaa esim :

Linkkiä https://www.ohjelmointiputka.net on klikattu 3 kertaa
Linkkiä http://www.google.com on klikattu 1 kertaa

eikä vaan yhtä kuten edellisessä :(

snakari [15.09.2002 18:53:37]

#

jos osaisit selittää, mää en tajunnu tosta mitään

trinit [15.09.2002 20:24:18]

#

lainaus:

Voisitteko kertoa tarkemmin eli että scriptissä olisi ne kaksi kohtaa

No tuossahan se esimerkki jo tuli yhden kerran.

Olen nyt ymmärtänyt kysymyksesi niin, että haluat tulostaa sivulle kaksi tai useampaa linkkiä joissa lukee esim. "Linkkiä https://www.ohjelmointiputka.net on klikattu 3 kertaa" jne. Vai olenko väärässä?

Jos olen oikeassa niin silloin yo. esimerkki toimii haluamallasi tavalla. Se lukee laskuri.txt tiedostoa läpi rivi riviltä ja jokaiselta riviltä luetaan linkin osoite ja kuinka monta kertaa sitä on klikattu. Kokeile vaikka tehdä laskuri.txt joka sisältää:

https://www.ohjelmointiputka.net=2
http://www.google.com=3

ja sen jälkeen teet vaikka testi.php tiedoston joka taas sisältää nämä:

<?php
    $ff = fopen("laskuri.txt", "r") or exit("virhe");
    while (!feof($ff))
    {
        $rivi = trim(fgets($ff, 1024));

        if ($rivi <> "")
        {
            $linkstat = explode("=", $rivi);
            echo "Linkkiä " . $linkstat[0] . " on klikattu " . $linkstat[1] . " kertaa<br>";
        }
    }
    fclose($ff);
?>

Tämän esimerkin testasin omalla koneella ja se toimi niin kuin piti eli tulosti rivit:

Linkkiä https://www.ohjelmointiputka.net on klikattu 2 kertaa
Linkkiä http://www.google.com on klikattu 3 kertaa

trinit [15.09.2002 20:26:26]

#

Foorumi hukkasi yhden koodi-tagin mutta kyllä tuosta selvän saa...

TETRIS [15.09.2002 21:15:21]

#

Joo kyllä mä sen tiesin et toi noin toimii mut miten sen sai sillai et siinä lukee :

Linkkiä ohjelmointiputka on klikattu 3 kertaa

snakari [15.09.2002 21:19:40]

#

jos sää teet vaikka tälläsen siitä teksti-tiedostosta:
sivun url=klikkaukset=sivun nimi, niin sit se onnistuu näin:

<?php
$ff = fopen("laskuri.txt", "r") or exit("virhe");
while (!feof($ff))
{
$rivi = trim(fgets($ff, 1024));

if ($rivi <> "")
{
$linkstat = explode("=", $rivi);
echo "Linkkiä " . $linkstat[2] . " on klikattu " . $linkstat[1] . " kertaa<br>";
}
}
fclose($ff);
?>

TETRIS [16.09.2002 18:16:25]

#

Oliskos sit toi laskuri.txt seuraavan näkönen :

sivun url=https://www.ohjelmointiputka.net sivun nimi=Ohjelmointi putka
sivun url=http://www.google.com sivun nimi=Google

jos ei oo niin minkäs lainen sit

snakari [16.09.2002 18:37:31]

#

aivomoottori!!
http://www.ohjelmointiputka=1=Ohjelmointi Putka
http://www.google.com=19=Kuukle

trinit [16.09.2002 21:05:11]

#

lainaus:

jos ei oo niin minkäs lainen sit

Kuten snakari on viimeksi kirjoittanut, sen laskuri.txt tiedoston sisältö pitää olla muodossa sivun_url=klikkaukset=sivun_nimi. Tällöin jos laskuri.txt tiedostosta luetaan esim. rivi:

https://www.ohjelmointiputka.net=1=Ohjelmointiputka

niin PHP-skripti tulostaa "Linkkiä Ohjelmointiputka on klikattu 1 kertaa". Kannattaa tutustua PHP manuaaleihin etenkin explode() funktion osalta - se selvittää aika paljon tätä aihetta.

TETRIS [18.09.2002 16:08:08]

#

Entäs tän näkönen tilasto juttu mitenkäs se :

Ohjelmointiputka 1 klikkaus

(eli tässä tapauksessa toi Ohjelmointiputka on siellä txt:ssä)

snakari [18.09.2002 18:25:01]

#

ei vittuuuuuuu!
tässä on nyt se koodi:

<?php
$ff = fopen("laskuri.txt", "r") or exit("virhe");
while (!feof($ff))
{
$rivi = trim(fgets($ff, 1024));

if ($rivi <> "")
{
$linkstat = explode("=", $rivi);
echo $linkstat[2] ." ". $linkstat[1] . " klikkaus";
}
}
fclose($ff);
?>

thefox [19.09.2002 17:45:43]

#

Eiköhän tämän keskustelun voisi lopettaa ja antaa TETRIKsen opetella PHP:n salat ihan itse.

trinit [19.09.2002 18:38:04]

#

lainaus:

Eiköhän tämän keskustelun voisi lopettaa ja antaa TETRIKsen opetella PHP:n salat ihan itse.

Joo, olen samaa mieltä. TETRIS kyselee nyt samaa asiaa hieman eri tavalla joka kerta. Ja Tetrikselle: tutustu siihen PHP:n manuaaliin ja lue sieltä miten explode() funktio toimii - eikä pahitteeksi olisi opetella muitakin asioita sieltä ;)

snakari [19.09.2002 18:45:21]

#

ja voisit jättää tosta scriptistä sen "(C)opyright TETRIS 2002" tekstin pois :D

TETRIS [20.09.2002 19:59:22]

#

Öööööh en edes aikonu laittaa siihen sellasta ja olen jo aikeissa vähän lukasta sitä manualii...

snakari [22.09.2002 18:10:07]

#

lainaus:

Öööööh en edes aikonu laittaa siihen sellasta ja olen jo aikeissa vähän lukasta sitä manualii...

ehkä toi oli vitsi :D

arcatan [30.09.2002 18:36:13]

#

lainaus:

ja voisit jättää tosta scriptistä sen "(C)opyright TETRIS 2002" tekstin pois :D

Tää on ihan pakko sanoa, mutta sähän se olet tuon paras sanomaan ;). Varmaan kaikissa snakarin koodinvinkeistä lyötyy tekijän nimi jota ei saa poistaa.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta