проблемы с созданием файла

Alexandre

PHPПенсионер
проблемы с созданием файла

по определению функция fopen('myname','w') если нет такого файла, то она должна его создать. Все работает под Winдами....
но хостер выделил мне права 711, по этому выдается ошибка:Warning: fopen(tmp1.tmp) [function.fopen]: failed to create stream: Permission denied in .....

функцией chmod я могу изменить существующие права.

а как мне в этом случае создать файл?
 

trent

Developer
IMHO создать поддиректорию, которая будет иметь права 766 и создавать в ней.. потом copy
 

Alexandre

PHPПенсионер
создал скриптом файл...

при заходе по ftp я его не вижу,

при администрирование сайта (права пользователя) вижу что он создан.

почему такое происходит и с какими правами задовать файл, чтоб я его видел
 

Alexandre

PHPПенсионер
я создал директорию с правами 777
выполняю команду
PHP:
if(@file_exists($uploadfile)) {
	   if(preg_match("/(.+)\.([^\.]+)/", $uploadfile_name, $match)) {
    
			if ( !copy($uploadfile,"/admin/data/news".$postid.".".$match[2]) ){
				print("не скопировано");
				exit;}			  }
  } 
 }
отвечает что не скопировано?
 

madcode

Guest
создал скриптом файл...

при заходе по ftp я его не вижу,
php крипт запускается с uid отличным от вашего и, чтобы он мог модифицировать
файлы, последние должны иметь права 777. Аналогично, чтобы скрипт мог
создавать файлы в директории, последняя тоже должна иметь права 777.

Только после создания файла не забудьте сделать скриптом umask(); и сменить права на
777. Иначе вы не сможете его удалить по FTP.
 

Alexandre

PHPПенсионер
аплоад получился,
создал директорию с правами 777
созданный файл получил права 711
но его по эФТиПи не вижу...хотя его можно увидеть через браузер...
хотя я вижу все файлы с правами 711, может я их вижу потому, что они были закачены по эФТиПи...

Кстати попутный вопрос - права RWE ,
если пхп скрипт имеет права 111 - будет ли он выполняться или флаг E сброшен в 0
 

madcode

Guest
Кстати попутный вопрос - права RWE ,
если пхп скрипт имеет права 111 - будет ли он выполняться или флаг E сброшен в 0
Как я знаю - главное, чтобы был бит "чтения" для php-скрипта.

А для cgi надо ставить бит исполнения.
Причем, установка бита выполнения без бита чтения не имеет смысла, т.к. веб-сервер не сможет прочитать код..

обычно везде рекомендуют ставить для php - 644, а для cgi -755.
 

Alexandre

PHPПенсионер
что может быть в настройках ОС,
если я создал две директории с правами 777
в одну скрипт пишется а в другую нет?
могу ли я наезжать на провайдера или я что-то делаю не так?
 

Alexandre

PHPПенсионер
нет - в одну директорию пишет нормально, а в другую нет... вот что удивляет.... при том у обеих директориях я установил права 777
т.е. в скрипте ошибке нет
 
Сверху