Noh tää on tämmönen helppokäyttöinen (ei kait se oma kehu niin kovasti haise? :)) txt filujen hallintapaneeli. Eli tällä voit poistaa, luoda ja muokata txt filuja.
Tein tämmösen kun huomasin että aika moni tarvii jotain tän tyylistä. Toivotaan että tästä on jollekkin edes jotain hyötyä :)
Muokattu:
28.2.05 Tein sillee et ton scriptin voi tallentaa millä nimellä vain.
1.5.05 Muutin koko koodin ainakin omasta mielestäni paremmaksi :D Samalla tein uudelleen nimeyksen.
<?php $fileName="txt/"; //listattavan hakemiston nimi. HUOM! huomaa kauttaviiva (/) lopussa! error_reporting(0); include("funktiot.php"); if(!isset($_GET['act']) && !isset($_GET['id'])){ //jos ei ole annettu act:ia: include("yla.php"); listaa($fileName); //kutsutaan listaus functiota echo "<center><a href=\"{$_SERVER['PHP_SELF']}?act=uusi&id=\">Luo uusi txt filu</a></center>"; include("ala.php"); } else { //muussatapauksessa: if($_GET['act'] == "muokkaa"){ //MUOKKAUS: if(!file_exists($_GET['id'])) exit("Tiedostoa {$_GET['id']} ei löydy."); //Löytyykös tiedosoa? include("yla.php"); muokkaa($_GET['id']); //Kutsutaan muokkaus functiota include("ala.php"); } elseif($_GET['act'] == "kirjoita"){ //KIRJOITUS: if($_GET['id'] != "kirjoita" && !file_exists($_GET['id'])) exit("Tiedostoa {$_GET['id']} ei löydy."); //Löytyykö tiedostoa? kirjoita(); //Kutusutaan kirjoitus functiota } elseif($_GET['act'] == "poista"){ //POISTO: if(!file_exists($_GET['id'])) exit("Tiedostoa {$_GET['id']} ei löydy."); //Löytyykö tiedostoa @unlink($_GET['id']); //Poistetaan.. header("Location: {$_SERVER['PHP_SELF']}"); //uudelleen ohjaus } elseif($_GET['act'] == "uusi" && trim($_GET['id']) == ""){ //UUDEN TIEDOSTON LUONTI: uusi(); //functio hoitaa.. } elseif($_GET['act'] == "nimea" && !isset($_POST['uusinimi'])){ //UUDELLEENNIMEYS: include("yla.php"); uudelleennimeä("1"); //Kun halutaan antaa nimi, niin functio ottaa argumentiksi 1. include("ala.php"); } elseif($_GET['act'] == "nimea" && isset($_POST['uusinimi'])){ uudelleennimeä("2"); //Kun halutaan muutta nimi, niin functio ottaa argumentiksi 2. } } ?>
funktiot.php
<?php function listaa($fileName){ //LISTAUS FUNCTIO chmod($fileName, 0777); echo "<table bgcolor=\"#aaaaaa\" cellspacing=\"1\" cellpadding=\"2\" align=\"center\"><tr><td bgcolor=\"#ffffff\"><b>Tiedoston nimi:</b></td><td bgcolor=\"#ffffff\"><b>Koko:</b></td><td bgcolor=\"#ffffff\"><b>Toiminnot:</b></td></tr>"; foreach (glob("$fileName*.txt") as $file) { //Tulostetaan kaikki halutun hakemison txt filut RUMAAN table taulukkoon. chmod($file, 0666); echo " <tr> <td bgcolor=\"#ffffff\">".str_replace("$fileName", "", $file)."</td> <td bgcolor=\"#ffffff\" align=\"center\">".filesize($file)."</td> <td bgcolor=\"#ffffff\"><a href=\"{$_SERVER['PHP_SELF']}?act=muokkaa&id=$file\">Muokkaa</a>|<a href=\"{$_SERVER['PHP_SELF']}?act=poista&id=$file\">Poista</a>|<a href=\"{$_SERVER['PHP_SELF']}?act=nimea&id=$file\">Nimeä uudelleen</a></td> </tr> "; //Ekaan td:seen tulostetaan tiedoson nimi.. ilman listattavan hakemison nimeä. Toiseen tiedoson koko ja kolmanteen toiminnot: Muokkaa, Poista ja uudelleen nimeys. } echo "</table>"; } function muokkaa($file){ //MUOKKAUS FUNCTIO $filu=fopen($file, "r"); //Tiedosto avataan lukemista varten. $sis=fread($filu, filesize($file)); //Luetaan tiedoston koko sisältö. fclose($filu); $sis=stripslashes(preg_replace("/<br>/", "\n", $sis)); //muutetaan <br>:t rivinvaihdoikis jotka näkyvät textareassa. echo " <form action=\"{$_SERVER['PHP_SELF']}?act=kirjoita&id=$file\" method=\"POST\"> <textarea name=\"muokkaa\" rows=\"30\" cols=\"100\">$sis</textarea><br> <input type=\"submit\" value=\"Lähetä\"> </form> "; } function uusi(){ //UUDEN TIEDOSON FORMIN TULOSTUS FUNCTIO ;) echo " <form action=\"{$_SERVER['PHP_SELF']}?act=kirjoita&id=kirjoita\" method=\"POST\"> <b>Tiedoston nimi:</b><small>Muista tiedoston pääte! (.txt)</small><br><input type=\"text\" name=\"nimi\"><br> <b>Teksti:</b><br> <textarea name=\"muokkaa\" rows=\"30\" cols=\"100\"></textarea><br> <input type=\"submit\" value=\"Lähetä\"> </form> "; } function kirjoita(){ //SUHT MONIKÄYTTÖINEN KIRJOITUS FUNCTIO global $fileName; //p33l0 tarkistyksia if(!isset($_POST['muokkaa'])) exit("Muuttaminen vattii, että lähetät tiedot oikean lomakkeen kautta!"); if($_GET['id'] != "kirjoita") $file=$_GET['id']; if(isset($_POST['nimi']) && trim($_POST['nimi']) != "") $file=$fileName.$_POST['nimi']; $filu=fopen($file, "w"); //avataan tiedosto kirjoitusta varten.. flock($filu, LOCK_EX); //lukkoon $sis=preg_replace("/\n/", "<br>", $_POST['muokkaa']); //muutetaan rivinvaihdot html muotoon. fwrite($filu, $sis); flock($filu, LOCK_UN); //lukko auki fclose($filu); header("Location: {$_SERVER['PHP_SELF']}"); } function uudelleennimeä($mik){ //UUDELLEEN NIMEYS FUNCTIO global $fileName; if($mik == "1"){ //Jos argumentti on 1 echo " <b>Wanha nimi:</b> ".str_replace("$fileName", "", $_GET['id'])." <form action=\"{$_SERVER['PHP_SELF']}?act=nimea&id={$_GET['id']}\" method=\"POST\"> <input type=\"text\" name=\"uusinimi\" value=\"".str_replace("$fileName", "", $_GET['id'])."\" size=\"100\"><br> <input type=\"submit\" value=\"Nimeä uudelleen\"> </form> "; } elseif($mik == "2"){ //Jos argumentti on 2 @rename($_GET['id'], $fileName.$_POST['uusinimi']); //uudelleen nimetään. header("Location: {$_SERVER['PHP_SELF']}"); } } ?>
yla.php
<html> <head> <title>txt filujen muokkaus versio 2.0</title> <style type="text/css"> body, table { font-family: Tahoma, Verdana; font-size: 9pt; color: #000000; } a:link { color: #0000ea; text-decoration: underline; font-weight: normal; } a:visited { color: #0000ea; text-decoration: underline; font-weight: normal; } a:active { color: #0000ea; text-decoration: underline; font-weight: normal; } a:hover { color: #000099; text-decoration: underline; font-weight: normal; } </style> </head> <body>
ala.php
</body> </html>
Näyttäishän tuo toimivan, eikä päästä eikä listaa edes muita kuin .txt filuja lävitse. Tuollahan voi näppärästi toteuttaa vaikka pikamuokkaajan kotisivuille.
Jotain pientä palautetta: Muokkaustilassa on turhan paljon cols:eja minun resolle, menee reilusti yli näyttöalueen. Lisäksi voisit tehdä sellaisen version että skriptin ei ole pakko olla listaa.php, vaan se hakisi oman nimensä automaattisesti. Lisäksi itse koodin sisennykset näyttävät vähän epäloogisilta, ehkä vika on huonossa editorissa? Yksi hyvä on vaikkapa Notepad2.
juu
käytän nyk. tota ite
sain sillee et se muokkaa myös html ja php filuja.
Joo toi sisennys on iha vaa käsin heitetty ku käytin (vielä windows aikana) notepadia.
Vois kyl tosiaan tehä sillee et nimellä ei oo väliä.. ku kerkee ;)
ipe kirjoitti:
Vois kyl tosiaan tehä sillee et nimellä ei oo väliä.. ku kerkee ;)
Vinkki: $_SERVER['PHP_SELF']
lainaus:
sain sillee et se muokkaa myös html ja php filuja.
Joo mut tos on nimenomaan idea et se päästää läpi vaan txt filui ;)
Vielä kun tulostaisi tiedostot aakkosjärjestyksessä. Muuten hyvä
No array_multisortilla onnistuu ihan helposti, mutta siitä on jo koodivinkki täällä putkassakin.
Mun mielestä turhaan tehä ala.php kun sen voi sijottaa sinne ns. "index.php loppuun vai??"
"Lähetä" Napin tilalla vois olla "Tallenna"?
Vaihoin et noi on niinku php filui, pistin ton hakemistolistauksen alakansioo, suojasin .htacces
:)
Tietoturva aukkoi?
eipä toimi minulla ;O
eipä toimi minulla :P
eipä toimi minulla :P
Ei toimi ja AakenStein, vaik ei toimis ei silti triplapostausta tarvis vetää.
Minä ainakin sain tämän toimimaan, kunhan muistatte tehdä txt-nimisen kansion, vaikka siitä ei missään mainita.
Täydellinen tarpeisiini. Kiitos!
Juu...osaisko joku neuvoo miten ton sais vielä niin, et käytössä vois olla useampiakin kansioita.
Eli siis niin, että txt-filet vois olla vielä ryhmiteltyinä omannimisiin kansiohinsa?
Aihe on jo aika vanha, joten et voi enää vastata siihen.