fakt už nevím :(

Chci něco zapsat z formuláře do filu ( fopen("data/data.txt", "a") ) a ono mi to píše tohle:


Error opening data file.

Warning: fputs(): supplied argument is not a valid stream resource in D:\www\pes\armyburzacz\www\__PHP\include\shared.inc.php on line 374

Warning: fclose(): supplied argument is not a valid stream resource in D:\www\pes\armyburzacz\www\__PHP\include\shared.inc.php on line 375

Pomozte prosím.....
rtfm, fopen vraci deskriptor na otevreny soubor a ten se cpe do fputs a fclose
http://mirrors.inway.cz/manual/cs/function.fopen.php
http://mirrors.inway.cz/manual/cs/function.fputs.php
http://mirrors.inway.cz/manual/cs/function.fclose.php
fopen ti soubor jen otevře, zapsat data tam musíš např.

<form action="tvujscript.php" method="post">
<textarea cols="30" rows="5" name="text"></textarea><br />
<input type="submit" value="Zapsat">
</form>
<?php

$text=$_POST["text"];
$fp=fopen("data/$data.txt","a");
fputs($fp,$text);
fclose($fp);
?>
musíš mít samozřejmě vytvořen adresář data.
atd.
v php5 je to jednoduchsie :)

int file_put_contents ( string filename, mixed data [, int flags [, resource context]] )


filename
The file name where to write the data

data
The data to write. Can be either a string, an array or a stream resource (explained above).

flags
flags can take FILE_USE_INCLUDE_PATH, FILE_APPEND and/or LOCK_EX (acquire an exclusive lock), however the FILE_USE_INCLUDE_PATH option should be used with caution.

context
A context resource



jednoduchy priklad>
file_put_contents("data.txt",$_POST["text"]);


akurat smola, ze na wz.cz este nieje php5 :(

Pořád mi to nejde, i když využívám vaše rady :(.

Ten kód na zpracování dat z formuláře je následující:


$fp=@fopen("data/data.txt", "a");
//$fp=@fopen("data/data.txt", "a");
if($fp <= 0):
?>Error opening data file.<br><?php
endif;
fputs($fp, $content[$size]."\n");
fclose($fp);

no a ono to vyhučí na tý podmínce if($fp <= 0):
Se souboramama prakticky nedelam, pac DB rulez ale rekl bych ze ta podminka je spatne logicky.

Pokud by ses takhle ptal tak bys mel $fp mit neco jako FREAD ..abys zjisti pocet znaku a jinak zmenit podminku


if (!$fp)
....
kdyz vyhodis ten zavinac, tak ti to mozna rekne, kde je chyba
>> if($fp <= 0):

Co je to za kravinu? Udělej to, jak to píše 23k.

<?php
$fp = fopen("data/data.txt", "a");
if(!$fp):
?>Error opening data file.<br><?php
endif;
fputs($fp, $content[$size]."\n");
fclose($fp);
?>

Taky jde o to, jestli vůbec proměnná $content[$size] něco obsahuje. Chtělo by to sem napsat více kódu, resp. i kód formuláře.
Spise bych to hadal na neexistujici adresar "data". Nebo proste neni tam kde ma byt. Vice napovi prave odstraneni @ u fopen. Ty chyby jsou typicke u chybne zadanych cest.

>>Taky jde o to, jestli vůbec proměnná $content[$size] něco obsahuje.
Ten nema vliv na chybu. Kdyby promenna nic neobsahovala, tak bude soubor prazdny.
A jeste ten zapis neni dobre osetren.

<?php
$fp = fopen("data/data.txt", "a");
if(!$fp)
print "Error opening data file.<br>";
else
{
fputs($fp, $content[$size]."\n");
fclose($fp);
}
?>