PHP in knjiga gostov
Pozdravljeni!
Imam en manjši problem pri izdelavi obrazca Knjiga gostov in sicer, mi noče podatkov zapisati v datoteko.txt, bere pa mi pravilno iz te datoteke (če seveda vanjo direktno napišem kake podatke).
KAr se tiče kode, sem jo delala po knjigi, tudi na internetu sem že čekirala in imam vse tako kot je treba.
Zato me zanima, ali je kakšna druga fora, mogoče kaj povezati al pa kaj. Datoteko.txt imam shranjeno v isti mapi kot to php datoteko.
Žal kode ne morem napisat zdajle, ker sem v službi.
Vem, da je težko takole napamet brez kake kode pomagati, sam me zanima, če je res kaka fora kje drugje, kot v sami kodi.
Hvala vnaprej in lep pozdrav
Petra
Prav si ugotovila, takole brez kode nekaj na pamet govorit je res težko.
Poglej mogoče edino kako odpiraš datoteko oz kateri mode uporabljaš pri fopen(). Če samo dodajaš, potem bo verjetno “a”, če tudi bereš pa “a+”.
Drugače pa napopaj kodo, pa bomo že našli kje ga sračka.
Ali pa si z neta prenesi že narejen guest book, tega je za php res na kile.
Nič nisi napisala kateri sistem uporabljaš, ker včasih so problemi s pravicami/lastništvom na datotekah. Sploh če to delaš v Linux-u, bi znal biti razlog to, saj deamon teče pod drugim userjem kot je lastnik “na-roko” ustvarjene datoteke.
Za Winse pa ne bi znal kaj konkretnega povedat.
Drugič pa napiši vsaj naslednje podatke:
Operacijski sistem
Ime in verzija http-ja
Verzija PHP-ja
Bo lažje za tiste, ki pomagajo…
LP
Hojal!
No, meni se je po nekaj urnem mrku uspelo priklopiti.
Pdatki:
Win XP
PHP verzija 3.0
Apache / 2.0.52 (Win 32) 4.3.10.
Pišem v DW MX
Koda, ki jo mam zapisano:
Preprosta knjiga gostov!
Preprosta knjiga gostov
” method=”post”>
\n”);
fclose($datoteka);
}
?>
Shranjeni komentarji:
Kaj zadeva naredi:
ko besedilo vpišem v okvir in pošljem, se le ta ne zapiše v dano datoteko. Če pa direktno vpišem kaj v datoteko txt, mi na obrazcu normalno izpiše komentarje. Mislim, da se koda izvede, zapis namreč izgine. Kar se tiče javljanja napak, ni bilo nič opaznega, moram pa priznati, da ne vem, kako zgleda če PHP javi napako. Datoteke so shranjenev mapi htdocs.
Sem pa tudi prekopirala kodo s te strani
in zadeva ravno tako ne deluje. Enostavno nič ne zapiše v datoteko.
Tadej, odgovora na tvoje vprašanje pa ne vem, ker ne vem točno, kaj naj bi to pomenilo. Žal.
Hja, to bi bilo to!
Za vsak nasvet bom hvaležna
Lp, Petra
>> Tadej, odgovora na tvoje vprašanje pa ne vem, ker ne vem točno, kaj naj bi to pomenilo. Žal.
Mislil, je, da preveri pravice datoteke mnenja.txt na tvojem računalu, torej v raziskovalcu desni klik in lastnosti, ter zavihek Varnost, kjer vidiš kateri uporabniki lahko to datoteko berejo, pišejo, brišejo, …
Poskrbi, da bo uporabnik pod katerim teče apache imel pravice za branje in pisanje v to datoteko, za branje očitno ima pravice, če ti izpiše vsebino.
Kode nisem gledal, tako da ne vem ali je OK, ali ne, je pa najboljše da se obrneš na avtorja, ki je postal kodo.
LP
Če bi bilo kaj narobe s pravicami, bi ti php vsaj moral javiti napako v stilu :
Warning: fopen(mnenja.txt): failed to open stream: Permission denied in……
ker že fopen() odpira za read/write in bi moral zajokat.
Če tebi po pritisku gumba enostavno zbriše polje, v datoteko pa ne napiše nič, potem je problem verjetno v tem, da se if zanka sploh ne izvede, ker $komentar ni postavljen.
Najbolj verjetno je to zaradi tega, ker imaš v php.ini register_globals=off.
Imaš 2 možnosti, ali v php.ini (ponavadi v windows direktoriju) poiščeš register_globals in spremeniš off v on (kar sicer s vidika varnosti kao ni najboljše), ali pa enostavno spremenljivko inicializiraš pred if stavkom
$komentar = $_POST[“komentar”];
Možno da boš zaradi tega imela probleme tudi z
$PHP_SELF
kar nadomestiš z
$_SERVER[‘PHP_SELF’]
No in ko se bo if stavek dejansko izvedel, potem pa lahko prideš tudi do problemov z pravicami, to so ti pa itak že vse lepo napisali.
Forum je zaprt za komentiranje.