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