nenačte odeslanou zprávu
14 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Zdravím, v jednoduché knize návštěv bez databáze se po odeslání zprávy, tato nenačte do zadefinovaného souboru kniha.txt . Prosím o radu, kde může být zádrhel. Uvedený zdroják funguje bez problémů na webzdarma, ale na jiných serverech už ne, i když podporujou .php. Dík za každou pomoc. Zdroják: <head> <SCRIPT LANGUAGE="JavaScript"><!-- function zkontroluj(formular) { if (formular.jmeno.value=="") { alert("Vaše jméno (přezdívku) musíte vyplnit!"); formular.jmeno.focus(); return false; } else if (formular.email.value=="") { alert("Adresu elektronické pošty musíte vyplnit!"); formular.email.focus(); return false; } else if (formular.zprava.value=="") { alert("Text zprávy musíte vyplnit!"); formular.zprava.focus(); return false; } else if (window.RegExp) { re = new RegExp("^[^.]+(\.[^.]+)*@([^.]+[.])+[a-z]{2,3}$"); if (!re.test(formular.email.value)) { alert("Zadaná adresa není správnou adresou elektronické pošty!"); formular.email.focus(); return false; } } else return true; } // --> </SCRIPT> </head> <body> <table border="0" cellspacing="0" cellpadding="0" align="center"> <form action="insert.php" method="post" onSubmit="return zkontroluj(this)"> <tr><td width=30><div class="box8"> Jméno:</div> </td><td> <input type="text" name="jmeno" size="30" maxlength="60" > </td></tr> <tr><td width=30><div class="box8"> Email:</div> </td><td> <input type="text" name="email" value="@" size="30" maxlength="60" > </td></tr> <tr><td valign=top width=30><div class="box8"> Vzkaz: </div> </td><td> <textarea cols="29" rows="5" name="zprava"></textarea> </td></tr> <tr><td width=30> </td><td> <center><input type="submit" value="Odeslat"> <input type="Reset" value="Vymazat"></center> </form></td></tr></table> <br><div class="vzkazy"> Příspěvky:</div> <? function Odkaz() { if (File_Exists ("kniha.txt")): echo "<center>"; $prispevek = File("kniha.txt"); $strana = Ceil(Count($prispevek)/20); for ($x=1;$x<=$strana;$x++): echo "<a class=formu href=vzkazy.php?idprispevek=$x>" . ($x*20-19) . "-" . $x*20 . "</a>  "; endfor; echo "</center>"; endif; } Odkaz(); ?> <hr color="#666666"> <? if (File_Exists ("kniha.txt")): if (!IsSet($idprispevek)) $idprispevek=1; $pocatek = $idprispevek*20-20; $konec = $idprispevek*20-1; $prispevek = File("kniha.txt"); for ($i=$pocatek;$i<=$konec;$i++): echo $prispevek[$i]; endfor; endif; Odkaz(); ?> A pro úplnost soubor: insert.php <? $jmeno = HTMLSpecialChars($jmeno); $email = HTMLSpecialChars($email); $web = HTMLSpecialChars($web); $jmeno = "<table with=\"400\"><tr><td width=\"290\"><h4>$jmeno</h4></td>"; $cas = "<td align=\"right\"><h5>" . Date("j. " . "m. " . "Y, " . "H:i:s") . "</h5></td></tr>"; $email = "<tr><td colspan=\"2\"><A class=formu HREF=mailto:$email>$email</A></td></tr>"; $zprava = SubStr($zprava, 0, 1500); $zprava = Trim($zprava); $zprava = HTMLSpecialChars($zprava); $zprava = Str_Replace("\n"," <BR> ", $zprava); $znak = 66; $slovo = Split("[[:blank:]]+", $zprava); for($y=0;$y<Count($slovo);$y++): $slovo[$y] = Trim($slovo[$y]); if (Strlen($slovo[$y])<=$znak): if (EregI("^(www\..+\..{2,3})$", $slovo[$y])): $odkaz = EregI_Replace("^(www\..+\..{2,3})$", "<a href=http://\\1>\\1</a> ", $slovo[$y]); elseif (EregI("^(http://.+\..{2,3})$", $slovo[$y])): $odkaz = EregI_Replace("^(http://.+\..{2,3})$", "<a href=\\1>\\1</a> ", $slovo[$y]); else: $odkaz = $slovo[$y] . " "; endif; $celek .= $odkaz; else: $delit = Ceil(StrLen($slovo[$y])/$znak); for($z=0;$z<$delit;$z++): $cast = Substr($slovo[$y], $z*$znak, $znak); $celek .= $cast . " - "; endfor; endif; endfor; //povolime tyto tagy <b> <u> <i> $zprava = Str_Replace("<b>", "<b>", $celek); $zprava = Str_Replace("</b>", "</b>", $zprava); $zprava = Str_Replace("<i>", "<i>", $zprava); $zprava = Str_Replace("</i>", "</i>", $zprava); $zprava = Str_Replace("<u>", "<u>", $zprava); $zprava = Str_Replace("</u>", "</u>", $zprava); $zprava = "<tr><td colspan=\"2\"><h3><br>$zprava</h3></td></tr></table><hr color=#666666>\n"; $write = StripSlashes($jmeno . $cas . $www . $email . $zprava); if (File_Exists ("kniha.txt")): $fp = FOpen ("kniha.txt", "r"); $data = FRead ($fp, FileSize("kniha.txt")); FClose($fp); endif; $fp = FOpen ("kniha.txt", "w"); FWrite ($fp, $write.$data); FClose ($fp); ?> <head> <META HTTP-EQUIV="Refresh" CONTENT="0; URL=vzkazy.php"> </head>
-
tie zdrojaky sa mi velmi citat nechce.. vypisuje to aj daku chybu? si si isty, ze ten textak ma prava 770?
-
Tomu věřím, ale dík za ochotu. Nevypisuje žádnou chybu, prostě znovu načte stránku s formulářem a prostor kde se má zobrazit zpráva je prázdný.
-
Zkoušel jsem místo kniha.txt soubor book.dat, ale ani ten nepomohl.
-
Jo, txt ma práva 770. Ale všechno marný... Je ještě nejaký řešení?
-
skus pouzivat namiesto npr. $meno $_REQUEST["meno"]; $meno je opodstatnene povazovane za security hazard.. ak ti to nepojde, skus vyhodit <head> <META HTTP-EQUIV="Refresh" CONTENT="0; URL=vzkazy.php"> </head> a dat tam dake debugovacie spravy.. npr. echo "Vytvaram subor"; echo "zapisujem do suboru"; .. a inac pouzivaj na redirect headers("Location: vzkazy.php"); exit;
-
Zatím se to nerozběhlo. Možná dělám někde chybu. Nemůžete mi to prosím sepsat dohromady. Mockrát díky.
-
skus toto> $jmeno = HTMLSpecialChars($_REQUEST["jmeno"]); $email = HTMLSpecialChars($_REQUEST["email"]); $web = HTMLSpecialChars($_REQUEST["web"]);
-
Ludko: Měl by si se opravit, i když to fato asi pochopil. Fci headers já osobně neznám.
-
sorry header(..);
-
A mas ty vobec nainstalovane na tom pc PHP?
-
Díky moc všem za pomoc! Zápis v scriptě je opraven, dík. Problém byl také na straně serveru, kde jsou vypnuté globálni proměnné. Když vše nastavili, tak zápis funguje jak má.
-
ono tie globalne premenne si nechaj vypnute.. je to bezpecnostne riziko si to takto povolovat..
-
Áno. To jistě. Ještě jednou dík.