Autor | Zpráva | ||
---|---|---|---|
matesek Profil |
#1 · Zasláno: 16. 1. 2010, 21:10:01 · Upravil/a: matesek
Mám problém s chatem . Když dám odeslat zprávu , tak se mi hodí chyby :
Warning: fopen(./data.txt) [function.fopen]: failed to open stream: Permission denied in /home/free/tym.cz/r/rockink/root/www/loged/chat/form.php on line 16 Warning: fputs(): supplied argument is not a valid stream resource in /home/free/tym.cz/r/rockink/root/www/loged/chat/form.php on line 17 Warning: fclose(): supplied argument is not a valid stream resource in /home/free/tym.cz/r/rockink/root/www/loged/chat/form.php on line 18 const.php <? $subor = "./data.txt"; // cesta k suboru, kde sa budu ukladat spravy $maxDlzkaMeno = 20; // maximalna dlzka retazca "meno" $maxDlzkaSprava = 100; // maximalna dlzka retazca "sprava" $maxPocetOdkaz = 50; // kolko poslednych odkazov sa ma zobrazovat ? // format zobrazenia spravy $format = sprintf("%s <b>%%%d.%ds: </b>%%-%d.%ds<br>",Date("d.m.Y H:i:s"),$maxDlzkaMeno,$maxDlzkaMeno,$maxDlzkaSprava,$maxDlzkaSprava); // kolko bajtov obsahuje maxPocetOdkaz ? $maxOdkazByte = StrLen(sprintf($format,"","")) * $maxPocetOdkaz; ?> form.php : <html> <!-- Ak nie je vyplnene meno - zameraj nan kurzor. Inak zameraj na spravu. --> <body bgcolor="#0099ff" onLoad="if(document.f.meno.value.length) document.f.sprava.focus(); else document.f.meno.focus();"> <? require "./const.php"; if($sprava != ""): // ak sprava nieco obsahuje if($meno == "") $meno = "anonym"; // ak uzivatel nezadal meno bude "anonym" else $meno = StripSlashes(StrTr($meno,"<>&","***")); // odstran lomitka spred citlivych znakov a nahradi niektore nebezpecne znaky $sprava = StripSlashes(StrTr($sprava,"<>&","***")); // odstran lomitka spred citlivych znakov a nahradi niektore nebezpecne znaky $fp = fopen($subor,"a"); // otvor subor pre doplnenie fputs($fp,sprintf($format,$meno,$sprava)); // naformatuj odkaz a zapis ho do suboru fclose($fp); // zatvor subor ?> <script language="JavaScript"> parent.frames["show"].location = "show.php" // bola pridana sprava, obnov zobrazenie odkazov </script> <? endif; ?> <form method=post name="f"> <table border="0" align="center"> <tr align="center"> <td>Jméno</td> <td>Zpráva</td> </tr> <tr align="center" valign="baseline"> <td><input type="text" name="meno" size="20" maxlength="<?echo $maxDlzkaMeno?>" value="<?echo $meno?>"></td> <td><input type="text" name="sprava" size="30" rows="3" maxlength="<?echo $maxDlzkaSprava?>"> <input type=submit value=" Ok "></td> </tr> </table> </form> </body> </html> head.php <? Header("Pragma: no-cache"); Header("Cache-control: no-cache"); Header("Expires: ".GMDate("D, d m Y H:i:s")." GMT"); ?> <html> <head> <title>Kontrola nových odkazov</title> <style type="text/css"> input { background-color: #cc00cc; color: #000000; border-left: 0px; border-right: 0px; border-top: 0px; border-bottom: 0px; } </style> </head> <body bgcolor="#0099ff"> <? require "./const.php"; ClearStatCache(); // vymaz vyrovnavaciu pamet $newSize = FileSize($subor); // zisti velkost suboru if($newSize != $oldSize): // pribudol novy odkaz ? ?> <script language="JavaScript"> parent.frames["show"].location = "show.php" // obnov ramec "show" </script> <? endif; ?> <form name="form"> Kontrola nastane za <input type="text" name="timer" size="3" readonly> s </form> <script language="JavaScript"> var t = 5 // konstanta v sekundach znovunacitania stranky function Timer(){ document.form.timer.value = t // vypis do formulara if(!t) // uplynula doba casovaca parent.frames["head"].location = "head.php?oldSize=<?echo $newSize?>" else{ t-- setTimeout("Timer()",999) // spusti opat o 1 sekundu } } Timer() // spustenie odpocitavania </script> </body> </html> index.php <? require "./const.php"; ClearStatCache(); // vymaz vyrovnavaciu pamet if(!File_Exists($subor)) // ak subor neexistuje - vytvor ho FClose(FOpen($subor,"w")); ?> <html> <head> <title>Jednoduchý "chat"</title> </head> <frameset rows="100,*,20"> <frameset cols="34%,*"> <frame src="head.php?oldSize=<?ClearStatCache(); echo FileSize($subor)?>" name="head"> <frame src="form.php?name=&sprava=" name="form"> </frameset> <frame src="show.php" name="show"> </frameset> </html> show.php <? Header("Pragma: no-cache"); Header("Cache-control: no-cache"); Header("Expires: ".GMDate("D, d m Y H:i:s")." GMT"); ?> <html> <head> <title>Zobrazenie odkazov</title> </head> <body bgcolor="#00ccff"> <p style="font-family: 'ARIAL CE', 'HELVETICA CE','ARIAL','HELVETICA'; font-size: 12px;"> <? require "./const.php"; // nacitaj "konstanty" $fp = FOpen($subor,"r"); // otvor subor na citanie ClearStatCache(); // vymaz vyrovnavaciu pamet $velkostSuboru = FileSize($subor); // zisti velkost suboru if($velkostSuboru > $maxOdkazByte) // uz mam v datovom subore viac sprav ako maxPocetOdkaz ? FSeek($fp,$velkostSuboru - $maxOdkazByte); // zmen poziciu na poslednych maxPocetOdkaz FPassThru($fp); // vypis suboru od aktualnej pozicie & zatvor subor ?> </p> </body> </html> |
||
Beavis Profil |
#2 · Zasláno: 16. 1. 2010, 21:26:05
matesek:
Má soubor data.txt CHMOD 0777? |
||
matesek Profil |
#3 · Zasláno: 16. 1. 2010, 21:28:52
data.txt jsem vytvořil v textovém dokumentu a nic víc jsem s tím nedělal . Myslím , že to na starém webu takhle fungovalo , ale nevím . Taky nevím , co myslíš , že jsem měl udělat .
|
||
matesek Profil |
#4 · Zasláno: 17. 1. 2010, 08:42:17
Mohl by někdo prosím poradit ? Ukázka je ZDE
|
||
fuckin Profil |
#5 · Zasláno: 17. 1. 2010, 09:48:49
matesek:
Proč sem dáváš všechny soubory? Myslíš, že je někdo bude číst? Bohatě stačí ten soubor, ve kterém je chyba. Jasně ti to píše, že nemáš přístup k souboru. Již Beavis se tě ptal na práva ale ty jsi nedokázal odpovědět. Změn CHMOD na 777, jestli to nepomůže, tak čtení souboru zkus přes file_get_contents() |
||
matesek Profil |
#6 · Zasláno: 17. 1. 2010, 16:12:42
CHMOD změněn na 777 . Nejprve jsem nevěděl co to je , ale teď již vím , že jsou to práva souboru . Funguje to dobře .
fuckin: „Proč sem dáváš všechny soubory? Myslíš, že je někdo bude číst? Bohatě stačí ten soubor, ve kterém je chyba.“ Dal jsem je sem , protože navzájem k sobě nějak souvisí . yslel jsem , že by ta chyba mohla být třeba i někde jinde . |
||
Časová prodleva: 13 let
|
0