Näytä kirjoitukset

Tässä osiossa voit tarkastella kaikkia tämän jäsenen viestejä. Huomaa, että näet viestit vain niiltä alueilta, joihin sinulla on pääsy.


Viestit - teele

Sivuja: 1 ... 19 20 [21] 22 23 ... 45
401
Kiitos selvennyksestä

Pitää siis katsoa tiedoston käyttämistä, yritän paneutua asiaan   :)

Muok.

Tarvitaan siis kaksi nettisivua, joista toinen lukee tietoja ja toinen esittää ne. Sivut käyttävät esimerkiksi samalla palvelimella olevaa tiedostoa keskinäiseen tiedonsiirtoonsa.

Kotikoneelta lähetetään sopivin väliajoin tietoa vaikka näin

Koodia: [Valitse]


// https://stackoverflow.com/questions/11600130/post-data-with-libcurl


#include <curl/curl.h>
#include <iostream>

#include <string>
#include <cstring>
#include <unistd.h>   //usleep esim. sleep(500);


//using namespace std;

int main(int argc, char* argv[1]){

  CURL *curl;
  //CURLcode res;

  std::string par1 = argv[1], par2 = argv[2];

  char char_array[100]; // tämä lähetetään pyynnössä, msg1 vain apuna parametrikeräilyssä

  int i = 0;
  std::string s = std::to_string( i );

  if(argc != 3)
    {
      std::cout << "usage: " << argv[0] << "parameter1 parameter2" << std::endl;
      return -1;
    }

  while(i < 10 )
  {
    std::string msg1 = "x="  + par1 + " " + std::to_string( i ) +
                       "&y=" + par2 + " " + std::to_string( i + 1);
    strcpy(char_array, msg1.c_str());

    i += 2;
    std::cout << msg1;

    curl = curl_easy_init();

    if(curl)
    {
      curl_easy_setopt(curl, CURLOPT_URL, " http://oma_palvelin.fi/testihakemisto/testi02.php");
      curl_easy_setopt(curl, CURLOPT_POST, 1);
      //curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "x=1111.11&y=212122.212");
      curl_easy_setopt(curl, CURLOPT_POSTFIELDS, char_array);
      //res = curl_easy_perform(curl);
      curl_easy_perform(curl);
      curl_easy_cleanup(curl);
      //std::cout << std::endl;
    } // if
    sleep(3);
  } // while
  return 0;
}



// tehty sudo apt-get install libcurl4-gnutls-dev
// g++ testi.cpp -o testi -lcurl -std=c++17 -Wall -pedantic

/*

tulokset näkyvät sivulla
 http://oma_palvelin.fi/testihakemisto/testi01.php
jossa x näyttää muuttuvan

*/

ja katsotaan tuloksia sivulla
 http://oma_palvelin.fi/testihakemisto/testi01.php

402
Käytän curl -komentoa kotikoneelta palvelimen pahp:n $_POST -taulukon arvon muuttamiseen

Koodia: [Valitse]
curl -X POST -F 'y=6'  http://oma_palvelin.fi/testihakemisto/testi01.php

Muutos näyttää toteutuvan, koska komento tulostaa kotikoneen päätteelle

Koodia: [Valitse]
ÅÅÅÅÅÅÅÅÅÅ 6åååååååååå 6Array
(
    [y] => 6
)

</body>
</html>

mikä näyttää aika hyvältä lukuun ottamatta body- ja html-nimikkeitä.

Mutta $_POST['y'] ei näytä muuttuvan selaimen näyttämässä sivussa. Siinä näkyy vain tyhjä taulukko.

Sivun php-koodi on tällainen

Koodia: [Valitse]
<!DOCTYPE html>
<html>
<body>

<?php
$x 
1;
while(
$x )
  {
   echo( 
'$x on: ' $x '</br>' );
   echo 
str_pad('',4096)."\n";
   
ob_flush();
   
flush();
   
$x $x 1

  if( isset(
$_POST['y']) )
    {
      print(
'ÅÅÅÅÅÅÅÅÅÅ ');
      print(
$_POST['y']); 
    };

   
sleep(2);
  }

//sleep(10);
if( isset($_POST['y']) )
  {
    print(
'åååååååååå ');
    print(
$_POST['y']); 
  };
print_r($_POST );
?>


</body>
</html>


Tarkoituksena olisi saada näkymään curlilla lähetetty muutos sivulla, mahdollisimman nopeasti sen jälkeen, kun se on tehty. Sivun pitäisi siis näyttää muuttujan arvoja tasaisin väliajoin ja jos sivulle kerrotaan, että arvo on muuttunut, se pitäisi saada näkymään myös selaimen näyttämäällä sivulla.

Miten pitäisi sellainen sivu toteuttaa, joka näyttää vaikka lämpötilatietojen sarjan, kun mttarin lukema päivittyy tietyin väliajoin. Ehkä curl ja php eivät ole oikea tapa?


403
Netissä olevien ohjeiden mukaan tämän pitäisi toimia

Koodia: [Valitse]
<?php
echo('<script type="text/javascript"> alert(); </script>');
?>


mutta ei näytä toimivan. html-sivulle tulostuu vain  alert(); '); ?>

Mikä olisi oikea tapa laittaa php kirjoittamaan javascriptiä, niin että scripti myös toimisi oikein html-sivulla.

Muok.

Näyttää siltä, että sivun muuttaminen php-päätteiseksi auttaa ja php:tä tuleva javascripti toimii, mutta pitääkö asian oikeasti olla näin. Eikö php toimi html-päätteisillä sivuilla.
 

404
Taas on tullut netissä roikuttua ja sieltä löytyi tällainen

https://www.ostechnix.com/how-to-limit-users-access-to-the-linux-system/

Ohjeen mukaan pitäisi olla mahdollista rajoittaa käyttäjän saataville vain tetty hakmisto ja tietyt ohjelmat, jos käyttäjän bashia rajoittaa -r -valitsimella.

Jos ymmärsin selitystä oikein, ratkaisu voisi olla aika sopiva, mutta onnistuisiko myös nanoilu käyttäjän omassa hakemistossa, jos homman saisi ohjeiden mukaan toimimaan. Tietysti nano pitäisi lisätä sallituksi ohjelmaksi, mutta nanonhan voi pyytää tallentamaan tiedostonsa minne vain. Tai voisiko vaihtoehtoisesti käyttäjän näkemää nanoa rajoittaa niin, että se käsittelee vain käyttäjän hakemiston tiedostoja esimekiksi tekemällä komentorivitiedoston oma_nano, joka käynnistäisi tämän rajoitetun nanon.

Toiveena olisi oikeuksien rajoittaminen samaan tapaan, kuin linkissä kuvataan, mutta niin, että käyttäjän hakemistossa oleva tiedostoja voisi käsitellä vapaasti.



405

Kiitos linkistä, yritin selvittää asiaa, mutta yksi kohta herättää vähän kydymyksiä:

"SUID programs are considered dangerous on multiuser systems. It is not a great idea to install Firejail on such systems. If you have a server full of people logging in over SSH, forget about it!

Firejail was built for single-user desktop systems. We try to address desktop specific threats, such as: . . . ."

Ajatus oli alunperin, että olisi muutama käyttäjä, mutta yllä olevan esittelyn mukaan silloin ei ole hyvä ajatus käyttää firejailia.

Miten tätä pitäisi tulkita ja onko pari tai kolme käyttäjää sellainen monen käyttäjän järjestelmä, johon firejailia ei suositella.



406

Millä tavalla voisi rajata uuden käyttäjän oikeudet niin, että sillä olisi esimerkiksi  oikeudet suorittaa, kirjoittaa ja nähdä vain oman hakemistonsa sisällä olevia tiedostoja.

Jos haluttaisiin esimerkiksi, että käyttäjä voi nanoilla, eli lukea ja kirjoittaa, vain oman hakemistonsa tiedostoja ja oman hakemistonsa alihakemistojen tiedostoja.

Pitäisikö nano kopioida käyttäjän omaan hakemistoon. Olisiko joku tapa muuttaa tiedosto-oikeuksia niin, että tämä onnistuisi, chown, chmod, chgrp??

Tilanteessa voisi olla pelkästään esimerkiksi 2 käyttäjää ja vain toinen olisi rajoitetun käyttöoikeuden käyttäjä. Tällainen järjestely voisi olla pilvikoneella, jota käytetään vain päätteen kautta.


407
Kiitos, edellä saatujen ohjeiden mukaan toimimalla ilmoitukseet ovat hävinneet.

On hyvä, että tulevaisuudessa pienet vahinkonapsautukset eivät aiheuta ilmoitusten hyppelyä ruudulle.

 :)

408
Monet verkkosivustot ehdottelevat ilmoistusten sallimista ja nyt on luultavasti jotain tälläista valintaa tullut vahingossa painettua selaimessa eli Firefoxissa.

Miten saisi työpöydälle tulevat ilmoitukset pois.    Firefoxissa on laitettu about:confissa

dom.webnotifications.enabled = false

mutta siitä ei ollut näköjään apua.

409
Tietokantakokeiluni ovat valitettavasti tyssänneet jo ennen niiden alkamista ongelmaan, että en ole saanut mysql:ää käyntiin.

Mysql on asennettu virtuaalikoneeseen pilveen ja sitä voi käyttää etänä päätteen avulla. Nanoilu ja muu päätekäyttö onnistuu, mutta mysql ei.

Kirjastossa ja netissä on paljon ohjeita mysql:n käytöstä, mutta mistään en ole onnistunut löytämään ohjeita, kuinka saisi tietokannan siihen tilaan, että sille voisi päätteeltä laittaa jonkun pienen kokeiluohjelman.

410
Linkin sivulla näyttää olevan hyvää tietoa asiasta, kestää vähän aikaa ennen, kuin ehdin sen opetella. Väliaikaisratkaisuna ehdin kokeilla tällaista

Koodia: [Valitse]
<head>
        <title> painosivu </title>
        <style> input[type='text'] { font-size: 24px; }
                input[type=checkbox] {transform: scale(2.5); }
                input[type='submit'] { font-size: 24px; }
        </style>
</head>

head-osassa ja sitten piti kirjasinkokoa isontaa body-osassa

Koodia: [Valitse]
   <h1>
   <input type="checkbox" name= "weight_check" >  weight chrcked  <br/>
   </h1> 

Mutta tämä ei varmaankaan ole mitenkään tyylikäs ja ehkä ei kovin toimivakaan ratkaisu, joten vielä kiitos siitä linkistä  :)

411
Mikä olisi yksinkertaisin tapa suurentaa html checkboxin kokoa ja sen selitetekstiä html-sivulla mieluiten niin, että ei tarvitsisi erillistä css-tiedostoa.

Netistä löysin tällaisen, mutta tekstit jäävät pieniksi ja laatikot menenvät päällekkäin.

Koodia: [Valitse]

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html>
<head>
        <title> stv-sivu </title>
        <style> input[type='text'] { font-size: 24px; }</style>
        <style> input[type='checkbox'] { transform: scale(1.9); }</style>

<style>
input[type=checkbox] {
    width: 14mm;
    -webkit-appearance: none;
    -moz-appearance: none;
    height: 14mm;
    border: 0.1mm solid black;
}

input[type=checkbox]:checked {
    background-color: lightblue;
}

input[type=checkbox]:checked:after {
    margin-left: 4.3mm;
    margin-top: -0.4mm;
    width: 3mm;
    height: 10mm;
    border: solid white;
    border-width: 0 2mm 2mm 0;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
    content: "";
    display: inline-block;
}
</style>

</head>

<body>
<label><input type="checkbox"> Test</label>
</body>
</html>


Sitten netistä löytyy sellaisia, jotka eivät toimi Firefoxissa, esimerkiksi zoom. Toinen ongelma on, että vaikka checkboxit näyttävät kohtuullisen kokoisilta omalla koneellani ilman mitään määrittelyjä, silloin ne ovat puhelimissa liian pieniä, vaikka teksti näkyy aika sopivan kokoisena puhelimessa.

412

Väliaikaisratkaisuna käytän tiedostoa, joka sisältää tiedot php-muodossa, jolloin apache ei lähetä sen koodiosuutta.

Tietokanta olisi varmasti myöskin hyvä ratkaisua, mutta en vielä osaa käyttää mysql-tietokantaa. Ehkä jostain löytyy aloittelijaohjeet Ubuntun mysql-käytöstä, kunhan ehdin niitä etsimään.

413
Tilanne on vieläkin vähän epäselvä. Jos yritän siirtää wgetillä php-ohjelmatiedoston, siitä tulee vain pieni osa. Tämä on hyvä, koska ilmeiseti ulkopuolinen ei siten voi saada ainakaan kovin paljon vääränlaista tietoa.

Koodia: [Valitse]
wget http://omapalvelin.fi/omakoodi.php
--2019-10-23 11:06:55--  http://omapalvelin.fi/omakoodi.php
Selvitetään osoitetta omapalvelin.fi (omapalvelin.fi)... xxx.xxx.xxx.xxx
Yhdistetään palvelimeen omapalveli.fi (omapalvelin.fi)|xxx.xxx.xxx.xxx|:80... yhdistetty.
HTTP-pyyntö lähetetty, odotetaan vastausta... 200 OK
Pituus: 324 [text/html]
Tallennetaan kohteeseen ”omakoodi.php”

omakoodi.php       100%[==================================>]     324  --.-KB/s    in 0s     

2019-10-23 11:06:56 (10,7 MB/s) - ”omakoodi” tallennettu [324/324]


cat omakoodi.php
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html>
<html>
<head>
<title> oma-sivu </title>
</head>

<body>

hetkinen, avataan omia tiedostoja .... <br/><br/>Tiedot tallennettu onnistuneesti <br/><br/> Kun kaikki valinnat
          on tallennettu, tulos voidaan katsoa Tulokset-sivulta  <br/><br/>




Mutta jos pyydetään samalla tavalla tekstitiedostoa, joka on kuitenkin php-loppuinen, tiedosto siirtyy kokonaan pyytäjälle.

Koodia: [Valitse]
wget http://omapalvelin.fi/.mydata.php
--2019-10-23 11:03:40--  http://omapalvelin.fi/.mydata.php
Selvitetään osoitetta omapalvelin.fi (omapalvelin.fi)... xxx.xxx.xxx.xxx
Yhdistetään palvelimeen omapalvelin.fi (omapalvelin.fi)|xxx.xxx.xxx.xxx|:80... yhdistetty.
HTTP-pyyntö lähetetty, odotetaan vastausta... 200 OK
Pituus: 178 [text/html]
Tallennetaan kohteeseen ”.mydata.php”

.mydata.php              100%[==================================>]     178  --.-KB/s    in 0s     

2019-10-23 11:03:40 (1,90 MB/s) - ”.mydata.php” tallennettu [178/178]

cat .mydata.php

<html>
<body>
print('print-tekstiä alussa <br/>');
echo'(echo-tekstiä alussa <br/>');

tavallista tekstiä <br/>
/*
kommentoitua tekstiä <br/>
*/
<body/>
<html/>


Tiedosto on nimetty . -alkuiseksi eikä se näy ls -komenolla suoraan, mutta siirtyy siitä huolimatta ja tulostuu kotikoneella, kun muistaa laittaa cat -komennossa pisteen eteen nimeen.

Eli pääosa koodista näyttää pysyvän siellä, mihin se on tarkoitettukin, mutta miten saisi kaikki datat piiloon ulkopuolisilta.

414

Eli jos annan tietoihin luku- ja kirjoitusoikeudet erillisissä datakansioissa www-datalle, ne eivät tule kaikkien saataville wgetillä.

Tällöin oikeuksia ei ole ulkopuolisilla, mutta ymmärtääkö Apache olla toimittamatta tietoja eteen päin, jos se itse niihin pääsee käsiksi.Pitääkö Apachessa laittaa joku säätö päälle tällaisen toivottavan tilanteen aikaan saamiseksi.

415
Jos halutaan tehdä painonhallintasivusto jossa lähtötietoina on kunkin käyttäjän nimi, ikä ja sitten punnitustuloksia päivittäispunnituksista, niin miten voidaan piilottaa muiden käyttäjien tiedot kaikilta muilta ja erityisesti ulkopuolisilta.

Lähtötietotiedoston on ajateltu olevan muotoa

nimi   ikä  kg kg kg kg kg kg ....
nimi   ikä  kg kg kg kg kg kg .....
nimi   ikä  kg kg kg kg kg kg .....
.
.


Käyttäjät näkevät omat tietonsa ja oman painonsa kehittymisen verrattuna painojen kehittymisen keskiarvoon. Laskenta tehdään ja tiedot näytetään php:n avulla. Php-koodi ja tietorivit sisältävä tiedosto sijaitsevat DocumentRoot -määrittelyn mukaisessa hakemistossa, jonne www-datalla pitää tietysti olla luku- ja kirjoitusoikeudet tulosten laskemista ja uusien punnitustietojen lisäämistä varten.

Mutta kaikki aineisto on kenen tahansa haettavissa wgetin avulla, mikä ei ole toivottava piirre. Miten php-lähdetekstin ja kerätyt tiedot voisi suojata niin, että sivut toimisivat kuitenkin selaimella ja www-data pystyisi lukemaan ja kirjoittamaan hakemistoon.

Jos www_datalla on lukuoikeus, tarkoittaako se aina sitä, että se myös toimittaa lukemansa tiedot sen enempää kyselemättä esimerkiksi wgetille tai voisiko tiedosto-oikeuksia muuttamalla turvata lähdetiedot tai ratkeaisiko asia .htaccess -säädöillä?

416
 
No niinpäs toimii, kiitos!     :)

417
Tässä on liitteenä esimerkkitiedosto. Yhden kuukauden tiedot ovat aina omalla rivillään. Päivän lämpötilatieto on erotettu seuraavasta tabulaattorilla, \t. Jos asiaa helpottaa, muutakin erotinta voidaan käyttää, vaikka välilöyntiä. Tässä vaiheessa voidaan myös miinuslämpötilat jättää huomiotta eli voidaan rajoittua vain sellaisiin riveihin, joissa kaikki arvot ovat positiivisia. (esimerkkitiedostossa sellaisia ei taida olle, mutta niitä saa varmaan vaikka miinusmerkit poistamalla)

Tiedot olisi tarkoitus saada php:n taulukkoon niin, että esimerkiksi jokaisen kuukauden (rivin) lämpötilojen keskiarvon voi laskea. Joskus haluttaisiin ehkä laskea jotain muutakin.

418
Kaikkien kuukausien päivien lämpötilat on annettu tiedostossa riveittäin. Kuukausia voi olla tarkastelussa aika iso määrä, esimerkiksi 100.

php:llä olisi tarkoitus lukea kuukausien tiedot riveittäin 2-ulotteiseen taulukkoon niin, että yhtä kuukautta vastaisi aina yksi "rivi".

Sitten toiseen taulukkon taulukkoon halutaan laskea jokaisen kuukauden päivälämpötilojen keskiarvot. Taulukko on 1-ulotteinen ja sen koko on havaintokuukausien lukumäärä.

Miten homman saisi kätevimmin tehtyä php:llä. (kyllä, php:tä pitäisi tällä kertaa käyttää)

Asia selviää luultavasti netistä hakemalla, mutta se on pitä yrityksen ja monen erehdyksen tie. Siksi asiaa valaisevista vihjeistä olisi iso apu.

 

419

Toimii, tein nanolla mydata.txt -tiedoston /var/www/html -hakemistoon ja Jekun ohjeiden mukaan vaihdoin omistajaksi www-datan.

Kiitos neuvoista :)

420

Taisin tehdä käännösvirheen, englannin kielinen sana form pitääkin kääntää lomakkeeksi. Mutta käännösvirheestä riippumatta php -teksteissä on kuitenkin käytetty sanaa form eikä kielioppivirheistä tule valituksia ja koodi näyttää toimivan.

Ongelmana on se, että mydata.txt -tiedostoa ei näytä löytyvän. Jos tallennuspaikaksi vaihtaa php- tekstin sijaintipaikan, tulee ilmoitus, että kirjoitus ei onnistunut, mikä onkin ihan oikein, jos oikeudet eivät ole kunnossa.

Palvelimella on käyttkisenä Ubuntu 18.04.

Sivuja: 1 ... 19 20 [21] 22 23 ... 45