Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tarina ei tallennu txt tiedostoon

novari [24.11.2010 11:33:48]

#

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();
 }

Matso [24.11.2010 13:33:01]

#

Huomaathan, että jos alla on Windows, oletuksena yleensä tunnetut tiedostopäätteet piilotetaan explorerissa. Ei tästä sattuis olemaan kyse?

novari [24.11.2010 14:34:12]

#

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.

novari [24.11.2010 14:49:10]

#

Testasin sillai että echo:tin rivin 17.sta $tiedosto1 sisällön ja sain tulokseksi:
Resource id #8

Mitä tuo viestittää?

Lebe80 [24.11.2010 14:57:35]

#

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. "

Vastaus

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

Tietoa sivustosta