Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не получается создать файл: fopen
 
 автор: Zilog   (21.04.2008 в 00:01)   письмо автору
 
 

пытаюсь создать файл.
выдает ошибку:
Warning: fopen(my_file.doc) [function.fopen]: failed to open stream: Permission denied in test.php on line 7

права ставил по полной и на папку и на файл, всё равно не заводится - подскажите, господа, где копать



$fp = fopen("my_file.doc", 'w+');

$str = "<html><body><B>Этот текст добавлен в Word документ с помощью php скрипта.</B></body></html>";

fwrite($fp, $str);

fclose($fp);

   
 
 автор: Atheist   (21.04.2008 в 00:18)   письмо автору
 
   для: Zilog   (21.04.2008 в 00:01)
 

> w+
Убери "+" - тебе это явно не нужно.

Ошибка связана с тем, что нет прав на запись. А конкретнее тут сказать нечего.

   
 
 автор: Zilog   (21.04.2008 в 00:30)   письмо автору
 
   для: Atheist   (21.04.2008 в 00:18)
 

>> w+
>Убери "+" - тебе это явно не нужно.
>
>Ошибка связана с тем, что нет прав на запись. А конкретнее тут сказать нечего.

странно, на что ещё мне права поставить?...

   
 
 автор: DEM   (21.04.2008 в 00:22)   письмо автору
 
   для: Zilog   (21.04.2008 в 00:01)
 

Я не уверен, что таким способом можно создавать WORD-файл

   
 
 автор: Zilog   (21.04.2008 в 00:30)   письмо автору
 
   для: DEM   (21.04.2008 в 00:22)
 

>Я не уверен, что таким способом можно создавать WORD-файл

а каким уверен? да.. если поменять расширение - результат будет таким же.

СОМ объектами пользоваться не могу, ибо хостинг не виндовый (вычитал, что СОМ только под виндовым работает).

пример, кстати, брал отсюдова
http://php-write.nnm.ru/sozdanie_ms_word_fajlov_s_pomowyu_php

   
 
 автор: DEM   (21.04.2008 в 00:33)   письмо автору
 
   для: Zilog   (21.04.2008 в 00:30)
 

Стандартными средствами не знаю... Но аверняка есть какие нить библиотеки для этого...

ЗЫ. но с другой стороны файл должен создасться, просто он не будет открываться и читаться, но создасться обязан

   
 
 автор: Zilog   (21.04.2008 в 00:44)   письмо автору
 
   для: DEM   (21.04.2008 в 00:33)
 

>Стандартными средствами не знаю... Но аверняка есть какие нить библиотеки для этого...
>
>ЗЫ. но с другой стороны файл должен создасться, просто он не будет открываться и читаться, но создасться обязан

для связи с офисом (и не только) хорош СОМ, но в моем случае он не катит.

файл не создается, дальше этой ошибки - ничего. права ставил куда надо, и куда ненадо - непомогает... уж и не знаю что делать.

   
 
 автор: DEM   (21.04.2008 в 00:46)   письмо автору
 
   для: Zilog   (21.04.2008 в 00:01)
 

В ошибке написано, что нельзя получить доступ (или найти) к указаному файлу... Попробуйте еще раз поставить для этой категории права 0777 и для файла test.php тоже...

   
 
 автор: Zilog   (21.04.2008 в 00:54)   письмо автору
 
   для: DEM   (21.04.2008 в 00:46)
 

ставил уже...

если файл ненайден - он должен его создать.

   
 
 автор: $Konstantin=const   (21.04.2008 в 13:02)   письмо автору
 
   для: Zilog   (21.04.2008 в 00:54)
 

Ты это на хосте делаешь??? или виртуальном? если на хосте то не бу точно работать..ошибка..если на каком ниб деневере, то еще может потянуть!!

   
 
 автор: Atheist   (21.04.2008 в 00:58)   письмо автору
 
   для: DEM   (21.04.2008 в 00:46)
 

> и для файла test.php тоже
Чтобы можно было изменить test.php? Права на запись даются не файлу, а на файл.

   
 
 автор: Zilog   (21.04.2008 в 01:06)   письмо автору
 
   для: Atheist   (21.04.2008 в 00:58)
 

>> и для файла test.php тоже
>Чтобы можно было изменить test.php? Права на запись даются не файлу, а на файл.

на файл, который делает запись?

   
 
 автор: DEM   (21.04.2008 в 01:10)   письмо автору
 
   для: Atheist   (21.04.2008 в 00:58)
 

Я не уверен, но вроде бы надо еще ставить права на файл котрый будет выполнять эту функцию... Хотя тут я навернео ошибаюсь...

   
 
 автор: Valick   (21.04.2008 в 13:08)   письмо автору
 
   для: DEM   (21.04.2008 в 01:10)
 

И ещё на папку в которой эта каша варится, тоже надо ставить право на запись.

   
 
 автор: Atheist   (21.04.2008 в 15:15)   письмо автору
 
   для: DEM   (21.04.2008 в 01:10)
 

> но вроде бы надо еще ставить права на файл котрый будет выполнять эту функцию
Нет.

   
 
 автор: $Konstantin=const   (21.04.2008 в 13:52)   письмо автору
 
   для: Zilog   (21.04.2008 в 00:01)
 

ПОПРОБУЙ ТАК

     $f=fopen( $_SERVER['DOCUMENT_ROOT']."/my_file.doc", "a+");

Должно создасться!

   
 
 автор: Zilog   (21.04.2008 в 15:38)   письмо автору
 
   для: $Konstantin=const   (21.04.2008 в 13:52)
 

>ПОПРОБУЙ ТАК
>Должно создасться!

ещё ночью пробовал... невыходит каменный цветок. уже и незнаю, в чем проблема.
это может быть связано с какими нибудь режимами работы PHP?

   
 
 автор: Atheist   (21.04.2008 в 15:58)   письмо автору
 
   для: Zilog   (21.04.2008 в 15:38)
 

Вот такой код запусти (в том же скрипте, откуда пытаешься создать файл):

<?php
var_dump
(is_writable('.'), is_file('my_file.doc'));
?>


Что выдает?

   
 
 автор: Zilog   (21.04.2008 в 16:38)   письмо автору
 
   для: Atheist   (21.04.2008 в 15:58)
 

false

   
 
 автор: Usta   (21.04.2008 в 17:13)   письмо автору
 
   для: Zilog   (21.04.2008 в 16:38)
 

Я делал все просто. Создавал файл test.doc в папке и перезаписывал его.

<?php
      $text
.="<html><body><B>Этот текст добавлен в Word документ с помощью php скрипта.</B></body></html>" ;
?>
<?php
  
// Имя файла
  
$fd "test.doc";
  
// Сохраняем результат в файле
  
$fd fopen($fd"w");
  
fputs($fd$text);
  
fclose($fd);
?>

   
 
 автор: Zilog   (21.04.2008 в 20:07)   письмо автору
 
   для: Usta   (21.04.2008 в 17:13)
 

Уста, по твоему методу заработало. Но один хрен, файл надо вручную создавать...

   
 
 автор: Atheist   (21.04.2008 в 17:28)   письмо автору
 
   для: Zilog   (21.04.2008 в 16:38)
 

> false
Вообще-то должно быть два значения. Тут только одно.

   
 
 автор: Zilog   (21.04.2008 в 19:49)   письмо автору
 
   для: Atheist   (21.04.2008 в 17:28)
 

>> false
>Вообще-то должно быть два значения. Тут только одно.

bool(false) если точнее.

Usta, а вот у меня неработает. :(( Ты права какие-куда ставил? Мошагово можешь описать, что делал?

   
 
 автор: Atheist   (21.04.2008 в 19:50)   письмо автору
 
   для: Zilog   (21.04.2008 в 19:49)
 

> bool(false) если точнее.
Это одно значение. Там должно быть что-то вроде:
bool(false) bool(false)
Но никак не просто bool(false).

   
 
 автор: Zilog   (21.04.2008 в 20:06)   письмо автору
 
   для: Atheist   (21.04.2008 в 19:50)
 

>> bool(false) если точнее.
>Это одно значение. Там должно быть что-то вроде:
>bool(false) bool(false)
>Но никак не просто bool(false)

аа понял. два раза bool(false) :)

По методу Уста - заработало (полный путь к файлу + права на этот файл + только запись в него (без создания).

А вот создаваться файл упорно не хочет...

   
 
 автор: Atheist   (21.04.2008 в 20:12)   письмо автору
 
   для: Zilog   (21.04.2008 в 20:06)
 

Значит на папке (путь к ней - getcwd() ) не поставлены права на запись. Только в этом проблема.

   
 
 автор: Zilog   (21.04.2008 в 20:50)   письмо автору
 
   для: Atheist   (21.04.2008 в 20:12)
 

>Значит на папке (путь к ней - getcwd() ) не поставлены права на запись. Только в этом проблема.

я на папку 777 поставил. неужели этого мало? или надо ставить 777 на все папки в пути к файлу???

   
 
 автор: Atheist   (21.04.2008 в 20:56)   письмо автору
 
   для: Zilog   (21.04.2008 в 20:50)
 

Спроси у поддержки какие права необходимо поставить.

   
 
 автор: Zilog   (21.04.2008 в 20:59)   письмо автору
 
   для: Atheist   (21.04.2008 в 20:56)
 

>Спроси у поддержки какие права необходимо поставить

хм... хочу поинтересоваться - а какие ещё права (и где!) можно выставлять???
ни в фаре, ни в дримвивере я дополнительных галок не вижу -уже все поставил, какие есть.

   
 
 автор: Atheist   (21.04.2008 в 21:31)   письмо автору
 
   для: Zilog   (21.04.2008 в 20:59)
 

Я тебе говорю: спроси у поддержки какие права нужно выставить. На папке. Не надо тупо все галки помечать.

   
 
 автор: Usta   (22.04.2008 в 00:26)   письмо автору
 
   для: Atheist   (21.04.2008 в 21:31)
 

У меня на хостинге все создаётся. код

<?php
  $count 
"Я создался!!!";
  
$countname "text3.doc";
  if(!
file_exists($countname))
  {
    
$fd fopen($countname,"w");
    
fwrite($fd$count);
    
fclose($fd);
  }
?>

Права доступа на папку 755. на файл 644, можно 775. Вопрос, а у тебя сайт на бесплатном хосте?? Если да, то там 80% такая функция запрещена. Если на платке, то звони в тех. под. И права изменяй через ftp. Ты новерно через админ панель менял права, где можно поставить несоздавать файл в папке и небось галку поставил. :))

   
 
 автор: Zilog   (22.04.2008 в 12:29)   письмо автору
 
   для: Usta   (22.04.2008 в 00:26)
 

>Если на платке, то звони в тех. под. И права изменяй через ftp. Ты новерно через админ панель менял права, где можно поставить несоздавать файл в папке и небось галку поставил. :))

нет, хот платный - мастерхост.
права ставил фаром и дримвивером, через панель там нет такого.
буду звонить в ТП, ппзже, как с разгребу тут. о результатах сообщу.

   
 
 автор: AcidTrash   (22.04.2008 в 12:45)   письмо автору
 
   для: Zilog   (22.04.2008 в 12:29)
 

Можно права 777 выставить на папку через TotalCommander если таковой имеется, или через shell-консоль.

   
 
 автор: Elbereth   (24.04.2008 в 19:30)   письмо автору
 
   для: Usta   (22.04.2008 в 00:26)
 

>Вопрос, а у тебя сайт на бесплатном хосте?? Если да, то там 80% такая функция запрещена. Если на платке, то звони в тех. под. И права изменяй через ftp. Ты новерно через админ панель менял права, где можно поставить несоздавать файл в папке и небось галку поставил. :))

А как через ftp изменять права? У меня вот сайт на бесплатном хосте, fopen в режиме открытия работает, а создавать новые файлы не хочет...
И ошибки никакой не выдает...

   
 
 автор: AcidTrash   (24.04.2008 в 21:25)   письмо автору
 
   для: Elbereth   (24.04.2008 в 19:30)
 

>А как через ftp изменять права?
Насчет бесплатного хостинга не знаю. Вы FTP-клиентом каким пользуетесь?

   
 
 автор: Zilog   (25.04.2008 в 04:02)   письмо автору
 
   для: AcidTrash   (24.04.2008 в 21:25)
 

сегодня пошёл в нступление и проблему таки решил.
оказывается права надо было на папку ставить. блин.

ну да ладно, нет худа без добра - попутно много новго узнал :)

всех благодарю за помощь и поддержку.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования