Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Kun nettisivun lähdekoodi on peitetty

Sivun loppuun

riksu [15.05.2018 21:39:48]

#

1. Millaisella koodilla on mahdollista hakea tietoa sivulta, jossa lähdekoodi on peitetty, mutta kuitenkin luettavissa normaalisti?
Esimerkiksi file_get_contents funktio siihen ei kykenee.

var_dump funktiolla saa vain sen verran tietoa irti: string(4652) "
" eli lähes ei mitään.

2. Miten lähdekoodi peitetään?

3. Onko mahdollista peitetty lähdekoodi saada näkyviin? Miten?

Metabolix [15.05.2018 21:58:30]

#

1. Tulosta lähdekoodi näkyvänä tekstinä esim. seuraavasti:

<?php
header("Content-Type: text/plain; charset=UTF-8");
echo file_get_contents($osoite);

Tai HTML:n seassa:

2. Ei ole mahdollista ”peittää” lähdekoodia. Et vain ole osannut tulostaa sitä sopivalla tavalla (tai lukea tulostetta oikein).

3. Kysymys on viallinen.

Jaska [15.05.2018 22:01:27]

#

Mitä tarkoitat peitetyllä lähdekoodilla? Kakkoskysymyksen perusteella luulisin, että sinulla on joku idea siitä, mikä on selvä ja peitetty lähdekoodi mutta tarvittava muunnos puuttuu.

Jotain ideaa voi olla Stackoverflow'n kysymyksestä.

riksu [15.05.2018 22:56:41]

#

Sitä lähdekoodia, mitä haluan lukea on näkyvissä ainoastaan 1 rivi ja mikä yltää vähän yli puolen sivusta. Mutta koodia pitäisi olla paljon enemmän, koska sivulla on vähintään 3 sivua tekstiä. Sen takia luulen, että lähdekoodi on peitetty jollain tavalla.

Valitettavasti Metabolixin neuvosta sain saman verran irti, kuin käytin
Ctrl+U-ta enkä saa koko lähdekoodia näkyviin. Koodista puuttuu suurin osa.

Onko mahdollista lukea jollain koodilla sellaista sivua, missä on taulukko- muodossa tekstiä, mutta lähdekoodia sille ei ole saadavilla?

Metabolix [15.05.2018 23:12:55]

#

Onko mahdollista, että ongelmasi olisi se, että file_get_contents hakee vain osan sivusta väärän HTTP-version takia? Se ongelma ratkeaa, kun PHP:n laittaa käyttämään HTTP/1.1-protokollaa. Asetuksen voi laittaa kaikkialle käyttöön näin:

stream_context_get_default(["http" => ["protocol_version" => 1.1]]);

peran [16.05.2018 09:07:52]

#

Toimiiko tämä tapa ?

google-chrome --headless --disable-gpu --dump-dom https://www.kettuilija.fi >Tulos.html

The Alchemist [16.05.2018 13:13:44]

#

Ei siinä mistään http-protokollan versiosta ole kyse, jos katsoo ctrl-u:lla lähdekoodia selaimessa ja se on "liian vähän". Riksu et vain ilmeisesti osaa yksinkertaisesti lukea kyseistä näkymään oikein.

Monet sivustot käyttävät myös paljon ajaxia, jolloin dynaaminen osa sisällöstä ei näy ctrl-u:lla vaan se voi olla kokonaan vaikka js:llä rakennettua dom-puuta. Tällöin voit mahdollisesti hakea sivulle syötetyn datan samasta lähteestä kuin mistä sivu itsekin sen hakee, kun vain katsot, että mihin osoitteisiin selain tekee pyyntöjä.

groovyb [16.05.2018 13:41:37]

#

Sivustoja voi myös tehdä todella monella tavalla. Jos sivusto on esimerkiksi tehty reactilla, ei body -tägin sisällä näy kuin bundlen lataus, ja kaikki html populoituu javascriptistä.

Metabolix [16.05.2018 17:06:32]

#

The Alchemist kirjoitti:

Ei siinä mistään http-protokollan versiosta ole kyse, jos katsoo ctrl-u:lla lähdekoodia selaimessa ja se on "liian vähän".

Paitsi jos katsoo ctrl-u:lla sen oman sivun lähdekoodia, johon on yrittänyt file_get_contentsilla hakea toisen nettisivun. Ei näistä sähläreistä voi koskaan tietää.

Yksinkertaisinta olisi antaa linkki siihen luettavaan sivuun, niin voitaisiin lopettaa arvailu ja katsoa, mitä sieltä näkyy.

walkout_ [16.05.2018 18:04:01]

#

En tiedä tarkoitetaanko peitetyllä sivulla jollain salausohjelmalla salattuja sivuja. Jos tarkoitetaan HTML/CSS/JavaScriptin cryptausohjelmalla salattuja tiedostoja niin ei niitä mitenkään voi purkaa jos ei tiedä salausavainta. Minun tiedossa on ainakin yksi lisenssimaksullinen ohjelmisto, jolla voi cryptata HTML/CSS/JavaScript-koodin niin että käyttäjä joka selaimessa katsoo lähdekoodia niin ei saa siitämä mitään selvää.

Eli kun laittaa selaimessa "Näytä lähdekoodi" niin näkyy vain joku hash ja sitten selain puolen koodi mikä purkaa ks. hashin selaimelle. Ja sitä ei saa mistään mikä on taas palvelinpuolen avain hashin purkamiseen. Enkä tiedä miten tämä salattu koodi on edes salattu.

Lebe80 [18.05.2018 09:14:20]

#

Eikös sen pakko ole olla ilman avaintakin saatavilla, jotta selain osaa sitä käyttää.

Ymmärrän kyllä, jos puhutaan jostain obfuskoinnista, jossa selkeät muuttujanimet on lyhennetty epäluettaviksi merkkijonoiksi, jolloin ihmissilmän on aikaavievää alkaa selvittää mitä gNfg53bBrfs5 -muuttujalla tehdään tai gte63fds3 -funktio tekee, kun verrataan vaikkapa selkokielisiin ja hyvin kommentoituihin skripteihin.

mm. sivustoja murtavat haittaohjelmat sumentavat koodinsa, jottei yksinkertaisilla hakutoiminnoilla löytyisi esim. sivustolla näytettäviä linkkejä suoraan. Eli kripti ajetaan vaikkapa lopuksi php:n eval:in läpi yms.

Tällöinkin lähdekoodin saa helposti näkyville, jos on tarvetta.

Grez [18.05.2018 10:57:50]

#

Kuulostaa kyllä aika turhilta kaikenlaiset "salaussysteemit" jos käyttäjä kuitenkin saa sivun sisällön näkyvilleen. Avaa vaan kehittäjäkonsolin ja kopioi toteutuneen DOM-puun, niin on ihan samantekevää monenko "kryptauskierroksen" ja javascriptrenderöinnin kautta se on pyörähtänyt.

Jos selain osaa sivun näyttää näytöllä, niin sen saa kopioitua talteen.

HannuTapio [19.05.2018 00:00:03]

#

Obfuskointi,

Minulla on omilla sivuillani obfuskointi käytössä, olen valinnut koodin muuntelun, koska en ole ihan niin ammattilainen koodauksessa.

Eli, en ole ammattilainen koodaamisessa, ja silti minulla on aika hienot sivut, ja on varmaankin tilanteita joissa sitten ammattilais koodaajia voi käydä katsomassa sivuani ja samalla selaimen kautta myös koodiani.

Minun tarve vaihtaa koodin sanoja satunnaisiin on siis siksi, että, minun muuttuja ja functio nimi valinnat ovat alkeellisempia mitä kehittyneemmillä koodaajilla on, ja osin koodini näyttää tökeröltä ja siis alkeelliselta.

Minä olen javascript koodini obfuskannut omalla java ohjelmalla, jonka tein, ja lisänä minä käytän yhtä java open source ohjelmaa jolla obfuskaan sitten vielä toisen kerran koodini.

Eli, minulla on oma java ohjelma jolla peitän javascript koodini, ja tämän uuden koodin saa sitten palautettua takaisin, kun vaihtaa nämä uudet muuttuja ja funktio nimet takaisin ennalleensa, vaikkapa string.replace() käskyllä. :)

Kun palauttaa obfuskoitua koodia, täytyy tietää alkuperäisen koodin muuttuja ja funktio nimet.

:)

--

riksu [19.05.2018 22:03:38]

#

Olisin halunnut koodin avulla hakea sivulta reaaliaikaisia pörssikursseja, mutta pitää olla sisäänkirjautunut. Etsin reaaliaikaisia pörssikursseja mieluummin muualta, mihin pääse koodia lukemaan helpommin.

Myös nordnetin sivulta: Osakekurssit löytyy reaaliaikaiset pörssikursit, kun on sisäänkirjautunut, mutta kun haen niitä ohjelmalla niin huomaan, että ne onkin 15 min viivästyneitä. Mistä sellainen voi johtua, että silmillä näkee, että on reaaliaikaiset, mutta kun koodilla hakee niin ovat viivästyneitä? Aika kummallista.

Sitten toinen asia:
yritän simuloida kurssien hakemista automaattisesti tulostamalla tekstin "tämä on 3 min väli: " joka kolmas minuutti seuraavalla koodilla:

$alkuaika = strtotime('21.5.2018 10:00:00');
$loppuaika = strtotime('21.5.2018 18:30:00');
$väli3min = strtotime('1.1.1970 01:03:00');
$väli_1s = strtotime('1.1.1970 1:0:1');
echo 'Alkuaika on: '.date('d.m.Y H:i:s', $alkuaika);
echo '<br>';

for($i = $alkuaika; $i <= $loppuaika; $i += $väli3min )
	echo 'tämä on 3 min väli: '.date('d.m.Y H.i',$i).' <br>';

echo '<p>';
echo date('d.m.Y H.i');

mutta ohjelma tekee sen heti. Miten saan ohjelman tulostamaan tekstin tietyllä aikavälillä?

Grez [19.05.2018 22:11:37]

#

riksu kirjoitti:

Myös nordnetin sivulta: Osakekurssit löytyy reaaliaikaiset pörssikursit, kun on sisäänkirjautunut, mutta kun haen niitä ohjelmalla niin huomaan, että ne onkin 15 min viivästyneitä.

No olisiko vastausta tuossa minkä itsekin sanoit, eli ehkä ohjelmasi ei ole sisäänkirjautuneena.

riksu kirjoitti:

mutta ohjelma tekee sen heti. Miten saan ohjelman tulostamaan tekstin tietyllä aikavälillä?

No tuossa koodissasi ei ole mitään kohtaa, missä se odottaisi ajan kulumista, joten tietenkin se tekee kaiken heti.

Jos haluat että ohjelma tulostaa jotain vaikka 3 minuutin kuluttua, niin käske ohjelman odottaa 3 minuuttia.

sleep(180);

Lebe80 [21.05.2018 08:51:40]

#

Olisiko Nordnetin sivuilla 15minuutin cachetus sivulatauksilla, ja tiedot haetaan heti sivun latauduttua ajax:lla ja korvataan tiedot domiin?

Tai mitä ohjelmalla haettaessa tässä nyt tarkoittaakaan? Sovellusta? Käyttäisikö eri rajapintoja?

groovyb [21.05.2018 14:23:56]

#

https://api.test.nordnet.se

riksu [29.05.2018 12:48:36]

#

Voisiko joku auttaa tekemään koodia, millä pääse kirjautumaan https://www.nordnet.fi sivulle?

groovyb [30.05.2018 00:15:14]

#

esimerkiksi kutsulla https://www.nordnet.fi/graph/instrument/24/24347?from=2018-05-29&to=2018-05-29&fields=last,open,high,low,volume

saat haettua kurssi-informaation arvopaperille Trainers House Plc (TRH1V), tuloksen ollessa

[
    {
        "open": 0.1185,
        "high": 0.1185,
        "low": 0.1185,
        "last": 0.1185,
        "volume": 142,
        "time": 1527577200000
    },
    {
        "open": 0.1185,
        "high": 0.1185,
        "low": 0.1185,
        "last": 0.1185,
        "volume": 413,
        "time": 1527577260000
    },
    {
        "open": 0.117,
        "high": 0.117,
        "low": 0.117,
        "last": 0.117,
        "volume": 3000,
        "time": 1527577620000
    },
    {
        "open": 0.11,
        "high": 0.11,
        "low": 0.11,
        "last": 0.11,
        "volume": 1000,
        "time": 1527577980000
    },
    {
        "open": 0.11,
        "high": 0.11,
        "low": 0.11,
        "last": 0.11,
        "volume": 50,
        "time": 1527606660000
    }
]

linkki kuvankaappaukseen: https://pasteboard.co/Hntumf4.png

riksu [30.05.2018 08:42:37]

#

Tämä on hyvin kaunista ja yksinkertaista. Tätä nimenomaan tarvitsen. Näyttää siltä, että nämä luvut saisi suoraan taulukkoon.

Tarvitsen näistä vain "last", "volume" ja ajan, milloin luvut on haettu.
Saanko nämä luvut reaaliaikaisesti tietyin väliajoin (3min) kirjoitettu jotenkin taulukkoon, jotta saisin näitä käsitellä?

Lebe80 [30.05.2018 13:32:26]

#

riksu kirjoitti:

Saanko nämä luvut reaaliaikaisesti tietyin väliajoin (3min) kirjoitettu jotenkin taulukkoon, jotta saisin näitä käsitellä?

No saatko?

Ylläolevassa poustauksessa on suora urli tuohon rajapintakyselyyn josta vastaus tulee json-muodossa.

Arvatenkin kun tuosta urlista pudottaa kaikki muut paitsi last ja volumen, saat halutun vastauksen rajapinnalta:
https://www.nordnet.fi/graph/instrument/24/24347?from=2018-05-29&to=2018-05-29&fields=last,volume

riksu [30.05.2018 19:49:46]

#

Kiitos selityksestä, sen mä hoksasinkin.

Mutta minun pitää se url saada silmukkaan niin, että tiedon haku alkaa 10:00 ja loppuu 18:30 3 min välein. Ohjelman täytyy toimii 8,5 tuntia. Haluan reaaliaikaisesti kirjoittaa tulokset taulukkoon. Miten saisin sen fiksusti tehty?

Sitten en ymmärrä, miten aikanumero tulee sinne loppuun, kun "volume" on kyselyssä viiemisenä? Miten saan sen ajan ymmärrettävään muotoon?

groovyb [30.05.2018 22:46:12]

#

Taikasanoja (jos PHP:llä teet): PHP repeating interval timer, PHP convert unix timestamp, PHP json to array

Lisäys:

Pieni esimerkki Node.js:llä

Jos haluat testata koodia, tee seuraavat

1) Asenna Node ja npm jos puuttuu (https://nodejs.org/en/download/)
2) kopioi koodi vaikka app.js nimiseen tiedostoon
3) kirjoita kansiossa npm init ja läimi enteriä kunnes homma bueno
4) kirjoita kansiossa npm install request moment http
5) aja tiedosto kirjoittamalla node app.js
6) Mene selaimella osoitteeseen localhost:3000

const request = require('request');
const moment = require('moment');
const http = require('http');

var requestListener = function (req, res) {
  res.writeHead(200);
  setInterval(function() {
    fetchData(res);
  }, 3000)
}

var server = http.createServer(requestListener);
var url = 'https://www.nordnet.fi/graph/instrument/24/24347?from=2018-05-29&to=2018-05-29&fields=last,open,high,low,volume';
server.listen(3000, function() { console.log("Listening on port 3000")});

function fetchData(res) {
    request
    .get(url, function(error,response) {
      var data = JSON.parse(response.body);
      for(var item of data) {
          var time = moment(item.time).format('DD.MM.YYYY hh:mm:ss');
          res.write('*****************************************\n');
          res.write('Stock name: Trainers House Plc (TRH1V)\n');
          res.write('Fetch time: ' + time + '\n');
          res.write('Open: ' + item.open + '\n');
          res.write('Low: ' + item.low + '\n');
          res.write('High: ' + item.high + '\n');
          res.write('Last: ' + item.last + '\n');
          res.write('Volume: ' + item.volume + '\n');
          res.write('*****************************************\n');
      }
    });
}

riksu [31.05.2018 09:34:31]

#

Kiitoksia oikein paljon tästä kaikesta vaikka ei ihan ymmärrä kaikkea vielä.
Nyt tuli motivaatiota oppia myös javascriptiä. Javascript varmaan täytentää PHP:tä aika mukavasti. Nyt vaan jatkaan PHP:n oppimistä ja sitten javascriptin kimppuun.

jalski [31.05.2018 10:16:16]

#

riksu kirjoitti:

Kiitoksia oikein paljon tästä kaikesta vaikka ei ihan ymmärrä kaikkea vielä.
Nyt tuli motivaatiota oppia myös javascriptiä. Javascript varmaan täytentää PHP:tä aika mukavasti. Nyt vaan jatkaan PHP:n oppimistä ja sitten javascriptin kimppuun.

Huomioi, että omassa sovelluksessasi joudut url:n päiväyksen rakentamaan merkkijonoon ohjelmallisesti itse. Saamasi groovyb:n esimerkki hakee aina toukokuun 29. 2018 dataa. Lisäksi joudut tarkastamaan millä aikavälillä yrität hakea dataa.

Itse hoitaisin homman 8th ohjelmointikielellä helposti ilman servereitä. Bonuksena sovellukseen saisi pienellä vaivalla ammattimaisen näköisen graafisen käyttöliittymän ja se toimisi natiivina sovelluksena useimmissa käyttöjärjestelmissä, mukaan lukien puhelin alustat.

groovyb [31.05.2018 10:40:56]

#

nodejs:llä ei toki servereitä tarvita, yhtähyvin voisi vain intervallissa kutsua funktiota joka kirjoittaa konsolin lokiin. Esimerkillä koitin vastata esimerkkinä esiinnousseisiin kysymyksiin (intervalliajastin, unix timestamp muunto sekä json -datan käyttöä). En suinkaan tehnyt kokonaan toimivaa sovellusta. Isoin kysymys tuossa on vielä itse yritysparameterit (yllä 24 ja 24347), jota dataa en löytänyt mistään muualta kuin selaimen kautta yksi kerrallaan napsuttelemalla ja network dataa tutkimalla.

Koodi ilman web -serveriä:

const request = require('request');
const moment = require('moment');

setInterval(function() {
  fetchData();
}, 3000)

var url = 'https://www.nordnet.fi/graph/instrument/24/24347?from=2018-05-29&to=2018-05-29&fields=last,open,high,low,volume';

function fetchData() {
    request
    .get(url, function(error,response) {
      var data = JSON.parse(response.body);
      for(var item of data) {
          var time = moment(item.time).format('DD.MM.YYYY hh:mm:ss');
          console.log('*****************************************\n');
          console.log('Stock name: Trainers House Plc (TRH1V)\n');
          console.log('Fetch time: ' + time + '\n');
          console.log('Open: ' + item.open + '\n');
          console.log('Low: ' + item.low + '\n');
          console.log('High: ' + item.high + '\n');
          console.log('Last: ' + item.last + '\n');
          console.log('Volume: ' + item.volume + '\n');
          console.log('*****************************************\n');
      }
    });
}

jalski [31.05.2018 17:40:36]

#

groovyb kirjoitti:

Isoin kysymys tuossa on vielä itse yritysparameterit (yllä 24 ja 24347), jota dataa en löytänyt mistään muualta kuin selaimen kautta yksi kerrallaan napsuttelemalla ja network dataa tutkimalla.

Näin päättelinkin, itselläni nettipuolen ohjelmointi on jäänyt olemattomalle tasolle.

Alla saman tapainen esimerkki 8th ohjelmointikielellä:

needs net/http
needs date/utils


"https://www.nordnet.fi/graph/instrument/24/24347?from=%s&to=%s&fields=last,open,high,low,volume" var, url
var fetch-task


: get-data
  repeat
    d:new d:ymd nip dup url @ s:strfmt net:get if
      swap
      "raw-headers" m:@ nip
      "response" m:@ nip
      "OK" s:= if
         json>
         null? not if
           ( nip "Stock name: Trainers House Plc (TRH1V)" . cr "time" m:@ d:msec> . cr "volume" m:@ "volume: " . . cr "last" m:@ nip "last: " . . cr cr ) a:each drop
           "****************************************" . cr
         else
           drop
         then
      else
        "Bad response." . cr
      then
    else
      "Unable to connect." . cr
    then
    180 sleep
  again ;


: clean-up
  fetch-task @ t:done? not if fetch-task @ 0 t:kill then ;


: app:main
  ' clean-up onexit
  ' get-data t:task fetch-task !
  con:key drop
  bye ;

riksu [02.06.2018 10:57:01]

#

Jäin miettimään rivin

groovyb kirjoitti:

https://www.nordnet.fi/graph/instrument/24/24347?from=2018-05-29&to=2018-05-29&fields=last,open,high,low,volume

osien(sanojen) järjestystä, miten see muodostetaan, jotta saan haettua sitä, mitä haluan. Esimerkiksi sana graph ja instrument. Miksi just nämä sanat ja tässä järjestyksessä.

Saisinko toisen esimerkin vaikka ohjelmointiputkan tältä sivulta? Pitää hakee kohta"riksu [15.05.2018 21:39:48]" käyttäen sama url metodia.

timoh [02.06.2018 14:47:26]

#

jalski kirjoitti:

Alla saman tapainen esimerkki 8th ohjelmointikielellä:

Jalski, katso sitten ette vaan mene levittelemään 8th-kielen benchmarkkeja! Nimittäin kielen lisenssiehdot sen kieltävät :D

https://8th-dev.com/com-license.html:

you may not: (h) publish any results of benchmark tests run on the Software to a third party without Licensor’s prior written consent;

[/offtopic]

Grez [02.06.2018 15:43:01]

#

riksu kirjoitti:

Miksi just nämä sanat ja tässä järjestyksessä.

Suunnilleen samasta syystä kuin nordnet on juuri nuo sanat juuri tuossa järjestyksessä. Eli sivuston tekijät ovat päättäneet niin.

Eli siis tekniikan ja käytänöjen puolesta voisi olla aivan hyvin jotkin muutkin sanat tai nuo sanat eri järjestyksessä.

Metabolix [02.06.2018 20:17:31]

#

riksu kirjoitti:

Miksi just nämä sanat ja tässä järjestyksessä.

Kai ymmärrät, että kyseessä on ihan vain nettiosoite eikä mikään tiedonhakutemppu. Nordnet on tehnyt palvelun, jossa tietystä osoitteesta saa osoiterivillä luetellut tiedot. Ihan niin kuin Ohjelmointiputkassa osoitteesta .../keskustelu/30631 saa tämän keskustelusivun. Sivun yksittäisiä osia ei voi hakea vain osoitetta muuttamalla.

Kysymyksistäsi näkee, että tämä projekti on sinulle vielä aivan liian vaikea: vaikka saat neuvoja haluamaasi ratkaisuun, et osaa käyttää niitä vaan pyydät vain lisää ”esimerkkejä” tai siis valmista koodia. Sinun kannattaisi opetella paljon lisää perusasioita ja harjoitella nettisivujen tekemistä yleisesti, jotta joskus pystyisit tekemään haluamasi ohjelmointiprojektin.

PHP:llä käytännössä et voi tehdä nettisivua, jossa koko päivän ajan haettaisiin silmukassa kolmen minuutin välein kursseja. PHP-skripti pitää käytännössä suunnitella niin, että se ajetaan kerralla alusta loppuun. Jos tietoa pitää hakea monta kertaa (eri kellonaikoihin), vanhat tiedot pitää tallentaa johonkin ja sivua pitää päivittää (eli skripti pitää ajaa uudestaan) seuraavaan kellonaikaan.

groovyb [03.06.2018 14:46:38]

#

Metabolix, toki tuon intervallihaun voisi tehdä ihan vaikka javascriptillä ja kutsua toista php scriptiä joka jäsentää tiedot haluttuun muotoon. Mutta totta, liian vaikea OP:lle todennäköisesti.

The Alchemist [03.06.2018 15:58:49]

#

No siihen intervalliin tarvitsee vain yhden metatagin html:ään... Käyttömukavuuden vuoksi olisi kuitenkin parempi, että tiedot haetaan backendissa erikseen ja sivupyynnön yhteydessä skripti hakee datansa välimuistista.

riksu [05.06.2018 20:47:31]

#

Metabolix kirjoitti:

PHP-skripti pitää käytännössä suunnitella niin, että se ajetaan kerralla alusta loppuun. Jos tietoa pitää hakea monta kertaa (eri kellonaikoihin), vanhat tiedot pitää tallentaa johonkin ja sivua pitää päivittää (eli skripti pitää ajaa uudestaan) seuraavaan kellonaikaan.

Tarkoitus olikin tallettaa tietoa aina, kun tietoa haetaan. Se ei ole ongelma. Ongelma on se, että saan haettu tiedon vain kerran ja siinä kaikki. Jos PHP ohjelmaa pitää ajaa kerralla alusta loppuun, niin miten saan haettu tiedon toistuvasti? Onko joku muu kieli tähän sopivampi?

Metabolix [05.06.2018 23:21:46]

#

riksu kirjoitti:

Tarkoitus olikin tallettaa tietoa aina, kun tietoa haetaan. Se ei ole ongelma.

Ahaa, sittenhän homma on erittäin helppo!

Voit päivittää sivua 180 sekunnin välein helposti vaikka laittamalla alkuun (sivun head-osaan) tällaisen metatagin:

<meta http-equiv="refresh" content="180">

Tulos vastaa sitä, että käyttäjä painaisi 3 minuutin välein selaimen päivitysnappia (F5).

Sitten vain PHP-skriptissä (1) lataat tallennetut tiedot, (2) jos edellisestä on yli 3 minuuttia, haet myös nykyisen tiedon ja tallennat sen, ja (3) tulostat ladatut tiedot ja uuden tiedon.

Tämä on luultavasti sinulle helpoin toteutustapa. JavaScriptilla olisi mahdollista myös päivittää sivusta vain osia koko sivun lataamisen sijaan.

riksu [07.06.2018 08:36:42]

#

Kiitos vastauksesta.

Mistä saisin <meta>-tagista lisää tietoa? Haluaisin tietää, mitä kaikkea sillä voi tehdä? Joku hyvä kirja tai nettisivu?

groovyb [07.06.2018 10:40:01]

#

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta


Sivun alkuun

Vastaus

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

Tietoa sivustosta