Kirjautuminen

Haku

Tehtävät

Kilpailu

Murra koodi!
Lue ja osallistu!
Voittajia 1 + yrittäjiä 1

Keskustelu: Nettisivujen teko: Laskuri sivulle

verkko2022 [14.03.2022 08:22:12]

#

Vielä...

Tutkin alla olevaa laskuria. Laskuri toimii(näen tuloksen haluamallani sivulla), mutta minne ihmeessä tieto käynneistä tallentuu??? .txt tiedosto näyttää tyhjältä?

hitcounter.txt
counter.php

<?php
$count_my_page = ("hitcounter.txt");
$hits = file($count_my_page);
$hits[0] ++;
$fp = fopen($count_my_page , "w");
fputs($fp , "$hits[0]");
fclose($fp);
echo $hits[0];
?>
<?php
include ("counter.php");
?>

Jere Sumell [20.03.2022 08:00:32]

#

Onko tämä tätä päivää ja oletko tosissasi.

Mitä järkeä kävijämäärää on tallentaa palvelimella sijaitsevaan .txt -tiedostoon, tekniikka haiskahtaa jostain WWW:n alkumetreiltä poimitulta.

Turvallisuusnäkokulmasta tuon kävijälaskurisi saa heittämään härän takamusta, kun kohdistaa ja valjastaa robotin tuohon .php tiedostoon, kutsuja lähettää, niin sittenhän kävijälaskuri ei enää mitenkään todenmukaisuutta kerro. Siitä puhumattakaan, että ulkopuolelta joku manipuloisi tuota .txt -tiedostoa, jossa tuo kävijoiden lukumäärä sijaitsee kovakoodattuna.

Samat ongelmat, vaikka toteuttaisit vieraskirjan php:llä, jossa tallentaisit .txt -tiedostoon vieraskirjaan kirjottavien postaukset.

Jos sivusi sijaitsee jollain verkkoisännällä, ne tarjoavat riittävän kattavat tilastot sivun liikenteestä, ja paljon muuta, ja jos ylläpidät itse palvelinta, jonka olet liittänyt julkiseen verkkoon edes osittain, niin kannattanee tutustua esim. avoimen lähdekoodin vapaisiin verkkoisäinnointi -hallintapaneeleihin, ja melkein kannattaa käyttää sellaista.

Yksi suora linkki ja verkkolähde voisi olla esim.

Suora linkki erääseen Open Source Web Hosting Control panel -esittelysivuun

Joka tuossa äkkiseltään tuli vastaan, valitse joku noista, jota tuolla saitilla on listattuna.

Mitä tulee tuohon koodiisi, niin tuo $hits[0] on muuttuja, joka viittaa tuohon hits-muuttujan ensimmäiseen alkioon, niin sitten kuitenkin tuossa fputs -metodin toisena syoteparametrina annat merkkijonon, yritä poistaa nuo lainausmerkit tuosta fputs -toisen syoteparametrin ympäriltä, niin php käsittää sen muuttujana.

Sitten sinun pitäisi tulostaa tiedostosta luettuna se kävijämäärä, eikä muuttujaa, se olisi loogisempaa.

Joka tapauksessa, unohda kävijälaskurin toteuttaminen tekstitiedoston välityksellä sama millä kielellä ohjelmoit, se lienee järkevintä. Vai miksi lähdit tätä näin toteuttamaan.

noutti [27.03.2022 19:20:04]

#

Mihin tarvitset kävijälaskuria? Haluatko näyttää kävijöille tuosta infoa vai itseäsi varten?

Metabolix [28.03.2022 08:16:36]

#

verkko2022 kirjoitti:

minne ihmeessä tieto käynneistä tallentuu??? .txt tiedosto näyttää tyhjältä?

Koska annat pelkän tiedostonimen ilman polkua, tieto tallentuu työhakemistoon, jonka näet getcwd-funktiolla. Yleensä tämä on sama kuin ensimmäisen skriptin kansio, eli jos sivu on koodit/omasivu/testi.php, niin työhakemisto on tuolla, vaikka includella liitettäisiin muita tiedostoja. Kannattaa antaa kokonainen polku virheiden välttämiseksi: esimerkiksi vakio __DIR__ sisältää nykyisen PHP-tiedoston kansion, jota voi käyttää polun alkuosana.

Vastaus

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

Tietoa sivustosta