Autor Zpráva
Anonymní
Profil *
Ahoj, prosím poraďte.
Napsala jsem jednoduchou knihu návštěv:

<?
IF (ISSET($_POST['jmeno'])) {
$jmeno = $_POST['jmeno'];
} ELSE {
$jmeno = '';
}

IF (ISSET($_POST['email'])) {
$email = $_POST['email'];
} ELSE {
$email = '';
}
?>

<FORM action="kniha.php" method="post">
<TABLE>
<TR><TD align="left">Jméno:<INPUT type="text"
value="<?php ECHO $jmeno; ?>" name="jmeno"></TD>
<TD align="right">E-mail:<INPUT type="text"
value="<?php ECHO $email; ?>"
name="email"></TD></TR>
<TR><TD colspan=2 align="left">Zpráva:<BR>
<TEXTAREA name="text" rows=5 cols=60></TEXTAREA></TD></TR>
</TABLE>
<INPUT type="submit" name="zapsat"
value="Odeslat zpravu">
</FORM><HR>
<?
IF (ISSET($_POST['zapsat'])) {
$fp=fopen("./kniha.dat","a");
IF (!$fp) EXIT;
$prispevek="<i>".htmlspecialchars($jmeno)."</i>";
IF ($email)
$prispevek = "<a href=\"mailto:".htmlspecialchars($email)."\"\>".$prispevek."</a>";
$prispevek .= ", ".date("j.n.Y G:i:s")."\n<br>".
nl2br(htmlspecialchars($_POST["text"]))."<hr>\n";
fputs ($fp, $prispevek);
fclose($fp);
}

IF (File_exists(".\kniha.dat"))
readfile("./kniha.dat");
?>

..... doma mi funguje (php4.3.10), ale na www.seige.wz.cz nejen že se nevytvoří soubor "kniha.dat", ale když ho teda vytvořím sama, odeslaný text se do něj sice zapisuje, ale už se nenačítá zpět na stránku.

Co s tím :?) Dík, Kris.
faster
Profil
No, neviem ti síce povedať v čom je problém, ale chcel by som upozorniť na niekoľko vecí.

- nepíš funkcie veľkými písmenami (síce to funguje, ale asi to radšej nerob ;-) ..úplne subjektívny názor

- používaj takéto lomítko --> /
toto --> \ je windowsácke, to pod linuxom funguje (čiže, práve preto ti nenačítava cez ten readfile).

A skús zmeniť práva súboru.
chmod 0777 skript.php

Prípadne takisto pre adresár kde zapisuješ, a najlepšie ešte aj vlastníka cez chown. Asi takto (akurát neviem na akú skupinu):
chown nobody.nobody skript.php


Proste pomeň práva, všetkého čo ti príde pod ruku a basta ;-)
*Čvachta*
Profil *
IF (File_exists(".\kniha.dat"))
readfile("./kniha.dat");

Máš tam dle mého špatné cesty k souborům. Zkus je napsat jinak.
*Čvachta*
Profil *
Asi bude stačit upravit toto

IF (File_exists(".\kniha.dat"))

na

IF (File_exists("./kniha.dat"))
faster
Profil
Samozrejme, to je to čo som myslel.

if(file_exists("./kniha.dat"))

readfile("./kniha.dat");


Tak to má byť. Ale nerieši to všetky problémy. A okrem toho, teraz sa ešte môžeš netrápiť s lomítkami a napísať iba kniha.dat.
*Čvachta*
Profil *
Myslím že je to řeší.
Kris.
Profil *
Dík,
lidi jste zlatý,
vážně je to tím lomítkem.

Taktéž nad ostatními připomínkami, jako jsou ty velký písmena se pro příště zamyslím :-)

Zas nad nějakým podobným "neřešitelným problémem"
se těšim nashle, K:-)
faster
Profil
Do pukla, ako mam zrusit sledovanie tejto prekliatej temy?
Michal Škrabálek
Profil
faster
Proste pomeň práva, všetkého čo ti príde pod ruku a basta ;-)

To je přístup, který se vám jednou nevyplatí, stejně jako Jaromírovi s ukládáním použitých zápalek zpět do krabičky ;) Obecně je důležité v zájmu bezpečnosti nastavovat v aplikaci nejmenší nutná práva.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0