|
|
|
| Добрый день не могу н как понять в чем ошибка скрипта
с
Warning: fopen(../news/temp/tmp/tem68.html) [function.fopen]: failed to open stream: No such file or directory in /home/bobrovav/public_html/stayin/news/editor/red.php on line 25
Warning: fwrite(): supplied argument is not a valid stream resource in /home/bobrovav/public_html/stayin/news/editor/red.php on line 26
Warning: fclose(): supplied argument is not a valid stream resource in /home/bobrovav/public_html/stayin/news/editor/red.php on line 27
Скрипт пытается создат и открыть на запись файл
на лкальном сервере(данвере) скрипт работает стабильно
привожу ниже пример проблемного участка
$query ="SELECT id, head_news_1, data, head_news_2, text_ FROM `$table_list` WHERE `id` = '$id_n'";
$result = mysql_query ($query) ;
$row = mysql_fetch_assoc($result) ;
extract($row);
$dh = opendir ('../news/temp') ;
while ($file_dir = readdir ($dh)) {
@unlink ('../news/temp/'.$file_dir) ;
}
closedir($dh) ;
$fname = tempnam("", "tem");
//echo "<br>../list/ing/".$fname. "<br>" ;
$fname = substr($fname, 1, -4);
//echo "<br>".$fname. "<br>" ;
//echo '<br>'.$text_.'<br>' ;
//$text_ = $file_css . ' ' . $text_ ;
$ff = fopen ('../news/temp/'.$fname.'.html', 'w');
fwrite ($ff, $text_ );
fclose ($ff);
/*$ff = fopen ('../news/temp/tempp.html', 'w+');
fwrite ($ff, $text_ );
fclose ($ff);
$fname = 'tempp' ;
echo $text_ ;*/
....
<script language="javascript">
document.write ('<div id="Frm"><iframe src="<? print "../news/temp/".$fname.".html" ; ?>" id="message" width="700" height="400"></iframe></div><textarea name="NMH" style="width:700px;height=398px;display:none"></textarea>')
frames.message.document.designMode = "On";
</script>
|
В /**/ приведена альтернативная часть кода
На локально сервере работает но браузер подставляет старую версию файла из кеша, а на хосте файл подставляется пустой
Убедительна просьба подсказать в чем дело.
антон | |
|
|
|
|
|
|
|
для: АнтонБ
(06.03.2008 в 14:26)
| | посмотрите права на папку куда скрипт на сервере вытается писать файл | |
|
|
|
|
|
|
|
для: KirillKiev
(06.03.2008 в 14:31)
| | права пробывал изменять, но результата почемуто нет
к том уже файл который я открываю на запись еще нет, он автоматически создается
права изменял как на исполняющий файл таки и на родительский | |
|
|
|
|
|
|
|
для: АнтонБ
(06.03.2008 в 14:35)
| | на папку а не на файл | |
|
|
|
|
|
|
|
для: KirillKiev
(06.03.2008 в 14:37)
| | выставил права на паку где создается файл 777
резульат тоже | |
|
|
|
|
|
|
|
для: АнтонБ
(06.03.2008 в 14:42)
| | добавте в код там где
$ff = fopen ('../news/temp/'.$fname.'.html', 'w');
$ff = fopen ('../news/temp/'.$fname.'.html', 'w') or die('Не открываеться файл '.'../news/temp/'.$fname.'.html');
если будет сообщение - точно что то с путями не то или с правами и копать только здесь... | |
|
|
|
|
|
|
|
для: АнтонБ
(06.03.2008 в 14:42)
| | Проблема не в правах, в правильности пути. | |
|
|
|
|
|
|
|
для: Thrasher
(06.03.2008 в 14:54)
| | Скорее всего да... :) | |
|
|
|
|
|
|
|
для: KirillKiev
(06.03.2008 в 14:56)
| | ну подождите, скрипт стабильно работал в данвере и пути, значит, были нормальными
подставил и скрипт выдал Не открываеться файл
Создал в папке temp проверочный файл test.html
добавил перед строкой
$ff = fopen ('../news/temp/'.$fname.'.html', 'w') or die('Не открываеться файл '.'../news/temp/'.$fname.'.html');
|
строчку
include '../news/temp/test.html' ;
|
файл подлючился - значит пути здесь не причем ! Тогда в чем причина ? | |
|
|
|
|
|
|
|
для: АнтонБ
(06.03.2008 в 15:07)
| | Антон, все дело в путях к файлам. На сервере, управляемом платформой Unix или Linux (и некоторых других) файлы "Файл.html" и "файл.html" разные файлы. Все названия папок и файлов регистрозависимы. | |
|
|
|
|
|
|
|
для: AVS
(06.03.2008 в 15:34)
| | все файлы и папки нижнем регистре | |
|
|
|
|
|
|
|
для: АнтонБ
(06.03.2008 в 15:07)
| | Тогда только права на запись в данную директорию | |
|
|
|
|
|
|
|
для: KirillKiev
(06.03.2008 в 15:36)
| | откуда берется $fname может стоит написать так (если метод гет)
<?
$fname = $_GET['fname'];
?>
|
| |
|
|
|
|
|
|
|
для: mihdan
(06.03.2008 в 16:06)
| | Ура нашел в чем причина:
$fname = tempnam("", "tem");
|
функция преднозначена для создания уникальных файлов
в переменная $fname в данвере получается только имя файла
а на хостах еще присутствует путь до какойто папки, причем у разных хостов она разная
Вот так! :-) | |
|
|
|