[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: работа с файловой системой
nighting
Проблема вот в чем...

Нужно выполнить элементарную операцию, т.е. создать файл
Вот кусочек скрипта:
PHP
...
    
$f fopen("{$namePage}.file""w") or die ("невозможно");
    
    
//переменная количества разделов
    
$name_partlist "{$namePage}_partlist`";
    
$numParts mysql_query("SELECT * FROM $name_partlist ORDER BY numPart") or die("Error 0001" mysql_error());
    
    
//создаем переменную с номером максимального раздела
    
$max mysql_num_rows($numParts);
    
    
//вывод содержимого
    
fseek($f00);
    
fwrite($f"<table width='100%' cellpadding='0' cellspacing='0'>");
    
// выделить все ячейки из таблицы разделов
    
$namesPart mysql_query("SELECT * FROM {$namePage}_partlist ORDER BY numPart") or die("Could not connect " mysql_error());
...


На моем компе работает, а на удаленном сервере пишет мне "невозможно"

Что здесь не так?



Спустя 23 минуты, 52 секунды (2.05.2009 - 13:37) Sylex написал(а):
nighting
ну ты умник, я должен догадаться что у тебя содержит $namePage ?

Варианты:
- коряво указан путь
- нет прав на запись в директорию (в поиск "атрибуты файла chmod" - че такое и для чего)

Спустя 35 минут, 32 секунды (2.05.2009 - 14:12) nighting написал(а):
Sylex

Цитата
я должен догадаться что у тебя содержит $namePage ?


ну собственно название страницы содержит...
сейчас я испытываю при $namePage="main"

Цитата
- коряво указан путь

путь вроде получается как бы в ту же папку, где и сам скрипт

$namePage = "main";
$f = fopen("{$namePage}.file", "w") or die ("невозможно");

по идее он же должен создать main.file в тойже директории где и источник скрипта, правильно?

Цитата
нет прав на запись в директорию (в поиск "атрибуты файла chmod" - че такое и для чего)


вот попробовал так:
PHP
<?
...
$namePage "main";
chmod("/usrPage/",0666);
        
$f fopen("usrPage/{$namePage}.file""w+") or die ("временно недоступно");
        
        
#######
        //переменная количества разделов
    
$name_partlist "{$namePage}_partlist`";
    
$numParts mysql_query("SELECT * FROM $name_partlist ORDER BY numPart") or die("Error 0001" mysql_error());
    
    
//создаем переменную с номером максимального раздела
    
$max mysql_num_rows($numParts);
    
    
//вывод содержимого
    
fseek($f00);
    
fwrite($f"<table width='100%' cellpadding='0' cellspacing='0'>");
...


все равно посылает в топку... Я правильно использую chmod?

Спустя 14 минут, 52 секунды (2.05.2009 - 14:27) nighting написал(а):
короче, чтоб было понятнее создал отдельный пхп скрипт:

PHP
<?
//создаю дерикторию
mkdir("direc",0777);

//создаю файл
$f fopen("direc/file.file""w+") or die ("невозможно создать файл");

//записываю в файл
fseek($f00);
fwrite($f"привет");

//закрываю файл
fclose($f);

//смотрю содержимое файла
include "direc/file.file";




у меня на компе пишет как и положено "привет", а на сервере "невозможно создать файл"

что за ерунда? может у них в конфиге пхп отключены работа с файлами?

Спустя 26 минут, 9 секунд (2.05.2009 - 14:53) waldicom написал(а):
Цитата (Sylex @ 2.05.2009 - 11:37)
- нет прав на запись в директорию (в поиск "атрибуты файла chmod" - че такое и для чего)

если нет прав на директорию, то хоть зауказывайся 0777, все равно ничего не получится.

Спустя 2 часа, 40 минут, 44 секунды (2.05.2009 - 17:34) Sylex написал(а):
PHP
<?
//создаю дерикторию
mkdir("direc"0777);

chmod("direc"0777);

//создаю файл
$f fopen("direc/file.file""w+") or die ("невозможно создать файл");

//записываю в файл
fseek($f00);
fwrite($f"привет");

//закрываю файл
fclose($f);

//смотрю содержимое файла
include "direc/file.file";


так попробуй.

Спустя 48 секунд (2.05.2009 - 17:35) Sylex написал(а):
из корневой папки запускаешь?

Спустя 5 минут, 50 секунд (2.05.2009 - 17:41) nighting написал(а):
Sylex
неа, и так не работает...

хотел свести обращения к бд на минимум, да видать не судьба) Нужно менять хостинг... (сказал себе иван и топнул копытцем=)

Спустя 1 минута, 59 секунд (2.05.2009 - 17:43) Sylex написал(а):
nighting
не пЫтливый у тебя ум! Так далеко не уедешь! smile.gif

я бы не успокоился пока бы не разобрался wink.gif

Спустя 16 минут, 38 секунд (2.05.2009 - 17:59) nighting написал(а):
Sylex
не, есть еще предложения??? Я уже через пхп фтп функции пытался реализовать, но все равно fopen нужно использовать...

тут я думаю только один вариант остался - у меня на хостинге ограничены права на каталог /home/vhosts/nighting.ueuo.com/ , но с этим ведь уже ничего не поделаешь... Или поделаешь? =)

Спустя 18 минут, 53 секунды (2.05.2009 - 18:18) nighting написал(а):
Sylex
Цитата
из корневой папки запускаешь?

кстати да, из корневой запускаю...

Пытался запустить не из корневой /usrPage/ по скрипту c тестом правильности пути:
PHP
<?
//ряд тестов на правильность пути
echo "тест пути ../usrPage/test <br>";
include "../usrPage/test";
echo "<br>";
echo "тест пути test <br>";
include "test";
echo "<br>";

chmod("../usrPage/", 0777);
//создаю дерикторию

mkdir("../usrPage/direc/", 0777);
chmod("../usrPage/direc/", 0777);


//создаю файл
$f = fopen("../usrPage/direc/file.file", "w+") or die ("невозможно создать файл");

//записываю в файл
fseek($f, 0, 0);
fwrite($f, "привет");

//закрываю файл
fclose($f);

//смотрю содержимое файла
include "../usrPage/direc/file.file";


тоже не помогло

результат можно глянуть здесь http://nighting.ueuo.com/usrPage/123.php

Спустя 12 минут, 22 секунды (2.05.2009 - 18:30) nighting написал(а):
ААААААААААААААА!!!!!!!! Заработало! ))

У них на сайте есть внутренний фтп клиент основанный на веб интерфейсе, и в нем можно поменять chmod каждой директории и файла. Я поменял на 777 и прокатило.

Теперь вопрос, почему пхп кодом оно не менялось???

Спустя 2 минуты, 43 секунды (2.05.2009 - 18:33) Joker написал(а):
Ты после того как присваиваешь деректории права 0777 посмотри через фтпшник присвоились а то я как столкнулся с таким что у хостинга права не изменялись....


Не успел) наверное это у некоторых запрещено huh.gif

Спустя 6 минут, 36 секунд (2.05.2009 - 18:40) nighting написал(а):
Joker
если присваиваю права 0777 через их фтп, то присваивается, а если присваиваю пхп кодом, то отказывается присваивать.

такс, бум разбираться...
негативный результат тоже результат

Спустя 1 минута (2.05.2009 - 18:41) Joker написал(а):
Я в тогда в потдержку написал они написали типо после сбоя не иправили и не кто не жаловался. Как я написал через минут 15 у меня стало работать)

Спустя 4 минуты, 23 секунды (2.05.2009 - 18:45) nighting написал(а):
Joker
Я б тоже написал, да у меня с техподдержкой технические проблемы) Мы говорим на разных языках)

Спустя 31 минута, 37 секунд (2.05.2009 - 19:17) nighting написал(а):
Все, во всем разобрался...
Спаибо Sylex
Ваша фраза
Цитата
не пЫтливый у тебя ум! Так далеко не уедешь!

заставила меня выжать на максимум...


Теперь и chmod работает как положено.

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

Новый файл нужно создавать fopen("новый_файл", "w+"); причем файл нужно создать в директории с правами 0777 и командой именно w+.


Такие порядки на хостинге ueuo.com и freevar.com, если кому интересно...

Спустя 8 минут, 11 секунд (2.05.2009 - 19:25) Sylex написал(а):
nighting
это зависит от того, от кого запускается PHP, и тот FTP-клиент. По идее, нормальные хостеры настраивают так, что PHP все сам может делать. Так что скорее всего твой косяк. Еще учти, что если ты создаешь папку и пытаешься дать ей права, а в ТЕКУЩЕЙ папке - нет разрешения на запись (usrPage), то естественно у тебя ниче не выйдет. Т.е. должны все, кто выше уровнем - быть открыты на запись.

Иногда достаточно 755, иногда нужно тока 777, смотря как настроено. Можно применять маску. И вообще надо смотреть, какой результат возвращает функция и какие ошибки дает, чтобы знать что происходит.

Спустя 57 секунд (2.05.2009 - 19:26) Sylex написал(а):
nighting
и такое может быть smile.gif
Удачи


_____________
Стране нужны паровозы! Стране нужен метал!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.