Ohjelman idea on että käyttäjä voi kirjoittaa esittelyn itsestään ja muita juttuja vaikka harrastuksestaan. Myöhemmin niitä voi editoida tai poistaa kokonaan.
Jokaisella käyttäjällä on oma kansio johon talletetaan hänen tekemänsä jutut että jokaisella voi olla saman niminen tiedosto esim. esittely.
Minulla on ongelmana saada tallennettua tarina txt tiedostoon. Tarina tallentuu oikealla nimellä mutta ilman tuota txt päätettä.
Siitä tuleekin toinen kysymys, miten saan poistettua nuo tiedostot joissa ei ole mitään päätettä?
Koodipätkässä olen tarkistanut mielestäni kaiken oleellisen löytämättä virhettä. Tuolla koodissa echolla tulostan $polku muuttujan joka on oikein.
Esim. ville/esittely.txt mutta fopen ei tee tuota tiedostoa vaan tulee esittely niminen tiedosto ilman txt päätettä. Missä teen virheen?
//tallennus pätkä isommasta ohjelmakokonaisuudesta if (($_POST["talletus"] != "")and($_POST["otsikko"] != "")) { $kayttaja = $_SERVER["REMOTE_USER"]; $viesti = $_POST["editoi"]; // otetaan muuttujaan kirjoitettu juttu $viesti = strip_tags($viesti); //estetään HTML-tagien käyttäminen $viesti = stripcslashes($viesti); //poistetaan kenoviivat $otsikot[$id] = $_POST["otsikko"]; // talletetaan taulukkoon otsikko $polku = $kayttaja."/".$otsikot[$id].".txt"; // muodostetaan polku johon viesti talletetaan // echo $polku; //polku on oikein // die; $tiedosto = fopen($kayttaja."/otsikot.txt", "w"); //avataan tiedostot tallennusta varten $tiedosto1 = fopen($polku, "w"); //siis tässä menee jokin pieleen fwrite($tiedosto1, $viesti); // tallennetaan juttu tiedostoon, tallentaa mutta ei tee txt päätteistä tiedostoa for ($j = 0; $j <= $montako; $j++) { if ($otsikot[$j] == "") continue; // jos tyhjä jatketaan fwrite($tiedosto, $otsikot[$j]);// tämä toimii } fclose($tiedosto); // suljetaan tiedostot fclose($tiedosto1); header("Location:" . "linkit.php");// palataan takaisin exit(); }
Huomaathan, että jos alla on Windows, oletuksena yleensä tunnetut tiedostopäätteet piilotetaan explorerissa. Ei tästä sattuis olemaan kyse?
No ei varmaankaan kun ftp-ohjelmalla niitä ei voi poistaa. Ftp-ohjelma näyttää muut txt-päätteiset tiedostot. Samaten mbnetin kotisivumuokkain herjaa ettei niitä voi poistaa.
Äsken kun kävin ftp-ohjelmalla katselemassa niitä tiedostoja niin huomasin että yhden tiedoston tämä minun "räpellys" on tehnyt txt-päätteisenä. En muista miten/milloin tämä on tullut mutta aika ihmeelliseltä alkaa tuntumaan.
Testasin sillai että echo:tin rivin 17.sta $tiedosto1 sisällön ja sain tulokseksi:
Resource id #8
Mitä tuo viestittää?
Sitä, että se viittaa tuohon avattuun tiedostoon, eli tiedosto on onnistuneesti "avattu". Älä siis vahingossakaan luule, että tiedoston sisällön saat fopenilla selville.
php.net - fopen:
"Returns a file pointer resource on success, or FALSE on error. "
Aihe on jo aika vanha, joten et voi enää vastata siihen.