Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  12 2912
Jeg sliter med å kjøre .pl script fra en annen webside og skrive den til min egen side. Noen forslag på hvordan dette enkelt kan gjøres?

Klarer fint å kjøre python script gjennon php dersom filen ligger i cgi mappa på egen maskin, men å hente den ut fra en annen webside, gjerne med en oncklick er en utfordring jeg trenger hjelp med.
Trigonoceps occipita
vidarlo's Avatar
Donor
Kan du forklare kva det er du faktisk vil? Vil du køyre lokalt perlscript med f.eks. system()-kallet i php? Eller vil du få remote webserver til å køyre eit perlscript for deg?

Slik eg les spørsmålet ditt så vil du hente data frå eit perlscript på ein anna webserver, i nettleseren? I så måte kan det godt tenkast at det er xss-protection som stopper deg. Ein enkel fix på det er å ha tre linjer php på din eigen webserver som opptrer som proxy.
Sist endret av vidarlo; 29. desember 2017 kl. 19:42.
Trådstarter
7 0
Det jeg ønsker er å hente http://bitmynt.no/ticker-nok.pl ved å trykke på en knapp på min egen webside. (apache)


Er dette riktig vei å gå?
<input type="button" name="runmyscript" value=" Hent pris på BTC " onClick="<? exec('python http://bitmynt.no/ticker-nok.pl'); ?>">

Vil det være bedre å lage en .py fil på min maskin, kjøre den cgi og hente ut data derifra?
Sist endret av kong1; 29. desember 2017 kl. 20:05. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
Trigonoceps occipita
vidarlo's Avatar
Donor
Uh.

Det scriptet returnerer eit JSON-objekt. Du skal ikkje køyre det med python, du skal ikkje køyre det med perl.

Du skal bruke det det returnerer direkte. Om du skal ha eit php-script som proxyer det så kan du bruke noko så enkelt som følgjande for å få det til å sjå ut som det kjem frå ditt domene, for å ungå problem med cross site scripting-headers:

Kode

<?php
header("Content-Type: application/json");
include("http://bitmynt.no/ticker-nok.pl");
?>
Det sagt så gir ikkje konstruksjoner som onClick="<? exec... meining for fem flate øre. Du har ikkje forstått skilnaden på serverside (PHP, python etc) og klientside (javascript, altså inkludert ting som skjer etter at nettleseren har lasta sida). Du bør lese deg opp på grunnleggande webutvikling og programmering når du roter såpass med konsepta.
Trådstarter
7 0
Tanken med onClick er at jeg ønsker å ha en linje med tekst som kommer opp etter man trykker på knappen. Teksten skal da bestå av JSON-objektet i et eget felt under knappen, og knappen skal fungere som en "refresh" for å hente ny "pris" i denne omgang.

Takk for rådet om å lese meg opp!
Det er kanskje bedre enn å "prøve og feile" slik jeg hadde et håp om for en så enkel nettside.
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av kong1 Vis innlegg
Takk for rådet om å lese meg opp!
Det er kanskje bedre enn å "prøve og feile" slik jeg hadde et håp om for en så enkel nettside.
Vis hele sitatet...
Problemet er at du ikkje har forstått konsepta. OnClick vert køyrt i brukaren sin nettleser, og må skrivast i javascript. Hadde du forstått konsepta kunne det fungert å prøve seg fram, men koden du viste over var rein gobbelydock - det ga ikkje meining. Og når det er nivået er det enklare å begynne med å lære konsepta.

Kan du konsepta er det mulig å prøve og feile, sjølv om det sjeldan blir veldig bra.
Trådstarter
7 0
Jeg forstår nå at oncklick ikke er kjørt på serversiden og er dermed ikke noe jeg trenger i denne koden. Jeg fortsetter jakten via google for å finne en kode som lar meg "lese" tickeren på en enklere måte. Takk for hjelpen
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av kong1 Vis innlegg
Jeg forstår nå at oncklick ikke er kjørt på serversiden og er dermed ikke noe jeg trenger i denne koden. Jeg fortsetter jakten via google for å finne en kode som lar meg "lese" tickeren på en enklere måte. Takk for hjelpen
Vis hele sitatet...
Joda - altså. Du må ha event clientside som faktisk laster inn. I tillegg kan du ha den kodesnutten eg skreiv over for å proxye den, så du slepp å forhalde deg til cross site requests.
Trådstarter
7 0
Hvordan vil en forenklet kode se ut dersom jeg ønsker å lese fra ticker-nok.pl så det kan leses i klartekst på siden?
Du er ute etter å parse et json-objekt. Søk etter parse json JavaScript eller parse json PHP.
Trådstarter
7 0
Takk for tipset raze! Kommer tilbake med ny kode neste år
Litt avhengig av hva du ønsker å gjøre med dataene:

Bruk PHP eller annet serverside-språk hvis du ønsker å lagre dem i en database for statistikk eller tilsvarende
Bruk Javascript hvis dette er informasjon som kun skal presenteres fra klienten.

PHP

Kode

<?php
$request = json_decode(
file_get_contents('http://bitmynt.no/ticker-nok.pl')
);
// Do what you want with the result
print_r($request);
?>
Javascript/jQuery

Kode

<script type="text/javascript">
$.getJSON('https://bitmynt.no/ticker-nok.pl', function(res){ console.log(res.data) 
})
</script>
Alternativ 2 ville fungert hvis bitmynt.no hadde inkludert 'Access-Control-Allow-Origin' og nettsiden din inkludert i headeren. Les mer om CORS

Dette har de ikke, men en løsning kan være å lage en enkel proxy i php:

Kode

<?php
// url.tld/proxy.php?url=http://bitmynt.no/ticker-nok.pl
// Note: You should add filter for approved urls or other type form security
$url  =$_GET['url'];
echo file_get_contents($url);
?>
Så du nevnte onClick. Antar derfor at noe skal skje når noen trykker på en lenke?
Her er samplekode i javascript/jQuery:

Kode

<script type="text/javascript">
function getTicker(callback){
var url = 'http://bitmynt.no/ticker-nok.pl'
$.getJSON('/proxy.php?url=' + url, function(res){ 
console.log(res.data); 
$('#result').html(data)
})
}
</script>
Da kan du trigge funksjonen via html:

Kode

<!-- ticker.html -->
<a href="javascript:void(0)" onclick="getTicker()">Get Ticker</a>
<span id="result"></span>
Har ikke testet koden, men dette illustrerer greit hvordan det kan løses.
Trådstarter
7 0
Jeg fant ut av kode for å hente innholdet i ticker filen, men kun for å vise all tekst i .pl filen.

Takk lsrr, jeg skal leke litt med kodene du har laget å se om jeg kan lage noe fungerende

Jeg har flere utfordringer under opplæringen og regner med det er en enkel sak, for de som kan språket.

Jeg ønsker å skrive en tekst og at denne skal legge seg som "neste linje" i dokumentet det skrives til. /n er vel kanskje det jeg bør bruke for dette?

En annen sak er at dersom jeg oppdaterer siden i nettleseren så skrives det til filen, samme tekst. Er det mulig å fjerne denne muligheten på en enkel måte?

Kode

        <html>
        <head>
        <title>Skrive til txt fil</title>
        </head>
        <body>

        <h1>Lagre denne teksten:</h1>
        <form action="testkopi.php" method='post'>
        <textarea name='textblock'></textarea>
        <input type='submit' value='Add text'>
        </form>

        <?php

        // Dette åpner vel dokumentet? og "a" overskriver ikke eksisterende tekst i dokumentet?
        $f = fopen("tekstfil.txt", "a");

        // Lagrer teksten?
        fwrite($f, $_POST["textblock"]);

        // Lukker dokumentet.
        fclose($f);

        // Åpne dokmentet og lese teksten?
        $f = fopen("tekstfil.txt", "r");

        // Skrive teksten til siden og lukke dokument.
        echo fgets($f);
        fclose($f);

        ?>
        </body>
        </html>
Sist endret av kong1; 8. januar 2018 kl. 23:37. Grunn: Automatisk sammenslåing med etterfølgende innlegg.