Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Tiedostoon kirjoittaminen

Grimmi [06.11.2005 19:51:58]

#

Minä täällä taas häiritsemässä, mutta nyt on sellainen ongelmana että en pysty kirjoittamaan luomaani tiedostoon.

<?
$tiedosto = "foo.txt";

	fopen("archive/$tiedosto", "w");
	chmod("archive/$tiedosto", 0777);

	$somecontent = "Fooo!\n";

	// Let's make sure the file exists and is writable first.
	if (is_writable($tiedosto))
	{

   	// In our example we're opening $filename in append mode.
   	// The file pointer is at the bottom of the file hence
   	// that's where $somecontent will go when we fwrite() it.
   		if (!$handle = fopen($filename, 'a'))
		{
        		echo "Cannot open file ($tiedosto)";
        		exit;
   		}

   	// Write $somecontent to our opened file.
   		if (fwrite($handle, $somecontent) === FALSE)
		{
       			echo "Cannot write to file ($tiedosto)";
       			exit;
   		}

   		echo "Success, wrote ($somecontent) to file ($tiedosto)";

   		fclose($handle);

	}

	else
	{
   		echo "The file $tiedosto is not writable";
	}
?>

Herjauksena tulee The file foo.txt is not writable, tiedosto ja sen kansio on 777, mistä voisi löytyä vikaa?

Mazuli [06.11.2005 20:01:14]

#

kokeile vaihtaa rivi

fopen("archive/$tiedosto", "w");

muotoon

$fp = fopen("archive/$tiedosto", "w");
fclose($fp);

Grimmi [06.11.2005 20:28:04]

#

Eipä tykännyt toimia :/

panttu [06.11.2005 23:31:11]

#

Nuo rivit vaikuttaisi olevan hassusti

fopen("archive/$tiedosto", "w");
chmod("archive/$tiedosto", 0777);

eli ensin yrität avata ja sitten muokata sen oikeuksia, eli ensin muutetaan ne oikeudet ja sitten vasta avataa tiedosto käsiteltäväksi.

Toiseksi fopenin antama kahva pitänee tallentaa muuttujaan, koska tiedoston käsittely funktiot kaipaavat sitä

tsuriga [06.11.2005 23:40:18]

#

Tuossa ekalla fopenilla yritetään luoda tiedosto, mutta siinä pitäisi olla "w+" ilmeisesti. Kannattaisi lisäksi kirjoittaa itse tuo koodi kokonaan uusiksi eikä lisäillä vain sinne tänne.

Vastaus

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

Tietoa sivustosta