Stránka 1 z 1

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

Odeslat příspěvekNapsal: 5. 1. 2006 00:07
od zenofex
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í.

Odeslat příspěvekNapsal: 5. 1. 2006 00:42
od 1maty1
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"

Odeslat příspěvekNapsal: 5. 1. 2006 00:45
od wojta
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.

Odeslat příspěvekNapsal: 5. 1. 2006 00:55
od Vebloud
Script musí mít práva pro zápis do souboru a tio zdá se nemáš, neboť permision denied znamená přístup zamítnut.

Odeslat příspěvekNapsal: 5. 1. 2006 11:12
od zero0x
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.

Odeslat příspěvekNapsal: 5. 1. 2006 11:23
od Mike.M
anebo lepsi by bylo pouzit databazi

Odeslat příspěvekNapsal: 5. 1. 2006 11:25
od Vebloud
Na co administratora, stačí pořádný FTP klient. Tím si to nastaví na 777 sám.

Odeslat příspěvekNapsal: 5. 1. 2006 12:16
od Flaxinet (novy)
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".

Práva

Odeslat příspěvekNapsal: 7. 1. 2006 10:24
od Penguin007
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)

Odeslat příspěvekNapsal: 7. 1. 2006 22:45
od tark
připoj se tam total commanderem a napiš do command lajny "chmod 777" a je to :-)