Страница: 1 |
Страница: 1 |
Вопрос: PHP - Почему файл не создается?
Добавлено: 11.11.04 09:53
Автор вопроса: Millenium | Web-сайт:
Извиняюсь за беспокойсто, но есть одна загвоздка. Сначало просмотрите код:
$filename = "news/".$GrpNews."/".$MonthName."/".$DayNum.".htm";
//Записываемые данные
$data = "<html><head><title>$DayNum / $MonthName - $GrpNews</title><meta http-equiv='Content-Type' content='text/html; charset=utf-8'></head><h1 align='center'>$txtTopic</h1><code><pre>".$txtNews."</pre><code></body></html>";
//Если файл сушествует и в него можно записать
if ((!file_exists($filename)) && (is_writable($filename))){
//Открыть файл и установить указатель тек. позиции в конце файла
$fh = fopen($filename,"a");
//Запсиать содержимое $data в файл
$success = fwrite($fh, $data);
//закрыть файл
fclose($fh);
print "Новость добавлена успешно! Ссылка для просмотра файла: <a href=$filename target=_blank>$filename</a>";
}
else {
print "Не возможно создать файл <b>$filename</b>!";
}
?>
А вапрос такой. Прему выводится что не возможно создать файл?
НО В КОДЕ ОШИБКИ НЕТУ! ХОЧУ ТОЛЬКО ПРИЧИНУ УЗНАТЬ!
Ответы
Всего ответов: 9
Номер ответа: 1
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #1
Добавлено: 11.11.04 10:31
naskol`ko ya ponyal u tebya v peremennuyu zapihivaetsya imya fajla, posle etogo proveryaetsya esli on est` i mozhno-li v nego pisat`, i togda tuda pisa.....pishet`sya.....a esli ego netu, ili on ne writable, no vyvoditsya chto ego sojdat` nelizya....nu dyk u tebya ved` netu koda dlya ego sozdaniya.......
Номер ответа: 2
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #2
Добавлено: 11.11.04 10:32
koroche, vot posle
else {
pripishi kod dlya sojdaniya fajla
Номер ответа: 3
Автор ответа:
Millenium
ICQ: 629966
Вопросов: 118
Ответов: 903
Web-сайт:
Профиль | | #3
Добавлено: 11.11.04 11:57
Даже если файла нету, то префикс W или A в функции fopen($filename,"a" должен создать файл. Даже если просто использовав следующий код:
$fh = fopen($filename,"a"
//Запсиать содержимое $data в файл
$success = fwrite($fh, $data);
//закрыть файл
fclose($fh);
...ничего не создается
Номер ответа: 4
Автор ответа:
freeloader
ICQ: 50804884
Вопросов: 72
Ответов: 642
Web-сайт:
Профиль | | #4
Добавлено: 11.11.04 13:58
он на хосте не создается?
у тебя на localhost, все без проблем создается?
Не буду утвержать, но помню раньше у меня проблемы с файлами были потому что, я не выставлял Premission, хотя с другой стороны для чего сдесь выставлять если файла нету...
Номер ответа: 5
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #5
Добавлено: 11.11.04 20:47
a is_writable razve true dast esli fajla netu? prosto interesno mne......
Номер ответа: 6
Автор ответа:
freeloader
ICQ: 50804884
Вопросов: 72
Ответов: 642
Web-сайт:
Профиль | | #6
Добавлено: 12.11.04 07:24
//Запсиать содержимое $data в файл
$success = fwrite($fh, $data);
//закрыть файл
fclose($fh);
Мистика, прям какая то, сейчас поставлю все хозяйство...
Номер ответа: 7
Автор ответа:
freeloader
ICQ: 50804884
Вопросов: 72
Ответов: 642
Web-сайт:
Профиль | | #7
Добавлено: 12.11.04 08:30
<?php
if ($fp=fopen("mytxt.txt","w"==false){
$fp=fopen("mytxt.txt","a"
$fw=fwrite($fp,"ATA"
$fc=fclose($fp);
}
?>
такая конструкция работает
Номер ответа: 8
Автор ответа:
freeloader
ICQ: 50804884
Вопросов: 72
Ответов: 642
Web-сайт:
Профиль | | #8
Добавлено: 12.11.04 09:15
закомментируй строку с If и End If, забыл закомментировать.
Вообще твой код никак не отличается от моего, но по какой то причине на твой мой DzPHPEd ругается:
Parse error: parse error, unexpected T_STRING in C:\Program Files\DzSoft\Project(files)\phpD0A.tmp on line 18
18 строка, как раз выпадает на $success = fwrite($fh, $data);
Номер ответа: 9
Автор ответа:
Millenium
ICQ: 629966
Вопросов: 118
Ответов: 903
Web-сайт:
Профиль | | #9
Добавлено: 13.11.04 13:05
Я исправил. И удалил IS_WRITABLE - Но главная проблема была в Permission. Оказывается надо дать разрешение Word для записи. Так как у меня сервер на Win32 стоял с Разрешениями (Permissions) проблем не было, а вот когда загрузил на сервер (а там Линда стоит) то всё как-то не так было. Но сейчас всё исправил! Всем спасибо!