Ubuntun käyttö > Ohjelmointi, palvelimet ja muu edistyneempi käyttö

[ ratkaistu] html-kaavake ja kenttien tallennus php:llä tiedostoon

(1/2) > >>

teele:
Kokeilin palvelimella olevalla  html-sivulle kaavakkeeseen tulevien arvojen tallentamista php:llä omaan tiedostoonsa.

index.php-sivu on tällainen


--- Koodia: --- <html>
<body>

<form action="tallenna.php" method="POST">
    <input name="field1" type="text" />
    <input name="field2" type="text" />
    <input type="submit" name="submit" value="Save Data">
</form>

</body>
</html>


--- Koodi päättyy ---


ja tallenna.php -sivu tällainen


--- Koodia: ---<?php
if(isset($_POST['field1']) && isset($_POST['field2'])) {
    $data = $_POST['field1'] . '-' . $_POST['field2'] . "\r\n";
    $ret = = file_put_contents('/tmp/mydata.txt', $data, FILE_APPEND | LOCK_EX);
    if($ret === false) {
        die('There was an error writing this file');
    }
    else {
        echo "$ret bytes written to file";
    }
}
else {
   die('no post data to process');
}


--- Koodi päättyy ---

Mutta /tmp -hakemistoon ei näytä ilmaantuvan mitään tiedostoa lisää. Miten saisi tallenenttavan tiedoston sellaiseen paikkaan, johon se oikeasti haluttaisiin.

Tallennus ei myöskään onnistu siihen hakemistoon, jossa php -tiedostot ovat. Tällöin  syynä ovat luultavasti väärät oikeudet.

Jos antaa kirjoitusoikeudet www-datalle, riittäisikö se tai miten pitäisi oikeuksia muokata, että php -tuloste voitaisiin kirjoittaa tavalliseksi tiedostoksi. (Onko tässä pahopja tietoturvariskejä)

jekku:
Mites jos kokeilisit lomaketta, mielestäni kaavake ei ole moiseen passeli ratkaisu.

Toki vain mielipide mutta aktiiviaikoinani sallin vain lomakkeet jos tarkoitus täyttää selaimessa.

teele:

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.

jekku:
Selvittelyä auttaa jonkin verran jos lisäät testin ajaksi php-palikan alkuun:

--- Koodia: ---<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);


--- Koodi päättyy ---

Joskus pähkäilin vastaavien juttujen parissa mutta en oikopäätä muista miten sen piti olla ...

jekku:

--- Lainaus käyttäjältä: teele - 14.08.19 - klo:17.39 ---....
Tallennus ei myöskään onnistu siihen hakemistoon, jossa php -tiedostot ovat. Tällöin  syynä ovat luultavasti väärät oikeudet.

Jos antaa kirjoitusoikeudet www-datalle, riittäisikö se tai miten pitäisi oikeuksia muokata, että php -tuloste voitaisiin kirjoittaa tavalliseksi tiedostoksi. (Onko tässä pahopja tietoturvariskejä)

--- Lainaus päättyy ---

Alkuun päässet ihan antamalla oikeudet

--- Koodia: ---sudo chown www-data mydata.txt

--- Koodi päättyy ---

Toki tiedoston tulee olla hakemistossa jonka apassi näkee, tuosta '/tmp/' en ole varma, enkä ole kokeillut ...

Navigaatio

[0] Viestien etusivu

[#] Seuraava sivu

Siirry pois tekstitilasta