[ Dachaz @ 07.05.2002. 21:54 ] @
Hail!

glavni problem je drugi naveden u subjectu, LM:
napravio sam "admin script" koj itself pishe fajlove, pravi foldere etc. i sve je to divno na Windows serveru ALI, na Unix serveru imam problema sa dozvolama (file permissions). Snashao sam se za pralvjenje foldera (umesto obichnog mkdir uzmem ftp_mkdir (naravno, uz prethodne ftp_connect, ftp_login, etc), ali i dalje imam problema sa pravljenjem novih (praznih ili punih) fajlova!! (ne seccam se da li mi je i chmod uopshte uspeo (mada mi to i nisam mogao da testiram najbolje jer scripta nije mogla da napravi fajlove!)

so, da li postoji neka ftp_ komanda sa kojom bi se napravio (bar) prazan file u koj bi posle sa fwrite dodao shta mi treba ili chak da umesto fwrite-a koristim neshto shto bi napisalo ceo file ??

ako ne, da li je mogucce promeniti dozvole u .htaccessu (mada ga nisam video nigde na serveru)


--

e sad drugi i manje vazhan deo:

kako da text oblika

"Red 1
Red 2
Red 3"
(dakle "Red1\nRed2\nRed3") pretvorim u "Red1<br>Red2<br>Red3" ??

nl2br() pretvara u "Red1\n<br>\nRed2\n<br>\nRed3" a kad pokusham da ubijem \n-ove sa stripcslashes() ne dobijem nishta!! (tj. ostane isto).
pokushavao sam i sa strip_tags, eregi_replace, stripslashes, htmlentites(na originalni text) ... i nishta!!

any help?



hvala vi velika!
[ Zoran Rašković @ 07.05.2002. 22:17 ] @
Za ovo drugo mozda

Code:

$text =ereg_replace("(\r\n|\n|\r)", "<br />",$text);


Ne znam jel ovo pomoglo?
[ _owl_ @ 07.05.2002. 22:52 ] @
FTP je kao sto mu samo ime kaze namenjen prenosu fajlova a ne njihovom kreiranju na FTP serveru. Ne znam zasto ti je potrebno da napravis prazan fajl i to preko FTP-a ali kad vec imas dozvolu za pisanje sto lokalno iz PHP-a ne napravis neki fajl ( u tmp direktorijumu) i onda ga prebacis na ftp. Eventualno (citaj sigurno nije) je mozda dozvoljeno da koristis SYSTEM ili QUOTE naredbe koje ti dozvoljavaju da pozivas druge programe preko FTP-a.
[ RAZZLEDAZZLER @ 08.05.2002. 00:23 ] @
Prvo za ovaj nl2br
Ne znam tachno kako unosish taj text, ali recimo da je ovako neko reshenje

$text = str_replace("<br />", "", $text);

Ja sam ovde stavio <br /> jer meni ubacuje takve br tagove [da bi bili kompatibilni sa XMLom valjda ..koliko sam shvatio]. Takvi tagovi rade normalno, prave line break.
Nisam siguran, ali mislim da i tebi ubacuje tako neshto [to je od ne-znam-ni-ja-koje verzije php-a]
Ako ovo ne radi kod tebe, postuj taj deo koda i objasni kako unosish taj text i da li ga vadish iz baze ili shta je vec u pitanju.

Shto se tiche kreiranja praznog fajla, jednostavno uradish

system("touch file.ext");

ili
exec("touch file.ext");

ili passthru("touch file.ext");

...i tako, ima mnogo opcija
I onda si napravio fajl file.ext velichine 0 bajtova sa permissions setovanim po defaultu za tvog usera na serveru [valjda owner ima read i write, a svi ostali samo read]
I sada mozesh da se igrash sa tim fajlom.

--------------------------------------------------------------------

Inache, najjednostavnije je u principu izvrshiti sistemsku komandu sa backtick karakterima [ ` .. slichno kao single quote, tj apostrof ' ali nije isto]
Sa njima uradish samo
$variable = `touch file.ext`;
i na sistemu ti se izvrshi shta god je izmedju ta dva backtick-a + ti se rezultat doda u varijablu.
Samo problem je sa tim shto ne radi ako je php u safe modu, tj kada ti je funkcija shell_exec() onemogucena.
Tako da ti ne bi osedeo prerano, koristi neke od onih prethodnih funkcija [exec(), system() ...itd]

I nemoj ni lud da dajesh nekome dozvolu da upishe koji bi hteo npr fajl da se kreira, ako odlichno ne znash shta radish, a i ako to radish, obavezno uz tu komandu koristi funkciju escapeshellcmd() ... mada.
Ma samo ti odradi ono shto je iznad isprekidanih linija, ovo neka ti vishe sluzi kao info.
[ RAZZLEDAZZLER @ 08.05.2002. 00:42 ] @
OBRATI PAZNJU OVAMO

Ja se totalno zaludeo sa ovim sistemskim komandama poshto je neko spomenuo, da sam totalno zaboravio najjednostavnije reshenje.

Trebalo bi, kada otvarash fajl u nekom od write modova ["w", "a","w+" ili "a+"] ... da ti se fajl sam kreira ako ne postoji.
Znachi dovoljno je
$file_handle = fopen("file.php", "w");

i fajl se kreira i posle ko car sa fwrite upisujesh.


Jednom ce mi doci glave to komplikovanje stvari.
Ja se stvarno izvinjavam.
[ Dachaz @ 08.05.2002. 12:15 ] @
povodom onog nl2br, još ono Dredovo je pomoglo, tako da smo to sredili (zamalo i da postujem da je uspelo, al' mi je pukla veza)

što se tiče ovog drugog - ja JESAM pokušao sa fopen($file,"a") ali mi on kaže da mi to nije dozvoljeno!! i kao što sam napomenuo - na win serveru je Ok tako da nije "greška u pisanju".

also, nije ništa public nego "lična administracija", tj. niko ne bira šta će da piše nego PHP po unetim podacima (u textboxove, textareas) generiše fajlove i foldere....

---

part two:

ni sa system ni sa ostalima nisam ništa uspeo.
ja mu kažem:
Code:

system("touch file.ext");
chmod("file.ext", 0777);
$file = fopen("file.ext", "a");
fwrite($file, "Radi");
fclose($file);


on mi kaže:
Warning: chmod failed: No such file or directory in /home/dachaz/public_html/php/Noname1.php on line 3

Warning: fopen("file.ext","a") - Permission denied in /home/dachaz/public_html/php/Noname1.php on line 4

Warning: Supplied argument is not a valid File-Handle resource in /home/dachaz/public_html/php/Noname1.php on line 5

Warning: Supplied argument is not a valid File-Handle resource in /home/dachaz/public_html/php/Noname1.php on line 6


-
kod mene na hardu radi (doduše kad komentujem onaj System deo)


//

treće:
Code:

if (is_file("$bend/istorijat.txt")) {
echo"chmoding $bend/istorijat.txt"; 
chmod("$bend/istorijat.txt", 0777);}


result:
Warning: chmod failed: Operation not permitted in /home/dachaz/public_html/yumetal/opisi/chmodder.php on line 12

šta ja sad tu da radim?!
[ RAZZLEDAZZLER @ 08.05.2002. 17:01 ] @
uhhh ... probaj da promenish "ruchno", preko ftp-a, dozvole tom fajlu koji izvrshavash ili direktorijumu u kome se fajl izvrshava... mada ja shta god da stavim kod mene na serveru, fajl se napravi

Josh bolje... uradi
echo system("touch file.ext");
pa kazi shta ti ispishe, ako ti uopshte neshto ispishe
[ Dachaz @ 10.05.2002. 21:50 ] @
ahh!
hvala!!

ovo napokon radi.

dobitna kombinacija je

Code:

echo system("touch file.ext");
chmod("file.ext",0777);
$s=fopen("file.ext","a");
fwrite($s, "radi");
fclose($s);


što je najsmešnije, ovo sam ugnjezdio u onaj chmod-file koj pre toga nije hteo da radi, a sad je odjednom "smeo" da chmoduje file.ext!!

nevermind, važno je da ovo echo system radi i da je sve u redu :)

tnx!
[ RAZZLEDAZZLER @ 13.05.2002. 12:59 ] @
Tek sam sada provalio ... pa chisto za buduce generacije da olaksham posao

PHP ima vec ugradjenu touch() funkciju
Tako da umesto npr system("touch file.ext"); .. dovoljno je
touch("file.ext");