[PHP] problém so zapísaním do súboru

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod zenofex 4. 1. 2006 23:07

Zdravím,
mám nasledovný problém: Chcem, aby vedel návštevník mojej stránky nechať na nej odkaz. Riešim to formulárom, v ktorom zadá meno a text a pomocou metódy post odošle údaje. Údaje spracuje súbor aplikacia.php, ktorá má za úlohu otvoriť súbor data/odkazovac.txt a zapísať doňho dáta odoslané užívateľom /cez formulár/. Tu je skript nachádzajúci sa v súbore aplikacia.php :

Kód: Vybrat vše
<?php
  $datum=Date("d.m.Y");
  $cas=Date("H:i:s");
  if(!$subor=fopen("data/odkazovac.txt","a"))
  {
  echo("Súbor sa nepodarilo otvori�!");
  }
  else
  {
  fwrite($subor,"<tr bgcolor=#C7DEE6><td class='td-legacy'><strong>Meno:</strong> $meno </td><td class='td-legacy'><strong>Dátum:</strong> $datum </td><td class='td-legacy'><strong>Èas:</strong> $cas </td></tr>");
  fwrite($subor,"<tr><td colspan=3 class='td-legacy'>$text </td></tr>");
  fclose($subor);
  }
  ?>[/


Doma na Apache serveri mi to ide. Keď to však umiestnim na server na Internete /podporujúci php5/, tak mi pri odoslaní formuláru súbor aplikacia.php vypíše túto hlášku:

"Warning: fopen(data/odkazovac.txt): failed to open stream: Permission denied in aplikacia.php on line 116
Súbor sa nepodarilo otvoriť! "

Kde môže byť prosím Vás chyba?

//khihihi - [code]!


// mbing : Téma přesunuto ● z Programování do Tvorba webových stránek a aplikací.
Naposledy upravil zenofex dne 28. 8. 2006 14:32, celkově upraveno 1
zenofex
Junior
Uživatelský avatar

Odeslat příspěvekod 1maty1 4. 1. 2006 23:42

me napada ze na serveru pac mi neco podobnyho delal wz.cz tam se to srovnalo asi za dva dni po nahrani souboru
predpokladam ze tusis co znamena "Permission denied"
1maty1
Junior

Odeslat příspěvekod wojta 4. 1. 2006 23:45

Musí být nastavená práva k zápisu v adresáři data a k souboru. Mělo by to jít nastavit přes FTP.
Naposledy upravil wojta dne 5. 1. 2006 00:07, celkově upraveno 1
wojta
Pokročilý
Uživatelský avatar

Odeslat příspěvekod Vebloud 4. 1. 2006 23:55

Script musí mít práva pro zápis do souboru a tio zdá se nemáš, neboť permision denied znamená přístup zamítnut.
Žít a nechat žít, ty máš svůj názor, já mám svůj názor, já ti nebudu nutit svůj, nemusím souhlasit s tvým, ale udělám vše, abys ho mohl svobodně vyjádřit.
Vebloud
Ex-moderátor
Uživatelský avatar

Odeslat příspěvekod zero0x 5. 1. 2006 10:12

to je jasne ako hrom. apache ktore bezi na servri je k nemu akoyby pripojene cez pouzivatela. lebo ak sa chces pripojit na server potrebujes meno a heslo. aj apache sa takto pripojuje. a problem je v tom ze ten pouzivatel ma pravo iba citat, posielat to apache ktore spracuje php, no jednoducho ide o to ze php skript nema pravo zapisovat do suboru. ak to chces vyriesit poziadaj administratora, aby ti nastavil prava.
zero0x
Junior

Odeslat příspěvekod Mike.M 5. 1. 2006 10:23

anebo lepsi by bylo pouzit databazi
Zivot je kurevsky tezky.
Mike.M
Mírně pokročilý
Uživatelský avatar

Odeslat příspěvekod Vebloud 5. 1. 2006 10:25

Na co administratora, stačí pořádný FTP klient. Tím si to nastaví na 777 sám.
Žít a nechat žít, ty máš svůj názor, já mám svůj názor, já ti nebudu nutit svůj, nemusím souhlasit s tvým, ale udělám vše, abys ho mohl svobodně vyjádřit.
Vebloud
Ex-moderátor
Uživatelský avatar

Odeslat příspěvekod Flaxinet (novy) 5. 1. 2006 11:16

normálně se tam připoj pomocí Total Commandera, ukaž na ten soubor, do kterého chceš psát, pak z manu "Soubory" dej "Změna atributů" a nastav "666" neboli "Zápis" pro všechny skupiny, kdyby to nešlo, tak dej "777".
Flaxinet (novy)
Junior
Uživatelský avatar

Odeslat příspěvekod Penguin007 7. 1. 2006 09:24

Pokud vyvíjíš na win, tak mě nepřekvapuje, že pojem práva k souboru Ti moc neříká. Na serveru musí existovat ten soubor tak, že k němu má přístup apache pro zápis a čteni, protože zajisté nevíš, v jaké jsi skupině Ty, v jaké apache a určitě jej budeš i Ty sám chtít zapisovat/číst, tak optimální práva toho souboru jsou 0666, tj rw-rw-rw- (místo pomlčky tam může být x, ale to znamená spustitelný, ten osmičkový zápis si odvodíš snadno)
Penguin007
Junior

Odeslat příspěvekod tark 7. 1. 2006 21:45

připoj se tam total commanderem a napiš do command lajny "chmod 777" a je to :-)
tark
Junior
Uživatelský avatar


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků