Ubuntun käyttö > Ohjelmointi, palvelimet ja muu edistyneempi käyttö
[ ratkaistu] html-kaavake ja kenttien tallennus php:llä tiedostoon
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