Ru-MaNGOS

Вернуться   Ru-MaNGOS > Дополнения > WWW

Важная информация

WWW Web интерфейс для MaNGOS

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.03.2011, 08:35   #1
ExDragon
Пользователь
 
Регистрация: 02.02.2011
Сообщений: 58
Сказал(а) спасибо: 17
Поблагодарили 0 раз(а) в 0 сообщениях
ExDragon На верном пути
По умолчанию Аукцион чаров!

ExAuction - Это сайт реализован для MaNGOS (планируется и Trinity Core), в него входят возможности:
- Выставлять своих персонажей на аукцион для обмена.
- Смена ника, пола, (расы, фракции - требуется патч в ядро).
- Смена пароля учётной записи.
- Смена e-mail учётной записи.
- Регистрация новой учётной записи.

Последняя стабильная версия 0.29
Git
Код:
git://github.com/ExDragon/ExAuction.git

Последний раз редактировалось ExDragon; 01.08.2011 в 11:00.
ExDragon вне форума   Ответить с цитированием
Старый 23.03.2011, 12:36   #2
Праведник
Пользователь
 
Регистрация: 27.03.2010
Сообщений: 80
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 13 сообщениях
Праведник На верном пути
По умолчанию

Во-первых, что-то мне подсказывает, что заливать 25кб на файлообменник (запрещённый к тому же) - моветон.

Во-вторых, пересилил себя и скачал данное чудо... К слову о свершенстве:

Код:
		//По стандарту ли ведён маил
		$dog = substr_count($email,"@");
		if ($dog == 1){
			$mai = true;
		} else {
			$mai = false;
		}
Я как бы представлял себе валидацию немного иначе:

Код:
     static public function CheckEmail($Email, $Strict = FALSE) {
         if ($Strict === TRUE)  {
            $qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]';
            $dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]';
            $atom  = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+';
            $pair  = '\\x5c[\\x00-\\x7f]'; 
            $domain_literal = "\\x5b($dtext|$pair)*\\x5d";
            $quoted_string  = "\\x22($qtext|$pair)*\\x22";
            $sub_domain     = "($atom|$domain_literal)";
            $word           = "($atom|$quoted_string)";
            $domain         = "$sub_domain(\\x2e$sub_domain)*";
            $local_part     = "$word(\\x2e$word)*";
 
            $expression     = "/^$local_part\\x40$domain$/D";
         }
         else {
        $expression = '/^[-_a-z0-9\'+*$^&%=~!?{}]++(?:\.[-_a-z0-9\'+*$^&%=~!?{}]+)*+@(?:(?![-.])[-a-z0-9.]+(?<![-.])\.[a-z]{2,6}|\d{1,3}(?:\.\d{1,3}){3})(?::\d++)?$/iD';
 
        return (bool) preg_match($expression, (string) $Email);
     }
Ну или на крайний случай так:

Код:
     static public function CheckEmail($Email) {
      if (filter_var($Email, FILTER_VALIDATE_EMAIL))
	    return true;
	  return false;	
     }
Но... придётся отказаться от этих функций Ведь подсчитать кол-во собачек - намного проще и главное быстрее)

Дальше я как бы даже не всматривался особо, ибо всё ясно... Такой метод валидации - безусловно прорыв
Ах да, инклюд конфига в каждую функцию (ну и подключение к базам, соответсвенно) тоже рулит
В-третьих, о какой модульности (я уже молчу про ООП) может идти речь в данном "личном кабинете"? О какой безопасности вы говорите в то время, как никакой валидации данные не подвергаются (про substr_count() шутку оценил)...

Последний раз редактировалось Праведник; 23.03.2011 в 12:44.
Праведник вне форума   Ответить с цитированием
Старый 23.03.2011, 12:46   #3
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Праведник, зря ты так...
Некоторые вообще всё наготово просят. А тут человек как умел, так и написал. Ничего страшного. Для этого и есть форумы. Поделился, тебе указали на ошибки, исправился.
Что-то сделал сам (что работает) - уже отлично!
KiriX вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
sven (09.05.2011)
Старый 23.03.2011, 12:55   #4
Праведник
Пользователь
 
Регистрация: 27.03.2010
Сообщений: 80
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 13 сообщениях
Праведник На верном пути
По умолчанию

KiriX, ну на 1 из ошибок я указал
Даже за вуалью иронии хранится решение ошибки) И даже в 2х экземплярах.

Но дело даже не в этом. Сейчас существуют несколько личных кабинетов, сотни сайтов с мануалами, тысячи страниц разжёванной информации... Ну не можешь сделать сам - посмотри. Да о чём речь. Можно было бы хотябы изучить типы данных (основы любого языка), чтобы ткнуть пеерд $guid несчастный (int), который в разы бы помог "залатать" часть огрех. 1 определение типа данных, а сколько пользы (опять за вуалью кроется решение). Посмотреть что такое regexp (+1 решение) и для чего его можно применять.

Тут куда не ткни - видно, что автор не понимает русского, не понимает смысла функций, логики их применения и т.д. А он уже про ООП мечтает (видимо, абривиатура просто красивая... модная...).

Безусловно, я рад помочь человеку (в меру своих сил (пускай они не безграничны)), который хотябы пытается писать правильно... Но когда приподносят конгломерат непонятных кусков со смыслом "я тут накидал чего-то и мне надо это напильником отрихтовать" (а на самом деле тут ещё на станке поработать надо) - это... промолчу. Сайтом он явно ошибся.

Последний раз редактировалось Праведник; 23.03.2011 в 13:03.
Праведник вне форума   Ответить с цитированием
Старый 23.03.2011, 13:16   #5
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Ну в принципе, думаю, если у человека мозг на месте и выполняет свои функции - во втором и 4 посте ты весьма помог
KiriX вне форума   Ответить с цитированием
Старый 23.03.2011, 16:13   #6
Кот ДаWINчи
Умный
 
Аватар для Кот ДаWINчи
 
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
Кот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человек
Отправить сообщение для Кот ДаWINчи с помощью ICQ Отправить сообщение для Кот ДаWINчи с помощью Skype™
По умолчанию

Я тоже скачал.
Стал смотреть код и заплакал... -> -> ->
к примеру, auct.php начинается с
PHP код:
<html>
<head>
</head>
<body>
<?php
require 'func.php';
session_start();
Откройте документацию по пхп и прочитайте(переведите) про работу с сессиями. первые четыре строчки данного файла на все 9999999% из ста дадут ошибку в 7-ой строке "Cannot send session cache limiter - headers already sent". И такое положение вещей практически во всех .php
Кот ДаWINчи вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
tempura (23.03.2011)
Старый 24.03.2011, 07:23   #7
ExDragon
Пользователь
 
Регистрация: 02.02.2011
Сообщений: 58
Сказал(а) спасибо: 17
Поблагодарили 0 раз(а) в 0 сообщениях
ExDragon На верном пути
По умолчанию

Ох знал, зря! спасибо помогли, можно удалить тему сам справлюсь!
Как таковой он свою задачу выполняет! блин ну я же написал я переделаю я вообще не написал что хочу! почему всегда на начинающих так бросаются?
ExDragon вне форума   Ответить с цитированием
Старый 24.03.2011, 08:19   #8
BloodWarrior
Ученый
 
Аватар для BloodWarrior
 
Регистрация: 08.05.2010
Адрес: Новокузнецк
Сообщений: 141
Сказал(а) спасибо: 32
Поблагодарили 21 раз(а) в 9 сообщениях
BloodWarrior На верном пути
По умолчанию

ExDragon на начинающих не бросаются а дают дельные советы.

В соседней темке мне дали ценных советов море по скрипту который я делал, чтобы прикрепить к себе в лоадер и не париться.

Если обижаться на народ, то так ничему и не научишся.

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

Да посмеялись над моим индусским кодом, но я и сам смеюсь над ним же, вместе с остальными.
Все таки первая длясебятина причем на скорую руку, без опыта и возможности нормально почитать литературу с рабочего места.

Впереди у меня 2 выходных на которых я благодаря советам смогу сделать то, что мне нужно в грамотном варианте, в планах еще конечно вынести из того скрипта информацию по коннекту к бд и перенести ее в конфиг и запретку под .htaccess чтоб при просмотре кода страницы если кто в локале решит ткнуться не получили потом доступ к бд - но это мои планы.


А мой совет тебе - относись к своим творениям с хорошей такой долей самоиронии.
Ты учишся, тебе помогают, да немного шутят, но ежкин кот тебе дают ответы на вопросы в руки, и не банят не выгоняют не затролливают насмерть)))

Хотя конечно тут и затроллить могут)) Тут такое частенько ывало и на старом форуме в особенности, но это для неадекватов.


Так шо прими советы с благодарностью и просто модернезируй свое творение и не бойся спрашивать.
На этом проекте люди учатся, и никто тут никогда не против поделиться знаниями!
BloodWarrior вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
sven (09.05.2011)
Старый 24.03.2011, 13:41   #9
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Цитата:
Сообщение от ExDragon Посмотреть сообщение
Ох знал, зря! спасибо помогли, можно удалить тему сам справлюсь!
Правила, А-6
Цитата:
Сообщение от ExDragon Посмотреть сообщение
Как таковой он свою задачу выполняет!
Микроскоп тоже может выполнять задачу забивания гвоздей. Причем - не только подставкой, но можно и линзами долбить.
Цитата:
Сообщение от ExDragon Посмотреть сообщение
блин ну я же написал я переделаю я вообще не написал что хочу!
Не написал. Помечтал и пригласил "единомышленников". Причем сам код выложил на коммерческий обменник. Для совместной разработки обычно используются системы распределенного контроля версий, а не коммерческие обменники.

Цитата:
Сообщение от ExDragon Посмотреть сообщение
почему всегда на начинающих так бросаются?
Во-первых - тут еще никто ни на кого не бросался. Хотя меня после такого уродского поста очень подмывает броситься.
Во-вторых - а что ты начал-то? Написал кривой дырявый код, а когда тут написали что это "кривой дырявый код" - ты уже в позу встал? Да и более того - никто про кривость и дырявость не писал. Просто указали проблемные места, в которых просто необходимо сделать изменения.

Или ты хотел, чтобы тебя начали хвалить за кривой дырявый код? Без проблем, я сейчас всех построю - начнут хвалить. Ты только адрес оставь - где и как именно его взломать, чтобы тебе похвалы еще приятнее были.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 24.03.2011, 15:55   #10
ExDragon
Пользователь
 
Регистрация: 02.02.2011
Сообщений: 58
Сказал(а) спасибо: 17
Поблагодарили 0 раз(а) в 0 сообщениях
ExDragon На верном пути
По умолчанию

у меня сейчас очень мало свободного времени и я крайне редко сажусь за код!
всё внимание вопрос!
как идея того чтобы сделать модульную подгрузку страницы с последующий заполнения её информации относительно пользователя.. это всё происходит в одной среде index.php, а вот самое главное безопасность как сделать проверку на то "зашёл ли пользователь в систему"? сессию? я сделал
Код:
session_start();
if (isset($_SESSION['ip'])){
	if ($_SESSION['ip'] == $_SERVER['REMOTE_ADDR'])
ДА ЭТО ГЛУПО! но как тогда сделать?
ExDragon вне форума   Ответить с цитированием
Старый 24.03.2011, 16:20   #11
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от ExDragon Посмотреть сообщение
у меня сейчас очень мало свободного времени и я крайне редко сажусь за код!
всё внимание вопрос!
как идея того чтобы сделать модульную подгрузку страницы с последующий заполнения её информации относительно пользователя.. это всё происходит в одной среде index.php, а вот самое главное безопасность как сделать проверку на то "зашёл ли пользователь в систему"? сессию? я сделал
Код:
session_start();
if (isset($_SESSION['ip'])){
	if ($_SESSION['ip'] == $_SERVER['REMOTE_ADDR'])
ДА ЭТО ГЛУПО! но как тогда сделать?
бросай весь код, тогда уж....по огрызкам никак не помочь
http://filebeam.com/ - нормальный файл обменник
  Ответить с цитированием
Старый 24.03.2011, 16:35   #12
ExDragon
Пользователь
 
Регистрация: 02.02.2011
Сообщений: 58
Сказал(а) спасибо: 17
Поблагодарили 0 раз(а) в 0 сообщениях
ExDragon На верном пути
По умолчанию

хм я хочу всё переделать с нуля! начну с безопасности..
DOWNLOAD NOW!
ExDragon вне форума   Ответить с цитированием
Старый 24.03.2011, 16:51   #13
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Цитата:
модульную подгрузку страницы с последующий заполнения её информации относительно пользователя
это аяксом что ли? о_О
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 24.03.2011, 17:11   #14
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от ExDragon Посмотреть сообщение
хм я хочу всё переделать с нуля! начну с безопасности..
DOWNLOAD NOW!
тогда начни с использования стабильного фреймверка
сессии: zend.session.html

Добавлено через 9 минут
Цитата:
Сообщение от tempura Посмотреть сообщение
это аяксом что ли? о_О
да не там проще , при генерации страницы происходит проверка пользователя ,и если он залогинен - ему "что то" отображается.

to ExDragon
Код:
if ($_SESSION['ip'] == $_SERVER['REMOTE_ADDR'])
в вашем варианте лишняя проверка, т.к. $_SESSION['ip'] устанавливается только при логине, достаточно
Код:
isset($_SESSION['ip'])
зачем этот код? Неужели в игре есть гермафродиты?
Код:
	switch ($gender){
		case 0:
			$gender = 0;
		break;
		case 1:
			$gender = 1;
		break;
	}
код выше
Код:
	switch ($rasa){
		case 1:
		  $rasa = "Человек";
		  $img = 1;
		  break;
		case 2:
		  $rasa = "Орк";
		   $img = 2;
		  break;
зачем переменная $img??
так никак???
Код:
print '<img src="images/race/'.$rasa.'-'.$gender.'.gif">';
в общем переделывать все

Последний раз редактировалось Minimajack; 24.03.2011 в 17:49.
  Ответить с цитированием
Пользователь сказал cпасибо:
tempura (25.03.2011)
Старый 24.03.2011, 20:07   #15
Праведник
Пользователь
 
Регистрация: 27.03.2010
Сообщений: 80
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 13 сообщениях
Праведник На верном пути
По умолчанию

Minimajack, рекомендовать Зенд человеку, который ничего не понимает в ООП, MVC, да и, чёрт побери, в программировании - не менее кащунственно, чем то, что тс называет аукционом персонажей.
Праведник вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Gerald (24.03.2011)
Старый 24.03.2011, 20:14   #16
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от Праведник Посмотреть сообщение
Minimajack, рекомендовать Зенд человеку, который ничего не понимает в ООП, MVC, да и, чёрт побери, в программировании - не менее кащунственно, чем то, что тс называет аукционом персонажей.
пускай учится с нормальным инструментом работать
тем более, работать с фреймверком намного легче, чем придумывать свой велосипед. Примеры есть, если бы мне, в свое время, сказали об удобных фреймверках, я был бы только счастлив.
Я ж не со зла
  Ответить с цитированием
Старый 24.03.2011, 20:23   #17
Праведник
Пользователь
 
Регистрация: 27.03.2010
Сообщений: 80
Сказал(а) спасибо: 12
Поблагодарили 25 раз(а) в 13 сообщениях
Праведник На верном пути
По умолчанию

Чтобы работать с инструментом надо сначала представлять для чего он.
А то что-то на ум лезет картина: джунгли, группа обезьян с перфораторами в руках, долбящих друг другу головы.

но это мы уже отдалились от темы. Зенд ТС-у не нужен. Факт.
ему бы научиться, для начала, с отвёрткой работать... прежде, чем брать в руки шуруповёрт с набором бит.
Праведник вне форума   Ответить с цитированием
Старый 24.03.2011, 23:45   #18
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

не надо устраивать холивар.

зы если хотите пообщаться на эту тему поподробнее прошу в личку
  Ответить с цитированием
Старый 25.03.2011, 06:02   #19
Кот ДаWINчи
Умный
 
Аватар для Кот ДаWINчи
 
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
Кот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человек
Отправить сообщение для Кот ДаWINчи с помощью ICQ Отправить сообщение для Кот ДаWINчи с помощью Skype™
По умолчанию

ExDragon, если хочешь учиться пхп и делать проект с модулями, сессиями, шкурками, то как пример могу предложить свой АСР - http://ru-mangos.ru/showthread.php?t=115

Там как раз всё сделано в стиле "для начинающих" без ООП, и по колхозному, но многое чему ты хочешь научиться там как раз есть. Ранее в АСР хромала безопасность, но в последних ревах все увиденные мной и другими дырки были закрыты.

И совет: Если ты действительно хочешь написать что-то стоющее, то определись с тем что тебе надо реализовать в проекте, напиши (чисто для себя) подробное ТЗ, и потом планомерно реализуй его. Пункт за пунктом. И главное заложи в проект небольшую избыточность возможностей, чтобы когда в процессе разработки виденье некоторых модулей и концепций измениться, то за счет этой избыточности можно было с легкостью подправить своё ТЗ и безболезненно продолжить реализацию без отката на несколько шагов назад.

И храни чистые исходники в репозитории.
Кот ДаWINчи вне форума   Ответить с цитированием
Старый 25.03.2011, 07:16   #20
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Есть у меня смутное подозрение, что автор будет поражен в самое пятку фактом существования людей, умнее него.
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 25.03.2011, 07:58   #21
ExDragon
Пользователь
 
Регистрация: 02.02.2011
Сообщений: 58
Сказал(а) спасибо: 17
Поблагодарили 0 раз(а) в 0 сообщениях
ExDragon На верном пути
По умолчанию

Очень интересно откуда вы знаете, что я не знаю или что знаю?
да у меня нет опта в создании хороших, безопасных сайтов! я только начинаю в ходить в это дело.. пс я прочитал мануалы по php css и html, к тому же у меня был опт работы с С++...
я спросил как сделать логин - вход юзера, БЕЗОПАСНО! а вы предлагаете использовать Уже сделанный кем то велосипед!? из прочтённого я не увидел не одного стоящего совета.. обидно
Minimajack, это mangos (wow)!
Праведник, предлагать Zend человеку которому не нужно это?!
Кот ДаWINчи, я давно сделал это! я даже сделал наработки, НАРАБОТКИ!
повторю вопрос, как сделать в лучшем виде проверку на "зашёл ли юзер"? мой вариант остаётся
Код:
isset($_SESSION['login'])
на пример, когда юзер пройдёт авторизацию откроется сессия и сохранит данные...
ExDragon вне форума   Ответить с цитированием
Старый 25.03.2011, 09:39   #22
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Цитата:
Сообщение от ExDragon Посмотреть сообщение
Очень интересно откуда вы знаете, что я не знаю или что знаю?
По твоей работе, по твоим словам. По всему, что ты о себе уже успел предъявить.
Цитата:
Сообщение от ExDragon Посмотреть сообщение
да у меня нет опта в создании хороших, безопасных сайтов! я только начинаю в ходить в это дело.. пс я прочитал мануалы по php css и html, к тому же у меня был опт работы с С++...
я спросил как сделать логин - вход юзера, БЕЗОПАСНО! а вы предлагаете использовать Уже сделанный кем то велосипед!? из прочтённого я не увидел не одного стоящего совета.. обидно
Minimajack, это mangos (wow)!
Праведник, предлагать Zend человеку которому не нужно это?!
Кот ДаWINчи, я давно сделал это! я даже сделал наработки, НАРАБОТКИ!
повторю вопрос, как сделать в лучшем виде проверку на "зашёл ли юзер"? мой вариант остаётся
Код:
isset($_SESSION['login'])
на пример, когда юзер пройдёт авторизацию откроется сессия и сохранит данные...
Дурак - это не тот кто ничего не знает. Дурак - это тот, кто не хочет учиться. Умный - учится на своих ошибках, мудрый - на чужих.
Как тебе это стандартный комплект банальностей, которым уже более тысячи лет? Осознается, или мимо пролетает?

Если бы ты посмотрел хотя бы пять-шесть подобных проектов, ты мог бы узнать как много можно написать иначе - проще и удобнее. Ну а раз ты отказываешься учиться на чужих ошибках, на чужом опыте - так это твои проблемы. Хотя ты тут и на собственном опыте не очень-то и учишься...
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 25.03.2011, 09:54   #23
Кот ДаWINчи
Умный
 
Аватар для Кот ДаWINчи
 
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
Кот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человек
Отправить сообщение для Кот ДаWINчи с помощью ICQ Отправить сообщение для Кот ДаWINчи с помощью Skype™
По умолчанию

Цитата:
как сделать в лучшем виде проверку на "зашёл ли юзер"?
А ты сам определись с критериями безопасности, которые бы были необходимо-достаточны для входа в пользователя. Этих критериев мы от тебя не узрели.

Вот для меня необходимо достаточная информация о пользователе - это логин, пароль и IP. Также, наверное, необходимо знать "статус" пользователя (игрок, модер, ГМ, админ).

Я бы в движке делал так:

1-ой строкой - session_start(); // т.е. сессия запускается в любом случае

2-й строкой проверка на наличие нужных параметров идентификации.

далее если параметры совпадают - подгружаем нужный модуль.

если нет - показываем модуль для незарегеных.
Кот ДаWINчи вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 25.03.2011, 10:10   #24
ExDragon
Пользователь
 
Регистрация: 02.02.2011
Сообщений: 58
Сказал(а) спасибо: 17
Поблагодарили 0 раз(а) в 0 сообщениях
ExDragon На верном пути
По умолчанию

Кот ДаWINчи, ACP ваше творение? а знаю видел тоже так сделал, а вы не заметили
tempura, причём здесь это? я учусь когда сам вижу суть ошибки!
О я наверное не правильно задаю вопрос, хотя нет я наверное не там его задал!
ни стоит напрягать свои супермозг и думать над вопросом смертного!
это же ru-mangos.ru здесь все думают только о mangos верно? Можно я выложу когда переработаю её? а вот тогда будите кидаться цитатами...
ExDragon вне форума   Ответить с цитированием
Старый 25.03.2011, 11:23   #25
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от ExDragon Посмотреть сообщение
Очень интересно откуда вы знаете, что я не знаю или что знаю?
посмотрел ваш код.
Цитата:
Сообщение от ExDragon Посмотреть сообщение
да у меня нет опта в создании хороших, безопасных сайтов! я только начинаю в ходить в это дело.. пс я прочитал мануалы по php css и html, к тому же у меня был опт работы с С++...
я спросил как сделать логин - вход юзера, БЕЗОПАСНО! а вы предлагаете использовать Уже сделанный кем то велосипед!? из прочтённого я не увидел не одного стоящего совета.. обидно
Полезный совет:
самое безопасное - использовать mod_ssl, и авторизацию пользователей по сертификатам. Все просто...генерируйте себе сертификат( можно получить у поставщиков...за деньги), на основе его генерируете пользователям их личный сертификат, с проверкой паспорта или как нить иначе( желательно записывать на ikey - является сертифицированным и соотвествующим последним требованиям безопасности устройством в Европе (драйверов, по моему, под виндоус 7 64 битный еще нет) )
получаете безопасность по высшему классу при логине. Сертификат не взламывается( практически ), разве что кто то украдет ikey( подсмотрит пин код и узнает пароль от сайта) - тогда сертификат можно заблочить.
Вас такая зашита устроит?? Я думаю нет. Так вот определитесь, какая защита устроит. От чего(кого) защищаться?
зенд - велосипед ...это толсто.
Цитата:
это же ru-mangos.ru здесь все думают только о mangos верно?
неверно
Цитата:
Можно я выложу когда переработаю её? а вот тогда будите кидаться цитатами
с удовольствием посмотрю на результат
зы ответ на ваш вопрос был дан в посте
  Ответить с цитированием
Старый 25.03.2011, 11:30   #26
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Цитата:
Сообщение от ExDragon Посмотреть сообщение
tempura, причём здесь это? я учусь когда сам вижу суть ошибки!
А когда не хотите видеть ошибки, хотя вам в них тыкают - не учитесь. Очень удобный подход.
Цитата:
Сообщение от ExDragon Посмотреть сообщение
О я наверное не правильно задаю вопрос, хотя нет я наверное не там его задал!
Именно там - верный раздел выбран.
Цитата:
Сообщение от ExDragon Посмотреть сообщение
ни стоит напрягать свои супермозг и думать над вопросом смертного!
Человек, который намеренно прибедняется, смешон и выглядит глупо. Вы глупо выглядите. Показать вам темы, где я русским языком прошу помощи и говорю что чего-то не знаю? Или вас беспокоит только ваше личное самолюбие?
Цитата:
Сообщение от ExDragon Посмотреть сообщение
это же ru-mangos.ru здесь все думают только о mangos верно? Можно я выложу когда переработаю её? а вот тогда будите кидаться цитатами...
Это ru-mangos. Здесь помогают любому. Любому, кто ГОТОВ принимать помощь, а не вопить в ответ "вы все м****и, а я дыртанян". Вы пока себя показываете "дыртаняном", вместо того, чтобы начать думать и работать.

Хотите готовый код авторизации из трех-четырех подобных проектов? Не-е-е-ет???? Так вам их и не предлагают.
А вот как улучить ВАШ код - предлагают. Где-то я уже писал еще цитату (теперь уже из меня): "Вы тонете в болоте, вас вытягивают оттуда за волосы. Хотя бы не отбивайтесь!"
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Старый 25.03.2011, 12:36   #27
Ambal
MaNGOS Dev
 
Аватар для Ambal
 
Регистрация: 22.06.2010
Сообщений: 78
Сказал(а) спасибо: 24
Поблагодарили 71 раз(а) в 25 сообщениях
Ambal Скоро придёт к известности
По умолчанию

Прекращайте травить беднягу. Если у человека есть желание - он научиться. Все когда-то были ламерами-желторотиками. Сейчас х**ню пишут даже люди со стажем, которые к тому же берут некислые $$$ за свою работу. Мы полгода немогли людей набрать на позиции С++ разработчиков - сплошной неликвид =/
Ambal вне форума   Ответить с цитированием
5 пользователя(ей) сказали cпасибо:
Fedia22 (18.07.2011), Gerald (25.03.2011), KiriX (26.03.2011), Mayss (26.03.2011), PSZ (26.03.2011)
Старый 25.03.2011, 14:18   #28
Кот ДаWINчи
Умный
 
Аватар для Кот ДаWINчи
 
Регистрация: 07.03.2010
Адрес: Северный Урал (60°сш, 60°вд)
Сообщений: 330
Сказал(а) спасибо: 82
Поблагодарили 399 раз(а) в 120 сообщениях
Записей в дневнике: 30
Кот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человекКот ДаWINчи Реально хороший человек
Отправить сообщение для Кот ДаWINчи с помощью ICQ Отправить сообщение для Кот ДаWINчи с помощью Skype™
По умолчанию

Цитата:
Сообщение от ExDragon Посмотреть сообщение
Кот ДаWINчи, ACP ваше творение? а знаю видел тоже так сделал, а вы не заметили
Знаешь, сделал ты совсем не так. Ткни меня в то место, где это сделано ТАК.

Поясняю:
Вот файл index.php

Код:
<html>
<head>
</head>
<body>
<?php
session_start();
if (isset($_SESSION[ 'ip' ])){
	if ($_SESSION[ 'ip' ] == $_SERVER[ 'REMOTE_ADDR' ]){
		require 'config.php';
		header("Location: http://".$_SERVER[ 'HTTP_HOST' ]."/".$lk_dir."/sc.php");
	} else {
		require 'func.php';
		in();
	}
} else {
	require 'func.php';
	in();
}
?>
</body>
</html>
Про первые 4 строки я говорить не буду. Я уже объяснял что они дают ошибку в 6 строке.
7 - 10 строки по-русски будут означать так если есть параметр $_SESSION['ip'] такой же как ИП клиента, то запустить ссылку на скрипт sc.php ...... отсюда вопрос, а что злоумышленник не может вбить название этого файла в браузере самостоятельно? если может, то зачем все эти проверки!!!!!

а если глянуть на сам sc.php, то вообще отпадает необходимость в index.php, ибо там один в один тот же код что и здесь в index.php, разбавленный нужными функциями.

И еще созрел вопрос, все скрипты просто изобилуют строками-переходами типа:

Код:
header("Location: http://".$_SERVER['HTTP_HOST']."/".$lk_dir);
А что по другому никак нельзя связать скрипты?


А вот еще вариант:



здесь у меня делаются все проверки, потом загружается шкурка. Сами же модули подгружаются из шкурки ввиде:
Код:
<?php require "mainform.php";?>
А чтобы злоумышленник не мог самостоятельно выполнить модули, в них первыми строками идет проверка доступности сессии хотя сама сессия там не запускается по session_start()

Последний раз редактировалось Кот ДаWINчи; 25.03.2011 в 14:42.
Кот ДаWINчи вне форума   Ответить с цитированием
Старый 25.03.2011, 15:46   #29
ExDragon
Пользователь
 
Регистрация: 02.02.2011
Сообщений: 58
Сказал(а) спасибо: 17
Поблагодарили 0 раз(а) в 0 сообщениях
ExDragon На верном пути
По умолчанию

Кот ДаWINчи, ну вот на конец то! да я знаю я повторял код в разных файлах.. эм у меня сейчас стоит задача сделать модульность.. вот юзер зашёл на index.php и тут подгружаем проверку на вошёл ли юзер, нет не вошёл, видите логин и пароль.. ДА это просто я могу так сделать но что делать когда данные введены! получается ситуация - создаётся форма и кнопка отправки.. ну отправляем в этот же index POST логин и пароль, но не работает.. Что же делать? и основываясь на этой ошибки у меня получилось то что есть.. это не модульно! ещё такая ситуация, у меня есть несколько модулей.. Как совершить уничтожение старого и добавление нового?

Кот ДаWINчи, а с чего вы вяли что первые 4 строки дают ошибку А вот ещё, а когда именно эти 4 строки создать? если предположить что будет только одна "шкура" или не одна?

Последний раз редактировалось NeatElves; 25.03.2011 в 17:23.
ExDragon вне форума   Ответить с цитированием
Старый 25.03.2011, 16:37   #30
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от ExDragon Посмотреть сообщение
Кот ДаWINчи, а с чего вы вяли что первые 4 строки дают ошибку А вот ещё, а когда именно эти 4 строки создать? если предположить что будет только одна "шкура" или не одна?
Код:
error_reporting(-1)
и увидишь все свои ошибки
вывод хтмл тегов должен быть в шаблоне.
include {cur_shablon_dir}/index.tpl

спроектируй систему каталогов твоего веб приложения...где что лежать должно, как удобнее и т.п. Тогда будет проще писать, сделать autoload для классов и т.п. и т.д.
пример чисто от фанаря, что бы было понятно:
структура каталогов
  Ответить с цитированием
Старый 25.03.2011, 17:49   #31
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

ExDragon,
Цитата:
самое главное безопасность
Спешу вас огорчить ваш скрипт полностью небезопасен. У вас можно зайти под любым логином не зная пароль. просто пишите в поле Аккунт:
admin"/*
а в поле пароль
*/"

UPD: косяк мой небольшой. в пароль пишем что угодно, в логин admin"-- или admin"/* или там есть еще пару вариантов)

Последний раз редактировалось alien; 26.03.2011 в 00:41.
alien вне форума   Ответить с цитированием
Старый 26.03.2011, 04:37   #32
ExDragon
Пользователь
 
Регистрация: 02.02.2011
Сообщений: 58
Сказал(а) спасибо: 17
Поблагодарили 0 раз(а) в 0 сообщениях
ExDragon На верном пути
По умолчанию

alien, и как же это исправить?
Minimajack, в index тогда сделать погрузку всего, и шаблона.. а как шаблон сделать? ну если просто загрузить шаблон то всё содержимое будет после </html>

а как на счёт кодировки? какую взять?

Последний раз редактировалось NeatElves; 26.03.2011 в 10:29.
ExDragon вне форума   Ответить с цитированием
Старый 26.03.2011, 08:33   #33
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от ExDragon Посмотреть сообщение
alien, и как же это исправить?
Minimajack, в index тогда сделать погрузку всего, и шаблона.. а как шаблон сделать? ну если просто загрузить шаблон то всё содержимое будет после </html>
если использовать ООП - почитай про bootstrap файлы
и почитай про шаблонизаторы ...посмотри как устроены, можно особо не заморачиватся, главное понять суть
Цитата:
Сообщение от ExDragon Посмотреть сообщение
а как на счёт кодировки? какую взять?
я по возможности использую utf8
  Ответить с цитированием
Старый 26.03.2011, 09:23   #34
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

Цитата:
alien, и как же это исправить?
Фильтровать параметры.
mysql_escape_string
alien вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
ExDragon (26.03.2011)
Старый 26.03.2011, 11:25   #35
ExDragon
Пользователь
 
Регистрация: 02.02.2011
Сообщений: 58
Сказал(а) спасибо: 17
Поблагодарили 0 раз(а) в 0 сообщениях
ExDragon На верном пути
По умолчанию

ага парсинг, не это слишком гуманна
а вот про utf-8 поподробней можно.. я поставил её, но в браузере отображаются Новости, да и кстати с windows-1251 тоже самое! хм независимо кодировка в браузере не меняется windows-1251 по умолчанию, как же исправить?
Код:
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $en_code; ?>">
$en_code = "utf-8"
ExDragon вне форума   Ответить с цитированием
Старый 26.03.2011, 12:17   #36
tempura
Forum bot
 
Аватар для tempura
 
Регистрация: 01.02.2010
Адрес: пусто
Сообщений: 841
Сказал(а) спасибо: 286
Поблагодарили 418 раз(а) в 190 сообщениях
Записей в дневнике: 60
tempura отключил(а) отображение уровня репутации
По умолчанию

Цитата:
Сообщение от ExDragon Посмотреть сообщение
а вот про utf-8 поподробней можно.. я поставил её, но в браузере отображаются Новости, да и кстати с windows-1251 тоже самое! хм независимо кодировка в браузере не меняется windows-1251 по умолчанию, как же исправить?
Код:
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $en_code; ?>">
$en_code = "utf-8"
http://ru-mangos.ru/showthread.php?t=274
__________________
Совершенно безопасен для людей, обладающих хотя бы некоторыми минимальными зачатками интеллекта, и способными строить причинно-следственные цепочки.
tempura вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
ExDragon (26.03.2011)
Старый 26.03.2011, 12:55   #37
ExDragon
Пользователь
 
Регистрация: 02.02.2011
Сообщений: 58
Сказал(а) спасибо: 17
Поблагодарили 0 раз(а) в 0 сообщениях
ExDragon На верном пути
По умолчанию

я сделал .htaccess и теперь всё норм.. но только заголовок по чему то остался в "чёрный ромбик с вопросом" О_0
можно ли так использовать?..
Код:
class System
{
	function ConnectAcc()
	{
		$cont = mysql_connect($db_ip, $db_user, $db_pw);
		mysql_select_db($r_db, $cont);
		mysql_query("SET NAMES 'utf8'");
	}

	function Login($login, $pass)
	{
        $this->ConnectAcc()
        $s1_pass = SHA1(strtoupper($login).':'.strtoupper($pass));
        $s1_login = mysql_escape_string($login);
        $s2_pass = mysql_escape_string($s1_pass);
        $query = mysql_query('SELECT `id`, `username`, `sha_pass_hash` FROM `account` WHERE `username` = "'.$s1_login.'" AND `sha_pass_hash` = "'.$s2_pass.'"');
        if ($row = mysql_fetch_assoc($query)){'
       		session_start();
			$_SESSION['user_id'] = $row['id'];
			$_SESSION['username'] = $row['username'];
        }
	}
}
можно сделать так?
Код:
$query = mysql_query("SELECT `id`, `username`, `sha_pass_hash` FROM `account` WHERE `username` = '$s1_login' AND `sha_pass_hash` = '$s2_pass'");

Последний раз редактировалось ExDragon; 26.03.2011 в 16:50.
ExDragon вне форума   Ответить с цитированием
Старый 26.03.2011, 16:00   #38
alien
Ученый
 
Регистрация: 17.05.2010
Сообщений: 148
Сказал(а) спасибо: 18
Поблагодарили 25 раз(а) в 22 сообщениях
alien На верном пути
По умолчанию

В данном случае нету смыла пароль обрабатывать mysql_escape_string так-как он не идет напрямую в запрос а в запрос идет SHA1 хеш.
alien вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
ExDragon (26.03.2011)
Старый 26.03.2011, 16:42   #39
ExDragon
Пользователь
 
Регистрация: 02.02.2011
Сообщений: 58
Сказал(а) спасибо: 17
Поблагодарили 0 раз(а) в 0 сообщениях
ExDragon На верном пути
По умолчанию

спасибо..
жду ответа на..
можно ли использовать
Код:
$this->ConnectAcc()
и можно ли писать
Код:
`username` = '$s1_login'
пост 37

Последний раз редактировалось ExDragon; 26.03.2011 в 16:46.
ExDragon вне форума   Ответить с цитированием
Старый 26.03.2011, 22:54   #40
Minimajack
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
Сообщение от ExDragon Посмотреть сообщение
можно ли использовать
Код:
$this->ConnectAcc()
можно, но в любом случае логику работы с БД(драйвер, подключение, установка кодировки) лучше вынести в другой класс и передавать в конструкторе( как вариант )
Цитата:
Сообщение от ExDragon Посмотреть сообщение
и можно ли писать
Код:
`username` = '$s1_login'
можно
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
премейд чаров Fedia22 Корзина 3 08.10.2010 15:29
Конвертер базы чаров trinity->mangos Blocker Корзина 1 09.03.2010 17:45


Текущее время: 05:02. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot