Heippa!
Koodivinkeissä on mahtavia tiedostomuokkaajia, mutta jossain tapauksissa ne ovat liikaa. Joskus tarvitsisi vain koodin, millä voi muokata yhtä tiedostoa.
Tämmöinen tavallinen maan tallaaja ei noista 500 rivisistä muokkaus systeemistä mitään ymmärrä, joten tarvitsee kääntyä ammattilaisen puoleen.
Nämä "ammattilaiset" kun osaavat, niin joskus kun on aikaa, niin voisikos joku tehdä tuommoisen, että voi vain yhtä tiedostoa muokata mikä on määritelty lähdekoodiin? Tämä olisi aivan mahtavaa!
-Rocceri kiittää
(Mielellään en haluaisi kuulla pahaa kritiikkiä aiheestani, joten jos tämä voisi olla ilman sitä :) )
Tästä löytyy koodi, joka saattaisi vastata tarpeitasi.
VAROITUS
ÄLÄ KOSKAAN laita tätä skriptiä ilman vahvaa suojausta, sillä tällä voidaan saada aikaan peruuttamatonta jälkeä. Toisin sanoen, vain sinun pitäisi voida käyttää tätä skriptiä.
<form action="tiedosto.php?a=naytatiedosto" method="POST"> Kirjoita tiedoston nimi:<br> <input type="text" name="tiednimi" size="80" value="<?php print $_POST["tiednimi"]; ?>"><br><br> <input type="submit" value="Muokkaa"> </form> <?php if($_GET["a"] == "muutokset"){ print"<hr>"; $auk = fopen($_POST["tiednimi"], "w"); fwrite($auk, $_POST["sisalto"]); fclose($auk); print"Tiedosto ".$_POST["tiednimi"]." on muutettu."; } elseif($_GET["a"] == "naytatiedosto"){ print"<hr>"; $nimi = $_POST["tiednimi"]; if(file_exists($nimi)){ print"<form action='tiedosto.php?a=muutokset' method='POST'>>Tiedoston uusi sisältö: (siinä on valmiina vanha sisältö)<br><br><textarea name='sisalto' cols='80' rows='30'>".file_get_contents($nimi)."</textarea><br><br><input type='hidden' name='tiednimi' value='".$nimi."'><input type='submit' value='Tallenna muutokset'></form>"; } else { print"Tiedostoa ".$nimi." ei löydy."; } } ?>
Ei testattu
Mahtavaa Olli! :) Onneksi täällä on porukkaa ketkä osaavat asiansa :)
Edit: Pieni bugi siellä on, jos muokkaa tiedostoa, niin painikkeiden väliin tulee
"; } else { print"Tiedostoa ".$nimi." ei löydy."; } } ?>
Mutta, tämän saan itsekkin korjattua
@Olli: Ei tuo voi toimia.
...method='POST'>>
Siis... kaks tollasta yhelle?
Epästandardia.
janijohannes kirjoitti:
@Olli: Ei tuo voi toimia.
...method='POST'>>Siis... kaks tollasta yhelle?
Epästandardia.
No, jollei sun mielestä toimi, niin koita vaikka. Kyllä se toimii...
EDIT:
Kun sanoin että koodi tulostaa jotain muuta kuin pitäisi, niin se johtuu siitä, että jos tiedostossa on PHP:tä joukossa ja se päätetään ?> tagilla, niin tuo päättää tuon editorin PHP tiedoston liianaikaisin.
Juuri nyt ei tule mieleen, millä funktiolla se korjaantuu. Mutta, onneksi en tarvitse kuin txt tiedostojen editointiin.
Kyllä se olisi silti kivempi, kun se toimisi kaikkien kanssa. ;D
(Edit. Antin kooditagit näköjään tekevät jänniä &$-merkinnälle ilman väliä.)
<?php $tiedosto = "f.txt"; $salasana = "1234"; $pwd = & $_POST["pwd"]; if ($pwd == $salasana) { $data = & $_POST["data"]; file_put_contents($tiedosto, $data); } else { $data = @file_get_contents($tiedosto); if (!is_string($data)) { $data = ""; } } ?> <form action="" method="post"> <textarea name="data" rows="20" cols="80"><?php echo htmlspecialchars($data); ?></textarea> <hr/> Salasana: <input name="pwd" type="password" /> <input type="submit" value="Tallenna!" /> </form>
Hyviä kummatkin, mutta tämä Metabolixin on parempi koska tarvitsee salasanan :)
Joo, mutta Metabolixin skripti ei tarkista tiedoston olemassaoloa :D
Eikä ilmoita onnistuneesta kirjoituksesta.
(no, nämä on helppo lisätä; niinkuin kyllä salasanakin :)
Olli kirjoitti:
Joo, mutta Metabolixin skripti ei tarkista tiedoston olemassaoloa :D
Eikä ilmoita onnistuneesta kirjoituksesta.(no, nämä on helppo lisätä; niinkuin kyllä salasanakin :)
Niin, kummatkin on helppo lisätä, ja niin teinkin. En moiti sinun koodiasi, mutta tämän sain toimimaan nopeammin.
Koska tuolla sinun koodillasi en saanut muokattua PHP tiedostoja.
Juuh, eipä mitään :)
Olli kirjoitti:
Joo, mutta Metabolixin skripti ei tarkista tiedoston olemassaoloa :D
Tarkistaapas. Katso tarkemmin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.