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.
Tunnissa kerkeet tehdä ton ite ja kaikkee muutakin siinä sivussa.
Milläköhän kielellä? JavaScript? ASP? etc.
lainaus:
/click.php?http://www.fi
aina kun joku klikkaa tota niin se pistää + 1 txt tiedostoon.
Kyse on php-kielestä.
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.
fawkz: Kyllä vain on mahdollista, jos suoritat Javascriptin serverin päässä. "Language=JavaScript Runat=Server"
Onko näin? Kaikkea sitä oppii kun vanhaksi elää.
Mutta kyllä PHP silti pieksää JavaScriptin 10-0.
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.
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..
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...
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.
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>
No mites sitten sellanen ku jotain tiettyä painaa nii se lisää tiettyyn txt:hen yhen?
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.
Danke :)
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
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):
mieluummin näin:
ei nyt paljon eroa, mutta mun mielestä tää on toimivampi
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.
no joo
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ä)
Miten tollasen kaksi rivisen jutun vois tehä eli näin :
Ohjelmointiputka 2 klikkausta
Google 8 klikkausta
jne...
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.
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>";
tossa mun linkit-scriptissä käytetän mun itte tekemää viritystä
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ä :(
jos osaisit selittää, mää en tajunnu tosta mitään
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
Foorumi hukkasi yhden koodi-tagin mutta kyllä tuosta selvän saa...
Joo kyllä mä sen tiesin et toi noin toimii mut miten sen sai sillai et siinä lukee :
Linkkiä ohjelmointiputka on klikattu 3 kertaa
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); ?>
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
aivomoottori!!
http://www.ohjelmointiputka=1=Ohjelmointi Putka
http://www.google.com=19=Kuukle
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
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.
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ä)
ei vittuuuuuuu!
tässä on nyt se koodi:
Eiköhän tämän keskustelun voisi lopettaa ja antaa TETRIKsen opetella PHP:n salat ihan itse.
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ä ;)
ja voisit jättää tosta scriptistä sen "(C)opyright TETRIS 2002" tekstin pois :D
Öööööh en edes aikonu laittaa siihen sellasta ja olen jo aikeissa vähän lukasta sitä manualii...
lainaus:
Öööööh en edes aikonu laittaa siihen sellasta ja olen jo aikeissa vähän lukasta sitä manualii...
ehkä toi oli vitsi :D
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.