|
|
|
| Хотелось бы услышать мнения по поводу использования на сервере вместо MySQL просто файла (к примеру .csv), для хранения базы данных. Особенно интересует проблема совместного боступа (одновременное чтение/запись). И вопрос безопасности. Мне б не хотелось, чтобы пользователь посмотрев исходный код страницы скачал этот самый файл.
*О всех преимуществах MySQL я в курсе* | |
|
|
|
|
|
|
|
для: Yuri
(28.11.2005 в 18:49)
| | Впринципе если вы не планируете хранить большие обьемы данных, то можно организовать хранение в файлах. По поводу доступа.... можно организовать очередь, т.е. все задания заносятся в список и какой то обработчик берет по одному заданию и выполняет. Защитить от скачивания можно при помощи .htaccess. | |
|
|
|
|
|
|
|
для: Евгений Петров
(28.11.2005 в 19:34)
| | Что касается .htaccess, то к сожалению у меня нет возможности конфигурить сторонний сервер. Хотя, было бы идеально.
А насчет создания обработчика... При реализации данного процесса по принципу выполнения очереди задания (к примеру, задание на запись фиксируются в массиве, а определенная функция пытаеться перенести информацию из переменной массива в файл), процесс неибежно будет подвисать. Причем в геометрической прогрессии (в зависимости от числа пользователей). О чтении вообще думать страшно при этом. Даже если это все опустить, написать такой код, предусмотрев все, будет, мягко говоря, не просто.
Хотя скорей всего я чего то не догоняю. | |
|
|
|
|
|
|
|
для: Yuri
(28.11.2005 в 18:49)
| | >*О всех преимуществах MySQL я в курсе*
тогда какие мнения вас интересуют? файлы - быстрее, но мигом потеряете на сортировке и выборке. | |
|
|
|
|
|
|
|
для: Yuri
(28.11.2005 в 18:49)
| | Ну для защиты от совместного доступа - есть специальные функции (flock). А для защиты от скачивания... Лучше защищайте не от скачивания, а от просмотра. Если вы будете хранить все данные в файлах .php , причем там будут добавлены <?...?> - то никакое скачивание вам нестрашно. Грубо говоря, на первой строке файла <? , а на последней - ?> . На всех остальных - данные, и работаете - как с обычными файлами. Пример:
Файл с логинами/паролями
<?
vasya:vasilenko;petya:petrov;
?>
|
; - разделитель между пользователями
: - разделитель между логином и паролем.
print substr_count(file_get_contents("file_with_passwords.php")); - выведет вам количество ваших пользователей... | |
|
|
|
|
|
|
|
для: Shorr Kan
(29.11.2005 в 01:07)
| | <?php
//
// f_datafiles: Скрипт для хранения переменных в текстовых файлах.
// Использует var_export для формирования синтаксически
// правильных файлов и записывает их.
// СКРИПТ НЕ ОТЛАЖЕН. ОПАСЕН ДЛЯ ИСПОЛЬЗОВАНИЯ!
//
// Записать данные в файл
function inc_data_setData($FileName, $FileData) {
$FileStream = fopen(basename($FileName), "w");
fwrite($FileStream, var_export($FileData, TRUE));
fclose($FileStream);
}
// Считать данные из файла
function inc_data_getData($FileName) {
return(eval("return(" . join("", file(basename($FileName))) . ");"));
}
?>
Я это взял из комментов по PHP мануалу. Функцией inc_data_setData пишем в файл, а функцией inc_data_getData считываем его. Плоха только невозможность чтения или записи в один файл нескольких переменных. Но я бы предпочел MySQL за простоту в организации базы. | |
|
|
|
|
|
|
|
для: Void
(29.11.2005 в 19:03)
| | Так же защитой от просмотра будет служить либо мой метод (при отладке):
if (!isset($IYNTX404)) {
die('Скрипт не рассчитан на вызов извне.');
}
А в главном скрипте следует установить эту переменную.
(При register_globals=on это спасет от лишних проблем)
Но есть проще, дешевле и лучше - .htaccess. | |
|
|
|