Ru-MaNGOS

Ru-MaNGOS (http://ru-mangos.ru/index.php)
-   WWW (http://ru-mangos.ru/forumdisplay.php?f=23)
-   -   Аукцион чаров! (http://ru-mangos.ru/showthread.php?t=3960)

ExDragon 23.03.2011 08:35

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

Последняя стабильная версия 0.29
Git
Код:

git://github.com/ExDragon/ExAuction.git

Праведник 23.03.2011 12:36

Во-первых, что-то мне подсказывает, что заливать 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() шутку оценил)...

KiriX 23.03.2011 12:46

Праведник, зря ты так...
Некоторые вообще всё наготово просят. А тут человек как умел, так и написал. Ничего страшного. Для этого и есть форумы. Поделился, тебе указали на ошибки, исправился.
Что-то сделал сам (что работает) - уже отлично!

Праведник 23.03.2011 12:55

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

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

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

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

KiriX 23.03.2011 13:16

Ну в принципе, думаю, если у человека мозг на месте и выполняет свои функции - во втором и 4 посте ты весьма помог ;)

Кот ДаWINчи 23.03.2011 16:13

Я тоже скачал.
Стал смотреть код и заплакал... :read: -> :eek: -> =((( -> :bad:
к примеру, auct.php начинается с
PHP код:

<html>
<head>
</head>
<body>
<?php
require 'func.php';
session_start();

Откройте документацию по пхп и прочитайте(переведите) про работу с сессиями. первые четыре строчки данного файла на все 9999999% из ста дадут ошибку в 7-ой строке "Cannot send session cache limiter - headers already sent". И такое положение вещей практически во всех .php

ExDragon 24.03.2011 07:23

Ох знал, зря! спасибо помогли, можно удалить тему сам справлюсь!
Как таковой он свою задачу выполняет! блин ну я же написал я переделаю я вообще не написал что хочу! почему всегда на начинающих так бросаются?

BloodWarrior 24.03.2011 08:19

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

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

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

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

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

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


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

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


Так шо прими советы с благодарностью и просто модернезируй свое творение и не бойся спрашивать.
На этом проекте люди учатся, и никто тут никогда не против поделиться знаниями!

tempura 24.03.2011 13:41

Цитата:

Сообщение от ExDragon (Сообщение 20269)
Ох знал, зря! спасибо помогли, можно удалить тему сам справлюсь!

Правила, А-6
Цитата:

Сообщение от ExDragon (Сообщение 20269)
Как таковой он свою задачу выполняет!

Микроскоп тоже может выполнять задачу забивания гвоздей. Причем - не только подставкой, но можно и линзами долбить.
Цитата:

Сообщение от ExDragon (Сообщение 20269)
блин ну я же написал я переделаю я вообще не написал что хочу!

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

Цитата:

Сообщение от ExDragon (Сообщение 20269)
почему всегда на начинающих так бросаются?

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

Или ты хотел, чтобы тебя начали хвалить за кривой дырявый код? Без проблем, я сейчас всех построю - начнут хвалить. Ты только адрес оставь - где и как именно его взломать, чтобы тебе похвалы еще приятнее были.

ExDragon 24.03.2011 15:55

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

session_start();
if (isset($_SESSION['ip'])){
        if ($_SESSION['ip'] == $_SERVER['REMOTE_ADDR'])

ДА ЭТО ГЛУПО! но как тогда сделать?

24.03.2011 16:20

Цитата:

Сообщение от ExDragon (Сообщение 20279)
у меня сейчас очень мало свободного времени и я крайне редко сажусь за код!
всё внимание вопрос!
как идея того чтобы сделать модульную подгрузку страницы с последующий заполнения её информации относительно пользователя.. это всё происходит в одной среде index.php, а вот самое главное безопасность как сделать проверку на то "зашёл ли пользователь в систему"? сессию? я сделал
Код:

session_start();
if (isset($_SESSION['ip'])){
        if ($_SESSION['ip'] == $_SERVER['REMOTE_ADDR'])

ДА ЭТО ГЛУПО! но как тогда сделать?

бросай весь код, тогда уж....по огрызкам никак не помочь =)))
http://filebeam.com/ - нормальный файл обменник

ExDragon 24.03.2011 16:35

хм я хочу всё переделать с нуля! начну с безопасности..
DOWNLOAD NOW!

tempura 24.03.2011 16:51

Цитата:

модульную подгрузку страницы с последующий заполнения её информации относительно пользователя
это аяксом что ли? о_О

24.03.2011 17:11

Цитата:

Сообщение от ExDragon (Сообщение 20281)
хм я хочу всё переделать с нуля! начну с безопасности..
DOWNLOAD NOW!

тогда начни с использования стабильного фреймверка
сессии: zend.session.html

Добавлено через 9 минут
Цитата:

Сообщение от tempura (Сообщение 20282)
это аяксом что ли? о_О

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

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">';
в общем переделывать все

Праведник 24.03.2011 20:07

Minimajack, рекомендовать Зенд человеку, который ничего не понимает в ООП, MVC, да и, чёрт побери, в программировании - не менее кащунственно, чем то, что тс называет аукционом персонажей.

24.03.2011 20:14

Цитата:

Сообщение от Праведник (Сообщение 20287)
Minimajack, рекомендовать Зенд человеку, который ничего не понимает в ООП, MVC, да и, чёрт побери, в программировании - не менее кащунственно, чем то, что тс называет аукционом персонажей.

пускай учится с нормальным инструментом работать :pardon:
тем более, работать с фреймверком намного легче, чем придумывать свой велосипед. Примеры есть, если бы мне, в свое время, сказали об удобных фреймверках, я был бы только счастлив.
Я ж не со зла :sorry:

Праведник 24.03.2011 20:23

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

но это мы уже отдалились от темы. Зенд ТС-у не нужен. Факт.
ему бы научиться, для начала, с отвёрткой работать... прежде, чем брать в руки шуруповёрт с набором бит.

24.03.2011 23:45

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

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

Кот ДаWINчи 25.03.2011 06:02

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

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

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

И храни чистые исходники в репозитории.

tempura 25.03.2011 07:16

Есть у меня смутное подозрение, что автор будет поражен в самое пятку фактом существования людей, умнее него. :)

ExDragon 25.03.2011 07:58

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

isset($_SESSION['login'])
на пример, когда юзер пройдёт авторизацию откроется сессия и сохранит данные...

tempura 25.03.2011 09:39

Цитата:

Сообщение от ExDragon (Сообщение 20295)
Очень интересно откуда вы знаете, что я не знаю или что знаю?

По твоей работе, по твоим словам. По всему, что ты о себе уже успел предъявить. :)
Цитата:

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

isset($_SESSION['login'])
на пример, когда юзер пройдёт авторизацию откроется сессия и сохранит данные...

Дурак - это не тот кто ничего не знает. Дурак - это тот, кто не хочет учиться. :) Умный - учится на своих ошибках, мудрый - на чужих. :)
Как тебе это стандартный комплект банальностей, которым уже более тысячи лет? Осознается, или мимо пролетает?

Если бы ты посмотрел хотя бы пять-шесть подобных проектов, ты мог бы узнать как много можно написать иначе - проще и удобнее. Ну а раз ты отказываешься учиться на чужих ошибках, на чужом опыте - так это твои проблемы. :) Хотя ты тут и на собственном опыте не очень-то и учишься... :) :) :)

Кот ДаWINчи 25.03.2011 09:54

Цитата:

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

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

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

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

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

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

если нет - показываем модуль для незарегеных.

ExDragon 25.03.2011 10:10

Кот ДаWINчи, ACP ваше творение? а знаю видел тоже так сделал, а вы не заметили =)
tempura, причём здесь это? я учусь когда сам вижу суть ошибки!
О я наверное не правильно задаю вопрос, хотя нет я наверное не там его задал!
ни стоит напрягать свои супермозг и думать над вопросом смертного!
это же ru-mangos.ru здесь все думают только о mangos верно? Можно я выложу когда переработаю её? а вот тогда будите кидаться цитатами...

25.03.2011 11:23

Цитата:

Сообщение от ExDragon (Сообщение 20295)
Очень интересно откуда вы знаете, что я не знаю или что знаю?

посмотрел ваш код.
Цитата:

Сообщение от ExDragon (Сообщение 20295)
да у меня нет опта в создании хороших, безопасных сайтов! я только начинаю в ходить в это дело.. пс я прочитал мануалы по php css и html, к тому же у меня был опт работы с С++...
я спросил как сделать логин - вход юзера, БЕЗОПАСНО! а вы предлагаете использовать Уже сделанный кем то велосипед!? из прочтённого я не увидел не одного стоящего совета.. обидно =)

Полезный совет:
самое безопасное - использовать mod_ssl, и авторизацию пользователей по сертификатам. Все просто...генерируйте себе сертификат( можно получить у поставщиков...за деньги), на основе его генерируете пользователям их личный сертификат, с проверкой паспорта или как нить иначе( желательно записывать на ikey - является сертифицированным и соотвествующим последним требованиям безопасности устройством в Европе (драйверов, по моему, под виндоус 7 64 битный еще нет) )
получаете безопасность по высшему классу при логине. Сертификат не взламывается( практически ), разве что кто то украдет ikey( подсмотрит пин код и узнает пароль от сайта) - тогда сертификат можно заблочить.
Вас такая зашита устроит?? Я думаю нет. Так вот определитесь, какая защита устроит. От чего(кого) защищаться?
зенд - велосипед ...это толсто.
Цитата:

это же ru-mangos.ru здесь все думают только о mangos верно?
неверно
Цитата:

Можно я выложу когда переработаю её? а вот тогда будите кидаться цитатами
с удовольствием посмотрю на результат
зы ответ на ваш вопрос был дан в посте

tempura 25.03.2011 11:30

Цитата:

Сообщение от ExDragon (Сообщение 20299)
tempura, причём здесь это? я учусь когда сам вижу суть ошибки!

А когда не хотите видеть ошибки, хотя вам в них тыкают - не учитесь. Очень удобный подход. :) :) :)
Цитата:

Сообщение от ExDragon (Сообщение 20299)
О я наверное не правильно задаю вопрос, хотя нет я наверное не там его задал!

Именно там - верный раздел выбран.
Цитата:

Сообщение от ExDragon (Сообщение 20299)
ни стоит напрягать свои супермозг и думать над вопросом смертного!

Человек, который намеренно прибедняется, смешон и выглядит глупо. Вы глупо выглядите. :) Показать вам темы, где я русским языком прошу помощи и говорю что чего-то не знаю? Или вас беспокоит только ваше личное самолюбие? :) :)
Цитата:

Сообщение от ExDragon (Сообщение 20299)
это же ru-mangos.ru здесь все думают только о mangos верно? Можно я выложу когда переработаю её? а вот тогда будите кидаться цитатами...

Это ru-mangos. Здесь помогают любому. Любому, кто ГОТОВ принимать помощь, а не вопить в ответ "вы все м****и, а я дыртанян". Вы пока себя показываете "дыртаняном", вместо того, чтобы начать думать и работать. :) :)

Хотите готовый код авторизации из трех-четырех подобных проектов? Не-е-е-ет???? Так вам их и не предлагают.
А вот как улучить ВАШ код - предлагают. :) Где-то я уже писал еще цитату (теперь уже из меня): "Вы тонете в болоте, вас вытягивают оттуда за волосы. Хотя бы не отбивайтесь!" :)

Ambal 25.03.2011 12:36

Прекращайте травить беднягу. Если у человека есть желание - он научиться. Все когда-то были ламерами-желторотиками. Сейчас х**ню пишут даже люди со стажем, которые к тому же берут некислые $$$ за свою работу. Мы полгода немогли людей набрать на позиции С++ разработчиков - сплошной неликвид =/

Кот ДаWINчи 25.03.2011 14:18

Цитата:

Сообщение от ExDragon (Сообщение 20299)
Кот Да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()

ExDragon 25.03.2011 15:46

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

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

25.03.2011 16:37

Цитата:

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

Код:

error_reporting(-1)
и увидишь все свои ошибки
вывод хтмл тегов должен быть в шаблоне.
include {cur_shablon_dir}/index.tpl

спроектируй систему каталогов твоего веб приложения...где что лежать должно, как удобнее и т.п. Тогда будет проще писать, сделать autoload для классов и т.п. и т.д.
пример чисто от фанаря, что бы было понятно:
структура каталогов

alien 25.03.2011 17:49

ExDragon,
Цитата:

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

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

ExDragon 26.03.2011 04:37

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

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

26.03.2011 08:33

Цитата:

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

если использовать ООП - почитай про bootstrap файлы
и почитай про шаблонизаторы ...посмотри как устроены, можно особо не заморачиватся, главное понять суть
Цитата:

Сообщение от ExDragon (Сообщение 20330)
а как на счёт кодировки? какую взять?

я по возможности использую utf8

alien 26.03.2011 09:23

Цитата:

alien, и как же это исправить?
Фильтровать параметры.
mysql_escape_string

ExDragon 26.03.2011 11:25

ага парсинг, не это слишком гуманна =)
а вот про utf-8 поподробней можно.. я поставил её, но в браузере отображаются Новости, да и кстати с windows-1251 тоже самое! хм независимо кодировка в браузере не меняется windows-1251 по умолчанию, как же исправить?
Код:

<meta http-equiv="Content-Type" content="text/html; charset=<?php echo $en_code; ?>">
$en_code = "utf-8"

tempura 26.03.2011 12:17

Цитата:

Сообщение от ExDragon (Сообщение 20358)
а вот про 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

ExDragon 26.03.2011 12:55

я сделал .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'");

alien 26.03.2011 16:00

В данном случае нету смыла пароль обрабатывать mysql_escape_string так-как он не идет напрямую в запрос а в запрос идет SHA1 хеш.

ExDragon 26.03.2011 16:42

=) спасибо..
жду ответа на..
можно ли использовать
Код:

$this->ConnectAcc()
и можно ли писать
Код:

`username` = '$s1_login'
пост 37

26.03.2011 22:54

Цитата:

Сообщение от ExDragon (Сообщение 20379)
можно ли использовать
Код:

$this->ConnectAcc()

можно, но в любом случае логику работы с БД(драйвер, подключение, установка кодировки) лучше вынести в другой класс и передавать в конструкторе( как вариант )
Цитата:

Сообщение от ExDragon (Сообщение 20379)
и можно ли писать
Код:

`username` = '$s1_login'

можно


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

ru-mangos.ru - Русское сообщество MaNGOS