• Страница 1 из 1
  • 1
Модератор форума: LightInDarkness  
[Сайт] WeWow CMS 1.0
trevan
Скаут
Всем привет.Предлагаем вашему вниманию WeWow CMS 1.0!
Дизайн не мой,"движок" написан с нуля.

Здесь реализовано:
Код
1.Регистрация и авторизация.
2.Мониторинг 1 реалма.
3.И небольшая админка которая позволяет добавлять и удалять новости.
4.Если кого заинтересует этот сайт,буду доделывать.

Скрины


Скачать
Сообщение # 1 отредактировано Sherlоck - Среда, 05.02.2014, 18:59
Dispeller™
†√ιק†
Был здесь уже этот сайт или я ошибаюсь? smile
Сообщение # 2 написано 23.10.2012 в 22:13
Zver107
Arcenal-Team|Admin
тут данный сайт есть

Сообщение # 3 написано 23.10.2012 в 22:18
Dispeller™
†√ιק†
Сообщение # 4 написано 23.10.2012 в 22:19
trevan
Скаут
Если по дизайну судить то да.А если по коду,то он не как не относиться к остальным.Написан с нуля.
Сообщение # 5 написано 24.10.2012 в 00:11
RazArt
Тазовод
начинать работу с сессией после отправки хедера, щикарно..
DumpMe v1.0 - система автоматического переноса персонажей

Вышла в свет первая стабильная версия. Писать в скайп - razart8
Сообщение # 6 написано 24.10.2012 в 13:23
trevan
Скаут
Quote (RazArt)
начинать работу с сессией после отправки хедера, щикарно..

А какая разница?
Сообщение # 7 написано 24.10.2012 в 13:58
std_string
Центурион
Quote (trevan)
А какая разница?

Довожу до вашего сведения, что разница тут очень большая. Учите матчасть.
Разработка сайтов различной сложности, дешево. Скайп в профиле.
Сообщение # 8 написано 24.10.2012 в 14:28
trevan
Скаут
std_string,

Можешь кратко объяснить?
Сообщение # 9 написано 24.10.2012 в 14:43
RazArt
Тазовод
trevan, http://www.mrwolf.ru/Internet/Web_programmirovanie/10178
DumpMe v1.0 - система автоматического переноса персонажей

Вышла в свет первая стабильная версия. Писать в скайп - razart8
Сообщение # 10 написано 28.10.2012 в 23:54
Прадмур
~
trevan, продолжай работать над сайтом, но организуй людям отдельный конфиг, что бы они не искали где настраивать параметры для подключения к базе данных =)

Но, ты хотя бы тестируешь то, что пишешь?
Для начала, поставь в index.php второй строчкой error_reporting(E_ALL); и почитай как "выражается" php интерпретатор, а затем исправь все предупреждения.

Также попробуй организовать более читабельную логику в коде. Например сделай что бы каждый php скрипт занимался чем-то одним (вынеси всё в отдельные модули, классы, распредели по папкам), а не так как SiteDB.class занимается всем и сразу. Так будет и тебе проще разбираться в коде, и другим людям проще понимать о чём ты пишешь.

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

Также запросы
Quote
SELECT id, username, sha_pass_hash FROM auth.account WHERE username='$login' AND sha_pass_hash='$pass'
Quote
SELECT id, gmlevel FROM auth.account_access WHERE id='{$row['0']['id']}'

можно упростить до одного:
Quote
SELECT a.id, username, gmlevel, sha_pass_hash FROM account a LEFT JOIN account_access aa ON a.id = aa.id WHERE username = 'Pradmure'

И не стоит использовать запросы вида:
Quote
SELECT * ...
если тебе нужны какие-то конкретные поля, то выбирай именно их и ничего лишнего. Если просто нужно проверить существование записи в таблице то выбирай одно поле, например идентификатор.
Ещё нужно позаботиться о результате запроса. Чтобы если запрос ничего не вернул, то в коде позаботиться об этом и присвоить нужной переменной, например, нулевое значение (в пример вывод максимального онлайна в твоей статистике. И почему она не считает реальное количество игроков в данный момент, а использует данные которые перезаписываются как минимум раз в 10 минут?).

Ну и в конце концов, попробуй отделить html код от php хотя бы каким-нибудь простеньким самописным шаблонизатором.

А пока-что я не понимаю большей части логики кода и смысла лишних методов которые даже не используются.
Сообщение # 11 написано 29.10.2012 в 08:28
std_string
Центурион
Quote (Прадмур)
Если просто нужно проверить существование записи в таблице

Можно просто выбрать количество записей в ней. SELECT COUNT, все дела..
Разработка сайтов различной сложности, дешево. Скайп в профиле.
Сообщение # 12 написано 29.10.2012 в 10:07
Прадмур
~
Quote (std_string)
Можно просто выбрать количество записей в ней. SELECT COUNT, все дела..

Если нужно проверить существование логина, то ты будешь использовать count? Функции count придётся передать имя колонки (ну или ту же самую звёздочку). И тогда зачем count, если можно только имя колонки?)

Вообще мне всё равно. Выбирайте хоть звёздочками. Главное что бы работало и смотрелось понятно и красиво.

Просто навязываю своё мнение окружающим =)
Сообщение # 13 отредактировано Прадмур - Понедельник, 29.10.2012, 10:28
std_string
Центурион
Quote (Прадмур)
Если нужно проверить существование логина, то ты будешь использовать count?

Я не смотрел кода, также я не понял, количество чего надо проверить. Именно поэтому я констатирую тот факт, что наличие записей в таблицы можно проверить с помощью SELECT COUNT, которая вернет значение, и если оно >0, то в таблице есть записи. Если нужно проверить существование логина, я также не вижу огромной разницы между выбором COUNT и выбором колонки, разница лишь в том, что COUNT вернет количество записей.
Разработка сайтов различной сложности, дешево. Скайп в профиле.
Сообщение # 14 написано 29.10.2012 в 10:37
RazArt
Тазовод
std_string, не всегда это удобно
DumpMe v1.0 - система автоматического переноса персонажей

Вышла в свет первая стабильная версия. Писать в скайп - razart8
Сообщение # 15 написано 29.10.2012 в 23:12
trevan
Скаут
Quote (Прадмур)
trevan, продолжай работать над сайтом, но организуй людям отдельный конфиг, что бы они не искали где настраивать параметры для подключения к базе данных =)
Я буду делать установших сайта

Quote (Прадмур)
Для начала, поставь в index.php второй строчкой error_reporting(E_ALL); и почитай как "выражается" php интерпретатор, а затем исправь все предупреждения.
Обязательно все протестирую и исправлю.

Quote (Прадмур)
Также попробуй организовать более читабельную логику в коде. Например сделай что бы каждый php скрипт занимался чем-то одним (вынеси всё в отдельные модули, классы, распредели по папкам), а не так как SiteDB.class занимается всем и сразу. Так будет и тебе проще разбираться в коде, и другим людям проще понимать о чём ты пишешь.
На счет этого тоже думал.

Quote (Прадмур)
Также посоветовал бы использовать замечательную штуку, которая есть в mysqli - это подготовленные выражения. Это также поможет избежать sql инъекций которые существуют в твоём коде (например при регистрации аккаунта).

Я знаю о такой веши.Я с ней ишо не разобрался.Но твой совет учту.
Скинь кусок кода где ты увидел sql-inj.У меня там все фильтруется.

Quote (Прадмур)
Ну и в конце концов, попробуй отделить html код от php хотя бы каким-нибудь простеньким самописным шаблонизатором.


Попробую)

Спасибо большое за комментарии моего кода.Обязательно все учту)))
Сообщение # 16 написано 30.10.2012 в 14:42
std_string
Центурион
Quote (RazArt)
std_string, не всегда это удобно

Я и не говорю, что это единственный вариант, но в некоторых случаях правильней будет этот метод.
Разработка сайтов различной сложности, дешево. Скайп в профиле.
Сообщение # 17 написано 30.10.2012 в 15:25
Прадмур
~
Quote (trevan)
Скинь кусок кода где ты увидел sql-inj.У меня там все фильтруется.

В методе saveUser там из файла saveuser.inc.php методом post заносится в переменную $pass значение $_POST['pass']. Дальше значение этой переменной напрямую заносится в saveUser. И дальше напрямую используется в запросе:
Quote
INSERT INTO account (username, sha_pass_hash, email, expansion) VALUES ('$login', SHA1(CONCAT(UPPER('$login'),':',UPPER('$pass'))), '$email', 2)

Если генерацию sha1 хеша вынести за sql запрос (так как у тебя делается в методе authUser), то прямая sql инъекция исключается.
Сообщение # 18 написано 30.10.2012 в 20:17
trevan
Скаут
Quote (Прадмур)
Скинь кусок кода где ты увидел sql-inj.У меня там все фильтруется.

В методе saveUser там из файла saveuser.inc.php методом post заносится в переменную $pass значение $_POST['pass']. Дальше значение этой переменной напрямую заносится в saveUser. И дальше напрямую используется в запросе:
INSERT INTO account (username, sha_pass_hash, email, expansion) VALUES ('$login', SHA1(CONCAT(UPPER('$login'),':',UPPER('$pass'))), '$email', 2)

Если генерацию sha1 хеша вынести за sql запрос (так как у тебя делается в методе authUser), то прямая sql инъекция исключается.


Точно.Спасибо.Забыл что она в sql запросе генерируется).
Сообщение # 19 написано 30.10.2012 в 21:16
OnеlesS
Капрал
Спасибо большое, то что мне нужно.
Сообщение # 20 написано 31.10.2012 в 00:12
std_string
Центурион
Кстати, меня одного настораживает шаб SoulsticeWeb?
Разработка сайтов различной сложности, дешево. Скайп в профиле.
Сообщение # 21 написано 31.10.2012 в 03:17
trevan
Скаут
Quote (std_string)
Кстати, меня одного настораживает шаб SoulsticeWeb?


Да
Сообщение # 22 написано 31.10.2012 в 14:24
  • Страница 1 из 1
  • 1
Поиск: