Olen jo pitemmän aikaa etsiskellyt vastausta siihen kuinka saisin muutettua jo olemassa olevan tekstitiedoston oikeuksia niin että scripti pääsisi lukemaan sieltä käyttäjätietoja ja lukemisen jälkeen scripti muuttaisi chmodit niin että tiedostoa ei voisi enää lukea. Eli siis ainoastaan scripti pääsisi filuun käsiksi.
Onko tähän olemassa jokin funktio? Ilmeisesti on sen verran sain php:n manuaalista selvää.
tuotanoin vedän nopeasti päästä:
{ $tiedosto = file("teksti.txt"); chmod = ("$tiedosto", 0777"; } { Se scripti { chmod = ("$tiedosto", 0444); }
En siis ole vastuussa koodista! XD
Ei tuo ainakaan noin suoraan toiminu mutta vaikka tein syntaksin mukaan oikein se ei suostu chmodeja muuttamaan tulee virheilmotusta kokoaika.
"Warning: chmod() [function.chmod]: Operation not permitted..."
Mistähän tuo mahtaisi viestiä?
sitten en osaa vastata... kyllä sen voi yhesti chmodata, mutta tuo seuraava ei varmaan onnistu... voitsko listata scriptin tänne?
<?php session_start(); $kayttajat = file("kayttajat.txt"); chmod ("kayttajat.txt", "0777"); $rivim = count($kayttajat); $id = $_POST['tunnus']; $password = $_POST['passu']; for ($i = 0; $i < $rivim; $i++) { $ktiedot = explode("|", $kayttajat[$i], 2); $user = $ktiedot[0]; $pass = $ktiedot[1]; if ($id == $user || $password == $pass){ $_SESSION['sessio'] = true; include("top.php"); echo "Olet nyt kirjautunut!"; include("bottom.htm"); }else { $_SESSION['sessio'] = false; include("top.php"); echo "Tunnus tai salasana ei täsmää."; include("bottom.htm"); } } chmod ("kayttajat.txt", "0444");?>
Tässähän tämä
En oo varma, mutta otappa lainausmerkit pois oikeuksista. Ja siirrät file-funktion suoritettavaksi vasta chmodauksen jälkeen.
Siis
Ite oon ainakin tottunu käyttään chmod-funktiota tällälailla.
Sitäkin on tullu kokeiltua jo se ei jotenkii vaa suostu muutamaan niitä mitenkää. Monenlaista vaihtoehtoo on tullu kokeiltua.
<?php session_start(); { $kayttajat = file("kayttajat.txt"); chmod ("kayttajat.txt", 0777); } $rivim = count($kayttajat); $id = $_POST['tunnus']; $password = $_POST['passu']; for ($i = 0; $i < $rivim; $i++) { $ktiedot = explode("|", $kayttajat[$i], 2); $user = $ktiedot[0]; $pass = $ktiedot[1]; if ($id == $user || $password == $pass){ $_SESSION['sessio'] = true; include("top.php"); echo "Olet nyt kirjautunut!"; include("bottom.htm"); }else { $_SESSION['sessio'] = false; include("top.php"); echo "Tunnus tai salasana ei täsmää."; include("bottom.htm"); } } { chmod ("kayttajat.txt", 0444); } ?>
kokeile näin
:) ei auta tuokaan. Samaa valittaa yhä. Mutta on tietenkii helpompiki tapa jos joku vaan tietää semmosen chmod arvon joka antaa scriptin lukea tiedostoa mutta ei päästä ulkopuolisia käyttäjiä käsiks tiedostoon ni se ratkasee ongelman, aattelin itekkin kokeilla eri vaihtoehtoja.
Toimisiko tämä:
<?php session_start(); $kayttajat = file("kayttajat.txt"); chown ("kayttajat.txt", nobody); chmod ("kayttajat.txt", 0777); $rivim = count($kayttajat); $id = $_POST['tunnus']; $password = $_POST['passu']; for ($i = 0; $i < $rivim; $i++) { $ktiedot = explode("|", $kayttajat[$i], 2); $user = $ktiedot[0]; $pass = $ktiedot[1]; if ($id == $user || $password == $pass){ $_SESSION['sessio'] = true; include("top.php"); echo "Olet nyt kirjautunut!"; include("bottom.htm"); }else { $_SESSION['sessio'] = false; include("top.php"); echo "Tunnus tai salasana ei täsmää."; include("bottom.htm"); } } chmod ("kayttajat.txt", 0444); ?>
Ei tunnu toimivan valittaa yhä:
Warning: chmod() [function.chmod]: Operation not permitted...
Alkaa loppua usko mutta luulis että se jotenki pitäs toimia en sitten tiiä... Kaikenlaista on kokeiltu
Lue seuraavat threadit läpi:
http://forums.devshed.com/archive/5/2003/8/3/
http://forums.devshed.com/showthread.php?s=
Tarvittaessa siis muutat kansion/tiedoston oikeudet ennen kuin käytät niitä scriptissä (esim. jollain ftp-ohjelmalla).
!hokshoks! httpd:llä ei normaalisti ole oikeuksia chmodailla käyttäjän tiedostoja ;)
Eikö kaikista helpoin olisi suojata kayttajat.txt .htaccessilla ja kiertää php:ssä salasanasuojaus hakemalla data todellisesta polusta (relatiivinen polku: http://www.domain.com/suojattu/kayttajat.txt ja todellinen polku var/www/public_html/suojattu/kayttajat.txt)?
lainaus:
Eikö kaikista helpoin olisi suojata kayttajat.txt .htaccessilla ja kiertää php:ssä salasanasuojaus hakemalla data todellisesta polusta
Toi saattaa olla ihan viisasta tuntus ainaki aika järkevältä pitää kokeilla.
Jep sehän toimiikin noin parhaiten kiitti vinkistä :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.