Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Tiedostomuokkaaja

Sivun loppuun

Rocceri [24.04.2009 16:46:22]

#

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ä :) )

Olli [24.04.2009 16:55:15]

#

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

Rocceri [24.04.2009 17:00:04]

#

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

janijohannes [24.04.2009 17:04:48]

#

@Olli: Ei tuo voi toimia.

...method='POST'>>

Siis... kaks tollasta yhelle?

Epästandardia.

Rocceri [24.04.2009 17:05:28]

#

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

Metabolix [24.04.2009 17:21:03]

#

(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>

Rocceri [24.04.2009 17:38:58]

#

Hyviä kummatkin, mutta tämä Metabolixin on parempi koska tarvitsee salasanan :)

Olli [24.04.2009 18:49:54]

#

Joo, mutta Metabolixin skripti ei tarkista tiedoston olemassaoloa :D
Eikä ilmoita onnistuneesta kirjoituksesta.

(no, nämä on helppo lisätä; niinkuin kyllä salasanakin :)

Rocceri [24.04.2009 18:54:37]

#

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.

Olli [24.04.2009 19:04:30]

#

Juuh, eipä mitään :)

Metabolix [24.04.2009 19:08:17]

#

Olli kirjoitti:

Joo, mutta Metabolixin skripti ei tarkista tiedoston olemassaoloa :D

Tarkistaapas. Katso tarkemmin.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta