ExBB Community » » PHP/Perl » Регистрация таблицы пользователем

Страниц (3): « 1 [2] 3 »
 

16. yura3d - 28 ноября 2009 — 20:38 - перейти к сообщению
Светлана пишет:
Юра!!! Да вы же текст файла поправили, а не сообщили

У меня и без правки работало. Я там исправил только синтаксические ляпы

Светлана пишет:
Ещё бы ограничение на кол-во открываемых счетов (регулируется админом) одним пользователем

Так ведь для одного пользователя не может быть более одного файла <N>.php и <N>_data.php (в данном варианте скрипта при попытке 2-ой регистрации старые данные затрутся, и в файлы запишутся новые данные)

Светлана пишет:
запрет на повтор ай-пи адресов, а то ведь хитрых много и они для открытия дополнительных аккаунтов (чтоб на удачу получить деньги инвестора) будут регистрироваться как новые пользователи форума

Бесполезное это занятие, существует бесконечное множество прокси-серверов, используя которые, даже не самые сведущие в области Интернета люди (например, нынешние школьнеги-спамеры-и-тролли) спокойно обойдут подобное ограничение. Более того, это создаёт дополнительные проблемы пользователям с доступом в Интернет через NAT-шлюзы (а этим сейчас страдают все провайдеры, когда один-два-три IP адреса распределены на несколько десятков-сотен-тысяч компьютеров). Бан по маске IP адреса тоже далеко не лучший вариант, поскольку существует вероятность риска забанить всю сеть. Злоумышленник воспользуется прокси и всё равно получит доступ к Вашему форуму, а вот другие пользователи сети - возможно Ваши потенциальные клиенты - останутся заблокированными
17. Светлана - 28 ноября 2009 — 20:53 - перейти к сообщению
yura3d пишет:
Так ведь для одного пользователя не может быть более одного файла <N>.php и <N>_data.php (в данном варианте скрипта при попытке 2-ой регистрации старые данные затрутся, и в файлы запишутся новые данные)
Понятно, спасибо.
CODE:
Бесполезное это занятие, существует бесконечное множество прокси-серверов, используя .....
Ну... тоже понятно...

Я, наверно, чересчур поторопилась и сохранила у себя вот этот вариант. Впредь буду терпеливее... если будет "впредь" Улыбка Спасибо, Юра, раз, ещё раз, ещё много, много раз Радость Просто гора с плеч! И всё же, что насчёт ссылки... Наверняка буду обращаться ещё не раз за помощью... Неудобно за совсем "просто так".
18. yura3d - 28 ноября 2009 — 21:37 - перейти к сообщению
Светлана
Для того, чтобы запретить повторную регистрацию счёта одним и тем же пользователем (и как результат избежать перезаписывания данных) в файле reg_table.php нужно найти строку:
CODE:
$fm->_GetVars(); // Получаем входящие данные

И за ней вставить строки:
CODE:
// Ищем файлы с данными о пользователе в папках R и D
if (file_exists('accounts/R/'.$fm->user['id'].'.php') || file_exists('accounts/D/'.$fm->user['id'].'.php'))
// Если в одной из папок файл найден, выводим ошибку и останавливаем регистрацию
$fm->_Message('Регистрация счёта', 'Повторная регистрация счёта запрещена');
19. Светлана - 28 ноября 2009 — 22:16 - перейти к сообщению
Т.е. вместо
CODE:
if (!$fm->user['id']) // Если пользователь не авторизован
$fm->_Message('Регистрация счёта', 'Гости не могут регистрировать счета'); // Ошибка: гости не могут регистрировать счета
или перед? или после?
20. yura3d - 28 ноября 2009 — 23:29 - перейти к сообщению
Светлана
Ну тут уже чистая логика. Во-первых, нам нужны обе проверки как на авторизацию, так и на попытку повторной регистрации. Значит вариант "вместо" отпадает. Идём далее, имеет ли смысл проверять наличие файлов, если пользователь не авторизован? Очевидно что нет, поскольку гости не могут создавать счета и для них эти файлы никогда созданы не будут. Значит "перед" тоже не подходит, поскольку проверка на авторизацию должна быть раньше
(Добавление)
проверки наличия файлов. Остаётся "после"
21. Светлана - 29 ноября 2009 — 12:38 - перейти к сообщению
Поняла. Как-то совсем упустила, что в РНР исполнение "по очереди".
22. Светлана - 30 декабря 2009 — 10:32 - перейти к сообщению
Какую литературу можете посоветовать новичку в программировании для, хотя бы, понимания элементарных процессов в рнр и их связей? (Об освоении речи не веду.) Читая разные источники пришла к выводу, что они могут лишь запутать и публикуются лишь с целью саморекламы проггеров. И каждый из этих авторов предлагает "свой" рнр. С форумами ещё хуже: максимум "знатоков" и максимум же мусорной информации. Даже на простейший, казалось бы, вопрос, связанный с получением значений массива в таблицу, получила не нужные наставления и споры между собой "специалистов"... и всё. Может быть встречалась кому-нибудь ТОЛКОВАЯ книга, понятная для освоения даже гуманитарием и написанная о рнр, а не о личном "видении" рнр автором и очень желательно, чтобы на русском языке? Подчеркну, на русском. Спасибо.
===========================
Юрий, Александр и иже... не пора книгу написать?
23. Светлана - 30 декабря 2009 — 21:27 - перейти к сообщению
vipraskrutka, спасибо. http://php.su/ знаю, увы. Чую - вилы...

С наступающим!!! Удач во всём!
24. Светлана - 2 января 2010 — 13:56 - перейти к сообщению
Прошу написать файл за меня. Есть вновь создаваемые файлы х.php и x_data.php. вида
CODE:
<?die;?>a:2:{s:4:"name";s:5:"Raga";s:7:"regtime";i:1261317604;}

и
CODE:
<?die;?>a:15:{s:4:"open";i:0;s:8:"currency";i:0;s:8:"bbalance";i:0;s:8:"recharge";i:0;s:10:
"withdr
awal";i:0;s:7:"ttrades";i:0;s:7:"balance";i:0;s:9:"chbalance";i:0;s:6:"
equity";i:0;s:8:"
chequity";i:0;s:5:"maxdd";i:0;s:5:"reldd";i:0;s:8:"prfactor";i:0;s:9:"exppayoff";
i:0;s:6:"K%stab";i:0;}

Данные из этих файлов нужно собрать в таблицу, наподобие списка пользователей на этом форуме (tools.php?action=members). По каждому из типов данных ( "open", "currency" и т.д.,) нужна сортировка. Спасибо.

С наступившим! Улыбка
25. yura3d - 2 января 2010 — 14:12 - перейти к сообщению
Светлана пишет:
Какую литературу можете посоветовать новичку в программировании для, хотя бы, понимания элементарных процессов в рнр и их связей? (Об освоении речи не веду.) Читая разные источники пришла к выводу, что они могут лишь запутать и публикуются лишь с целью саморекламы проггеров. И каждый из этих авторов предлагает "свой" рнр. С форумами ещё хуже: максимум "знатоков" и максимум же мусорной информации. Даже на простейший, казалось бы, вопрос, связанный с получением значений массива в таблицу, получила не нужные наставления и споры между собой "специалистов"... и всё. Может быть встречалась кому-нибудь ТОЛКОВАЯ книга, понятная для освоения даже гуманитарием и написанная о рнр, а не о личном "видении" рнр автором и очень желательно, чтобы на русском языке? Подчеркну, на русском. Спасибо.

Смотря что понимается под элементарными процессами. Я нисколько не удивлён, что Вам на форумах предлагали различные варианты решения одной и той же задачи, поскольку в программировании в принципе подходов к реализации той или иной задачи можно предложить множество, и уже из них выбирается наиболее предпочтительный исходя из конкретных требований к работе будущей программы (или её составной части). Таковыми требованиями могут быть быстродействие, модульность, масштабируемость и т.д. Из книг даже не знаю, что можно Вам посоветовать. Наверное самым простым вариантом будет "Изучаем PHP и MySQL" (авторы Дэвис М., Филлипс Д.) В этой книге авторы полностью абстрагировались от технической стороны вопроса, поэтому, возможно, Вам такой подход будет проще. В то же время многие вопросы в этой книге не рассмотрены или рассмотрены недостаточно (а пример, приведённый для демонстрации загрузки файлов на сервер средствами PHP, вообще некорректен с точки зрения безопасности). Лучшим же вариантом литературы по PHP, на мой взгляд, являются книги Д.Котерова (в том числе и в соавторстве с другими авторами). На мой взгляд дедуктивный метод изучения, начиная от общих технических основ организации Интернета и заканчивая частными применениями PHP, позволит понять (а не просто применять то, чего не понимаешь - отсюда и Ваше представление о нелогичной организации PHP) работу PHP

Светлана пишет:
Юрий, Александр и иже... не пора книгу написать?

Это вопрос не настоящего времени, по крайней мере сейчас такой цели не стоит. Тем более, как уже сказал выше, хорошей литературы по PHP, нацеленной на разные уровни подготовки изучающих, хватает (в т.ч. и в электронном виде)

Светлана пишет:
Есть вновь создаваемые файлы х.php и x_data.php. вида

Вам бы желательно объединить Ваши файлы общим списком (т.е. фактически создать ещё один файл, в котором будет хранится массив с номерами x). В ExBB список пользователей (id, имя, e-mail) не генерируется на основе файлов из папки members. Этот список хранится в файле data/users.php, при открытии которого считываются первые n элементов списочного массива (в зависимости от установленного кол-ва вывода пользователей на страницу) и уже далее открываются файл вида members/N.php для заполнения таблицы оставшимися данными (город, адрес сайта, номер аськи и т.д.) Генерировать таблицу можно и без общего списка, однако в этом случае данный процесс будет более ресурсоёмким
26. Светлана - 2 января 2010 — 14:59 - перейти к сообщению
Спасибо за ответ.
yura3d пишет:
Это вопрос не настоящего времени, по крайней мере сейчас такой цели не стоит. Тем более, как уже сказал выше, хорошей литературы по PHP, нацеленной на разные уровни подготовки изучающих, хватает (в т.ч. и в электронном виде)

Точка зрения потребителя этой литературы, того самого, на которого "нацелена" вся эта макулатура (в т.ч. в электронном виде), всё же вернее. Она не для начинающих, а уже знающих. Обыкновенное, детальное описание работы (процессов) ЕхВВ даст новичку много больше для познания РНР.
Мы, с вашей подачи, уже рассматривали коммерческую сторону проекта. Форум на мускуле, который вы сейчас ваяете с Алексанром, значительно выиграет, если подобное описание будет выпущено в виде книги (возможно, что и приложения). Тогда беспокоившее вас место на рынке будет занято сразу и без оговорок, и при минимуме затрат на раскрутку. Надеюсь, в моём скромном мнении вы увидите рационал. Цена книги (описания, как угодно) - 15-45 мин. в день... Те самые, что вы потеряете в большем кол-ве(причём - в космос) на раскручивание проекта и ответы на "идиотские" вопросы, коих будет великое множество после запуска пробной версии.
Кроме того, поклонников быстрой файловой версии для средненьких форумов не убудет, думается...
С уважением.
27. yura3d - 2 января 2010 — 19:39 - перейти к сообщению
Светлана
Уточните, у Вас реализация работы со списком сделана в рамках ExBB (подобно ранее выложенному мной примеру) или отдельно?
28. Светлана - 2 января 2010 — 20:51 - перейти к сообщению
yura3d пишет:
Светлана
Уточните, у Вас реализация работы со списком сделана в рамках ExBB (подобно ранее выложенному мной примеру) или отдельно?
Да, в рамках ЕхВВ. Изменения примерного кода минимальны:
CODE:
<?php

define('IN_EXBB', 1); // Скрипт относится к ExBB
require_once('include/common.php'); // Подключаем ядро ExBB

$fm->_LoadLang('accounts');
$fm->_GetVars(); // Получаем входящие данные
if (!$fm->user['id']) // Если пользователь не авторизован
$fm->_Message($fm->LANG['Reg_acc_D'], $fm->LANG['GoNot']); // Ошибка: гости не могут регистрировать счета
// Ищем файлы с данными о пользователе в папке acc_demo
if (file_exists('acc_demo/'.$fm->user['id'].'.php'))
// Если в одной из папок файл найден, выводим ошибку и останавливаем регистрацию
$fm->_Message($fm->LANG['Reg_acc_D'], $fm->LANG['NO_Reg_D']);

if ($fm->_POST !== true) { // Если форма не отправлена
// Выводим форму

// Далее идёт подключение шаблонов
include('./templates/'.DEF_SKIN.'/all_header.tpl');
include('./templates/'.DEF_SKIN.'/logos.tpl');
include('./templates/'.DEF_SKIN.'/reg_acc_demo.tpl');
include('./templates/'.DEF_SKIN.'/footer.tpl');
}
else {

// Форма отправлена
// Действия, если форма отправлена

$l = $fm->_String('L'); // Получаем значение поля L
$p = $fm->_String('P'); // Тоже самое для поля P
$s = $fm->_String('S'); // Для

// Получаем текущие дату и время на сервере, которые будут использоваться как регистрационные для счёта
$regtime = $fm->_Nowtime;

// Создание ассоциативного массива с данными для 1-го файла
$data = array(
'name' => $fm->user['name'], // Имя пользователя на форуме
'regtime' => $regtime // Дата регистрации счёта
);

// Создание файла counts
$fm->_Read2Write($fp, 'acc_demo/'.$fm->user['id'].'.php');

// Запись содержимого массива в файл
$fm->_Write($fp, $data);

// Создание ассоциативного массива с данными для 2-го файла
$data = array(
'open' => 0,
'currency' => 0,
'bbalance' => 0,
'recharge' => 0,
'withdrawal' => 0,
'ttrades' => 0,
'balance' => 0,
'chbalance' => 0,
'equity' => 0,
'chequity' => 0,
'maxdd' => 0,
'reldd' => 0,
'prfactor' => 0,
'exppayoff' => 0,
'K%stab' => 0
);

// Создание файла acc_demo/<N>_data.php ( N - id пользователя на форуме)
$fm->_Read2Write($fp, 'acc_demo/'.$fm->user['id'].'_data.php');

// Запись содержимого массива в файл
$fm->_Write($fp, $data);

// Создаём переменную с текстом для отправки админу
$email = sprintf('Имя пользователя: %s
Логин: %s
Пароль: %s
Сервер: %s
Дата регистрации счёта: %s',
$fm->user['name'], $l, $p, $s, date('H:i:s, d.m.Y', $regtime));

// Отправка админу почты с информацией о регистрации
$fm->_Mail($fm->exbb['boardname'], $fm->exbb['adminemail'], $fm->exbb['adminemail'], $fm->LANG['Reg_acc_D'], $email);

// Вывод сообщения о завершении регистрации
$fm->_Message($fm->LANG['Reg_acc_D'], $fm->LANG['ОК_Reg_D'], 'index.php');
}

require_once('include/page_tail.php'); // Подключение части ядра ExBB, выполняющей вывод данных
?>
Убрали радиокнопку и сделали регистрацию счетов отдельно - "реал" и "демо".
29. Светлана - 21 января 2010 — 09:24 - перейти к сообщению
При написании скрипта торгового терминала, отправляющего файл в папку на сервер, возник вопрос.
"Как я понимаю
a:15: - это количество "параметров" которые буду дальше в списке
дальше идет
s:4: - описание названия параметра (точнее - его длинна в символах)
"open"; - собственно название параметра
i:0; - значение параметра и тут вопрос i - это значит целое? для double должно быть d? а для строки s? а для времени? или там просто вырезается текстовая строка до ";" и подставляется как есть? или как...?"
30. 1Bot - 21 января 2010 — 14:37 - перейти к сообщению
Светлана пишет:
При написании скрипта торгового терминала, отправляющего файл в папку на сервер, возник вопрос.
"Как я понимаю
a:15: - это количество "параметров" которые буду дальше в списке
дальше идет
s:4: - описание названия параметра (точнее - его длинна в символах)
"open"; - собственно название параметра
i:0; - значение параметра и тут вопрос i - это значит целое? для double должно быть d? а для строки s? а для времени? или там просто вырезается текстовая строка до ";" и подставляется как есть? или как...?"


Ваш вопрос связан с алгоритмом работы функции serialize().

Чтобы понять алгоритм работы этой функции, ниже пример алгоритма этой функции, написанный на JavaScript
Спойлер (Отобразить)

Яндекс.Метрика   

Powered by ExBB
[Script Execution time: 0.0503]     [ ]