Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Класс db_con 
V
    Опции темы
Muerto
Дата 20.8.2010, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Не актуальная информация

Это сообщение отредактировал(а) Muerto - 6.9.2010, 00:25


--------------------
user posted image
PM MAIL   Вверх
SoWa
Дата 20.8.2010, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Харекришна
****


Профиль
Группа: Комодератор
Сообщений: 2422
Регистрация: 18.10.2004

Репутация: 6
Всего: 74



Цитата(Muerto @  20.8.2010,  16:35 Найти цитируемый пост)
init()дает классу параметры как пароль к базе, название базы и тп.

Я бы это вписал в __construct

Цитата(Muerto @  20.8.2010,  16:35 Найти цитируемый пост)

include('./classes/db_con.php');
$myconn=new db_con();
echo $myconn->db_stats();
$query= $myconn->do_query("insert into test (message) values('|~|вася ыыы ' ' ' ' ' |~|')");
$myconn->close_conn();
echo $myconn->db_stats();

Мне не очевидно совсем... Если у тебя есть метод init & open_conn, то где они вызываются в примере?

Цитата(Muerto @  20.8.2010,  16:35 Найти цитируемый пост)
minus_conn()-- к сетчику подключенийadd_query()++ к счетчику запросов

Если это нужно для статистики - то оставь. А если фишка без значимого применения - то зачем?

Это сообщение отредактировал(а) SoWa - 20.8.2010, 16:44


--------------------
Всем добра smile
PM MAIL ICQ   Вверх
Muerto
Дата 20.8.2010, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Если у тебя есть метод init & open_conn, то где они вызываются в примере?

Что бы не писать когда я использую этот класс лишний код, do_query($thequery) делает init() и open_conn() если не открыто подключения

А фишка для подсчета подключений и запросов, это больше для проверки эффективности кода чтоли... в целях оптимизации скрипта

Это сообщение отредактировал(а) Muerto - 20.8.2010, 16:58


--------------------
user posted image
PM MAIL   Вверх
Muerto
Дата 20.8.2010, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Решил попытаться создать функции которые будут работать с mysqli->prepare

Пока что очень много сложностей...
есть функция
Код

 function prepare_query($thequery)


которая возвращает мне
Код

 mysqli->prepare($thequery);

к примеру
$query= $myconn->prepare_query("select * from test where id = ?");

Далее нужно делать

$query->bind_param('i', $id);
и $query->execute();


В чем проблема:

Во первым, по вашему дальше стоит сделать две функции или одну?

в любом случае, как мне построить функцию которая будет выполнять 
Код


$query->bind_param('i', $id);


и ещё одну или в той же которая будет делать 
Код

$query->execute();


главная проблема в том что  сейчас bind_param('i', $id); содержит только $id, но если строить глобальную функци, она должна получать любое количество значения...
т.е.  создаем функцию 

Код

prepare_binding($types (string), $values (array));



Но как же мне массив с $values впихнуть  в bind_param('i', $id);

там ведь между каждым символом нужна запятая... explode ',' что ли... в общем хэлп!


--------------------
user posted image
PM MAIL   Вверх
Muerto
Дата 20.8.2010, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Или более простым языком,

работает
Код

 prepare_params('s','hi',$query);


Но глобально написать я не знаю как, 
за место 's' может быть 'sdsssssss' и за место 'hi' может быть массив с данными...

Как же выполнить 
Код

bind_param($types, $values);
 ?

Это сообщение отредактировал(а) Muerto - 20.8.2010, 23:37


--------------------
user posted image
PM MAIL   Вверх
Muerto
Дата 21.8.2010, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Вот в общем, может кому пригодиться...
Код

    function prepare_query($thequery){
       if(!isset($this->conn_id))
       {
        $this->init();
        $this->open_conn();
       }
        return $this->conn_id->prepare($thequery);
    }
        function prepare_params($types,$values,$thequery){
            $thequery->bind_param($types, $values);
            return $thequery;
    }
    function prepare_execute($thequery){
            $thequery->execute();
             $meta = $thequery->result_metadata();
                while ($field = $meta->fetch_field()) {
    $var = $field->name;
    $$var = null;
    $parameters[$var] = &$$var;
}
            call_user_func_array(array($thequery, 'bind_result'), $parameters);

            while($thequery->fetch()) {
                print_r($parameters);

            }
    }


самая главная проблема теперь за место 
Код

   while($thequery->fetch()) {
                print_r($parameters);

            }


вернуть $thequery, и делать простой fetch_assoc к примеру


--------------------
user posted image
PM MAIL   Вверх
gta4kv
Дата 22.8.2010, 19:28 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Бред такой бред.
Вы спрашиваете какую бы функцию добавить в класс, который будет использоваться в вашем коде, для ваших, никому не известных, задач.
Где хоть какой то смысл?

Это сообщение отредактировал(а) gta4kv - 22.8.2010, 19:29
PM MAIL   Вверх
Sanchezzz
Дата 24.8.2010, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



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

имхо легче написать обертку на каждый класс по классу и в зависимости от настроек юзать его. хотя обычного mysql и mysqli достаточно. Даже если на хотинге нет этого mysqli это плохой хостинг и уже не твоя проблема что его нет. Уже давным давно забил на тех укого нет mysqli.



--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
Photon
Дата 26.8.2010, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Злобный программер
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 27.2.2009
Где: Таганрог

Репутация: 10
Всего: 12



А не проще bind_param и execute выполнять в одной функции?

DB.php


--------------------
With best regards..
PM MAIL ICQ Skype GTalk Jabber   Вверх
Muerto
Дата 5.9.2010, 23:05 (ссылка)    | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Доделал наконец то класс, вывожу результат вывода статического метода help

Functions list of db_con class
static function getInstance();
Create Singleton of the class
private function __construct();
Set's cache directory(place), and the cache extensions for file and variables cache
private function __clone();
Prevent object cloning
public function init_conn($db_uname,$db_pass,$db_name,$db_host='localhost',$db_cs='utf8',$special_escape ='x@x');
Initiates the connection variables
public function open_conn();
Open the connection
public function close_conn();
Kills and then closes the connection
public function get_sp_esc();
Get the CS from the class
public function set_sp_esc($value);
Sets the SC to the class
public function escape($thequery);
Escapes before do the query, using the special escape symbol you decide to use
public function do_query($thequery,$escape=0);
Do specified query, if escape is 1, it will use the escape function to do mysqli_real_escape
public function reset_bind();
Reset the types and params containers
public function var_bind(&$type,&$param);
Prepare the types and parameters, accepting varsiables one by one, adding them to array for func bind_params
public function ar_bind(&$type,&$param);
Prepare the types and parameters, accepting array
public function do_prepare($thequery);
Prepare the statement using ->prepare();
public function bind_params();
Bind the parameters with the function bind_param, before you use it, use ar_bin or var_bind functions, and of course after do_prepare
public function execute();
Executes the prepared statement with the binded parameters if there is...
public static function fetch_it($theresult,$type);
Fetch the result of a query, $type can be 'assoc', 'object', 'row', 'array' .
public function fetch_result($theresult);
Fetch the result with assoc method, for development purposes!
Usage Examples:
1. DEFINE('SC','x@x');
$db=db_con::getInstance();
$db->init_conn('root','lqsym','db1','localhost','utf8',SC);
$data=$db->do_query("INSERT INTO test (message) VALUES('".SC."".str_shuffle("abcdefghijklmnopqrstuvwxyz0123456789")."".SC."')",1);
$db->close_conn();
echo $db->reqs_num;
2.$db=db_con::getInstance();
$db->init_conn('root','lqsym','db1');
$db->do_prepare("INSERT INTO test (message,message2,message3,message4) VALUES(?,?,?,?)");
$db->reset_bind();
$types=array('s','s','s');
$vars=array('message1','message2','message3');
$db->ar_bind($types,$vars);
$onemore_t='s';
$onemore_v='cool';
$db->var_bind($onemore_t,$onemore_v);
$db->bind_params();
$db->execute();
$db->close_conn();

Это сообщение отредактировал(а) Muerto - 6.9.2010, 00:32


--------------------
user posted image
PM MAIL   Вверх
gta4kv
Дата 5.9.2010, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



а ООП в коде так и не пахнет
PM MAIL   Вверх
Muerto
Дата 6.9.2010, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



gta4kv, Наверно нет.
Но что вам там пахнет а что нет, мне говорит очень мало  smile 
Можно даже ткнуть на что то отсюда http://www.phpclasses.org/browse/class/10.html

А вот полноценная система для студентов которая на моем классе работает http://learn-php.ru/m_shaot/?shared=1 
+ класc Benchmark результат которого можно увидеть в самом низу...


Это сообщение отредактировал(а) Muerto - 6.9.2010, 00:15


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



И нафига это все?
PM WWW Skype   Вверх
Muerto
Дата 6.9.2010, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



SneG0K, Эти функции нужны для того что бы поднимать сайты за 5 секунд и не работать каждый раз с нуля
в конце ээто будет MVC фреймворк на котором я мои проекты лепить буду

Это сообщение отредактировал(а) Muerto - 6.9.2010, 00:33


--------------------
user posted image
PM MAIL   Вверх
Sanchezzz
  Дата 6.9.2010, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 41
Всего: 60



ну чисто для себя не плохо.


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
enoff
Дата 6.9.2010, 07:46 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 11
Всего: 13



Muerto, и как будет выглядеть экономия времени аж до "за 5 секунд" на примере этого класса?
Цитата(Muerto @  6.9.2010,  01:25 Найти цитируемый пост)
лепить

ключевое слово, надо понимать...

PM MAIL ICQ Skype GTalk   Вверх
SneG0K
Дата 6.9.2010, 09:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Muerto, Иуууу, Энджи! А зайти на PEAR или стянуть класс работы с бд допустим из Zend Framework, не?
enoff,  smile 

В разделе "Книги" попросил книгу, уже две недели никто не отвечает.  smile 
PM WWW Skype   Вверх
Muerto
Дата 6.9.2010, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



enoff, Понимайте , я встречал таких которые говорят, это да ООП , это не ООП.
А что же есть ООП?

Как правило когда мы говорим об ООП мы хотим, и это только мое ИМХО и насколько я понимаю то что делаю:
1. Мы хотим построить то чем сможем пользоваться много раз, и оно сэкономит нам время
2. хотим построить то что можно будет расширять и изменять... (например если я захочу вдруг работать с mysql а не mysqli , мне код менять не нужно целиком на ВСЕХ моих страницах, а только в моем классе!!! или же если мне вдруг ОО стиль mysqli не по душе более(а именно его использует мой класс)...
Но здесь конечно кто то может сказать что и тупой набор функций сможет сделать эту работу... возможно и так!
3. Инкапсюляция - однозначно есть!

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

$db=cload('db_con);

И он его уже и заинклюдит и singleton вернет (может кто помнит прикол с PAAMAYIM NEKUDOTAYIM...)

5. Наследия у меня нету в данном классе, хотя теоретически можно было бы singleton вывести из классов...
и полиморфизма здесь нету

Добавлено @ 09:52
SneG0K, Стянуть всегда все можно, а нужно ли?

Это сообщение отредактировал(а) Muerto - 6.9.2010, 10:09


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Велосипед из Zend'a с мягким сидением и спинкой, у вашего же велосипеда нет сидения (торчит труба).
Вопрос: на каком велосипеде ездить приятней? Ну, если вы девушка или не той ориентации, то тогда вопрос отпадает.

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

Добавлено через 42 секунды
Цитата(Muerto @  6.9.2010,  08:48 Найти цитируемый пост)
процедурный стиль mysqli не по душе

 smile  smile Мега!

Добавлено через 3 минуты и 45 секунд
Код

$db=cload('db_con);

Это вернет только ошибку.

Добавлено через 3 минуты и 57 секунд
Ох, какой я придирчивый.
PM WWW Skype   Вверх
Muerto
Дата 6.9.2010, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



SneG0K, Имелось ввиду объекто-орентированый стиль работы с mysqli , это очепятка


А это вернет ошибку только у вас!
Код

$db=cload('db_con);

Потому что вы не разработали функцию cload  smile 


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(Muerto @  6.9.2010,  09:08 Найти цитируемый пост)
Потому что вы не разработали функцию cload

Да нет. У вас это тоже не будет работать. Закрываться кавычки тоже надо
PM WWW Skype   Вверх
Muerto
Дата 6.9.2010, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



SneG0K, Наслаждайтесь http://learn-php.ru/m_shaot/ так же снизу можете увидеть насколько быстро мой мини фреймворк пашет

А патом ваш ZEND запустите, и дайте знать как быстро сгенерируется аналог того что я вам выдал, да нет, вы просто hello world сделайте

Это сообщение отредактировал(а) Muerto - 6.9.2010, 10:18


--------------------
user posted image
PM MAIL   Вверх
enoff
Дата 6.9.2010, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 11
Всего: 13



mysqli как раз предоставляет объектно-ориентированный интерфейс.
Цитата(Muerto @  6.9.2010,  10:48 Найти цитируемый пост)
это мой оригинальный autoloader

в каждом вашем сообщении можно наблюдать полную уверенность в своей оригинальности и неповторимости smile 


Гради Буч.
Объектно-ориентированный анализ и проектирование.
http://www.helloworld.ru/texts/comp/other/oop/index.htm

Добавлено через 4 минуты и 49 секунд
Muerto, А насколько ваш фреймворк помог в разработке?
а зачем на зенде хеллоу ворд делать?
Вы сравните скорость разработки какой-нибудь большой системы на зенде и с вашим фреймворком.
PM MAIL ICQ Skype GTalk   Вверх
SneG0K
Дата 6.9.2010, 10:24 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(Muerto @  6.9.2010,  09:17 Найти цитируемый пост)
Наслаждайтесь

 smile Насладился! Подставил в поле логин ' or 1=1/* и насладился)))
enoff, Спасибо))

Добавлено через 1 минуту и 11 секунд
Цитата(Muerto @  6.9.2010,  09:17 Найти цитируемый пост)
насколько быстро мой мини фреймворк пашет

Он просто прелесть  smile 
PM WWW Skype   Вверх
Muerto
Дата 6.9.2010, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



SneG0K, И что вы этим получили по вашему  smile 

Код

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL auto_increment,
  `login` varchar(100) character set utf8 NOT NULL,
  `password` varchar(15) character set utf8 NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `email` (`login`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=24 ;

--
-- Dumping data for table `users`
--

INSERT INTO `users` (`id`, `login`, `password`) VALUES
(23, ''' or 1=1/*', '123');



Кто кого умней?  smile 

Вы бы хоть переводчик посмотрели, там у меня и логин и регистрация в одном месте, если вы не зарегины вас зарегит, а если зарегины, вас просто впустит =-)
Если логин существует а пароль левый, вас не впустит!

Вы не понимайте всю прелесть do_query("insert....",1); + функцию escape  smile 

Это сообщение отредактировал(а) Muerto - 6.9.2010, 10:32


--------------------
user posted image
PM MAIL   Вверх
enoff
Дата 6.9.2010, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 11
Всего: 13



SneG0K,  smile 
тоже мысль была, только я поле ввода не победил smile

Добавлено через 1 минуту и 44 секунды
Muerto, этот запрос вывалится с ошибкой, копнуть дальше и получим полной контроль над вашей 
Цитата(SneG0K @  6.9.2010,  11:24 Найти цитируемый пост)
Он просто прелесть


PM MAIL ICQ Skype GTalk   Вверх
Muerto
Дата 6.9.2010, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



enoff, Да можете играться сколько хотите, когда получаем $_POST
идет фильтровка самая базовая через htmlspecialchars которая в общем не является защитой от иньекций, затем функция escape берет каждую ячейкую которую я засунул между волшебными символами, и фильтрует её через mysqli_real_escape

Что бы облегчить вам взлом, добавление пользователя выглядит вот так:
Код

$db->do_query("insert into users (login,password) VALUES ('".SC."".$login."".SC."','".SC."".$pass."".SC."')",1);


Перед этим идет поиск пользователя
Код

$data=$db->do_query("select * from users where login='".SC."".$login."".SC."'",1);


Или же вы думайте что разработчики php полные придурки, и нифига не понимают в OOP , и придумали никому не нужную функцию mysqli_real_escape?

НИФИГА ВЫ НЕ ВЗЛОМАЛИ КАК ВЫ ПОНЯТЬ НЕ МОЖЕТЕ!!!  smile 

Это сообщение отредактировал(а) Muerto - 6.9.2010, 10:38


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(Muerto @  6.9.2010,  09:29 Найти цитируемый пост)
SneG0K, И что вы этим получили по вашему

Вау!
PM WWW Skype   Вверх
Muerto
Дата 6.9.2010, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



читаем ниже

Это сообщение отредактировал(а) Muerto - 6.9.2010, 10:48


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(Muerto @  6.9.2010,  09:34 Найти цитируемый пост)
 когда получаем $_POST
идет фильтровка самая базовая через htmlspecialchars, 

Что вы за ахинею придумали?
Класс БД должен защищаться от SQL иньекций, функции работы с таблицей должны отталкиваться от класса БД и защищать только от XSS

ЧТо это еще за ахинея, когда все делается в одном месте? Каждый компонент должен заниматься своим делом и защищать себя сам.

Добавлено через 1 минуту и 1 секунду
Цитата(Muerto @  6.9.2010,  09:39 Найти цитируемый пост)
SneG0K, Ну блин сколько же вам писать, что вас никуда таким запросом не впустило?

Это я и без тебя понял.
Цитата(Muerto @  6.9.2010,  09:39 Найти цитируемый пост)
Я вам сам урок могу дать по SQL-injection , вы здесь никого ничем не удевили

Начинай, а я послушаю.

Добавлено через 1 минуту и 33 секунды
Muerto, ты небось выходец и хакзоны или хакер.ру ?
PM WWW Skype   Вверх
Muerto
Дата 6.9.2010, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



SneG0K, Ну блин сколько же вам писать, что вас никуда таким запросом не впустило?
или вам по пальцам продолжать объяснять?

Я вам сам урок могу дать по SQL-injection , вы здесь никого ничем не удевили

Я вам объясню, так как вы не понимайте что оно вам там пишет

Вы сделали следующее
1. в логин вы впихнули 
' or 1=1/*
Пароль 123
2.  Скрипт сделал
$login=htmlspecialchars($_POST['login']); (Но может этого и не делать, это значения НЕ ИМЕЕТ)
Код


$data=$db->do_query("select * from users where login='".SC."".$login."".SC."'",1);


Он не нашел ваш логин, и затем он сделал

Код

$db->do_query("insert into users (login,password) VALUES ('".SC."".$login."".SC."','".SC."".$pass."".SC."')",1);


т.е. он зарегил вас!
Затем впустил в систему...

Типер вы можетей зайти на /?logout
И попытаться ввести 
' or 1=1/*
Пароль 12

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

если введете
' or 1=1/*
Пароль 123

вы просто войдете в  ВАШ аккаунт

Это сообщение отредактировал(а) Muerto - 6.9.2010, 10:49


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(Muerto @  6.9.2010,  09:48 Найти цитируемый пост)
вы просто войдете в  ВАШ аккаунт

Адмирал ясен хер!
PM WWW Skype   Вверх
cutwater
Дата 6.9.2010, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



Цитата(SneG0K @  6.9.2010,  09:42 Найти цитируемый пост)
Muerto, ты небось выходец и хакзоны или хакер.ру ? 


Дайте уже ребенку писать велосипеды. Читаю товарища уже не первый день, это более чем забавно. Впрочем с опытом пройдет. Многие в  страдали юношеским максимализмом, велосипедописанием, уверенностью в том что делают лучше чем тысячи разработчиков по всему миру. Это проходит...

Добавлено через 1 минуту и 43 секунды
Когда / Если товарищ Muerto на нормальную работу, с постоянным code review и прочими радостями коммандной разработки, его быстро отучат писать велосипеды и думать что умней других и многих.


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Надо открывать ленты на винграде посвященные тем или иным лицам)
PM WWW Skype   Вверх
Muerto
Дата 6.9.2010, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Вы пишите:

Что вы за ахинею придумали?
Класс БД должен защищаться от SQL иньекций, функции работы с таблицей должны отталкиваться от класса БД 

И на какой основе вы это пишите?
Класс BD ничего кроме mysqli_real_escape не использует и не знает

Я ему ставлю метки, где нужно отфильтровать, и он это делает через mysqli_real_escape

а
Код


$login=htmlspecialchars($_POST['login']);

это часть скрипта , нужно от XSS вообще то, что бы мне скрипты не повставляли но на BD не влияет никак
кстати стоит помнить что на данный момент здесь  НЕ MVC

хоть и есть некий "контроллер"

Добавлено @ 10:58
cutwater, А я ничего не думаю, я написал класс исключительно для себя, он выполняет свои цели отлично.

Здесь вообще пол темы флуда...

Ну вы говорите велосипеды, и уже все есть? так какого вы тут все делайте? идите качайте ZEND или YII и будет вам счастье, ещё есть сайт как
http://www.phpclasses.org/
там вы ещё и классов накачайте, готовых.

И потом вы себя программистами назовете, и скажите что знайте что такое OOP ?

А я буду в сторонке смотреть на эту и жалеть вас.


Это сообщение отредактировал(а) Muerto - 6.9.2010, 11:00


--------------------
user posted image
PM MAIL   Вверх
enoff
Дата 6.9.2010, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 11
Всего: 13



Muerto, от XSS то нужно, только правильнее будет в другом месте это делать, а не перед добавлением в базу.
PM MAIL ICQ Skype GTalk   Вверх
SneG0K
Дата 6.9.2010, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(Muerto @  6.9.2010,  09:54 Найти цитируемый пост)
И потом вы себя программистами назовете, и скажите что знайте что такое OOP ?

Мы уже давно написали свои велосипеды, откатались на них и купили автомобили smile 

Это сообщение отредактировал(а) SneG0K - 6.9.2010, 11:06
PM WWW Skype   Вверх
Muerto
Дата 6.9.2010, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



enoff, Вы однозначно правы,
"принято" сохранять информацию в "чистом виде" , т.е. именно фильтровка mysqli_real_escape
а затем уже при выводе инфы, запускать разные фильтровки...
к примеру тот же htmlspecialchars

нужно это от XSS
К примеру в комментариях к новостям иногда можно впихнуть
Код

'<script>alert("asdfasdf")</script>

Или
Код

"<script>alert('asdfasdf')</script>

Зависит как там у них вывод инфы идет, и это выкинет сообщение

Такие сайты вообще для  поднятия ТИЦ и PR использовать можно, вставляя ссылки на свой сайт...

Почему же здесь я фильтрую перед тем как впихиваю в базу?
Ну собственно, потому что в данном случае оно для меня совершенно не имеет значения


--------------------
user posted image
PM MAIL   Вверх
cutwater
Дата 6.9.2010, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



Цитата(Muerto @  6.9.2010,  09:54 Найти цитируемый пост)
это часть скрипта , нужно от XSS вообще то, что бы мне скрипты не повставляли но на BD не влияет никак


За защиту от XSS должен отвечать уровень представления / view но никак не обработки данных. Ибо работать необходимо, удобно и правильно с raw данными.

Но Вы же не считаетесь с чужими мнениями более опытных людей.

P.S. именно поэтому столько матерились в сторону всяких magic quotes и прочих плюшек, якобы облегчающих жизнь.

Добавлено через 1 минуту и 12 секунд
Цитата(Muerto @  6.9.2010,  10:08 Найти цитируемый пост)
Почему же здесь я фильтрую перед тем как впихиваю в базу?
Ну собственно, потому что в данном случае оно для меня совершенно не имеет значения 


Это Вы сейчас так говорите, пока не столкнетесь с проблемами. И будет лишнего кода, заплатка на заплатке и заплаткой погоняет.

Добавлено через 1 минуту и 52 секунды
P. P. S. Как я уже говорил, бесполезно спорить с человеком, который слышет только себя.


--------------------
user posted image
PM MAIL   Вверх
Muerto
Дата 6.9.2010, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



cutwater, Это не MVC , и этот проект мелкий и нужен только не многим студентам, я в него мысль не вкладывал, хотя конечно возможно стоит сразу как бы всегда верным путем следовать


А что бы здесь не говорили что я пусто слов, вот вам за 15 секунд использование XSS на сайте который по гуглю нашел

Сюрприз для хакеров вроде SneG0K
http://www.autobaza.ru/search.php?k=%22%3E...uerto%3C%2Fa%3E

Это сообщение отредактировал(а) Muerto - 6.9.2010, 11:17


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(cutwater @  6.9.2010,  10:10 Найти цитируемый пост)
Но Вы же не считаетесь с чужими мнениями более опытных людей.

Да Вы, какой вы опытный! Вы дилетант! Вы даже Hello World и использованием фреймворков не писали! И Enoff дилетант! И я! Мы все жалкие дилетанты! И вообще мы нифига не шарим! Класс работы с бд не должен быть удобным, он должен быть уникальным и плевать, что не удобным.

Это сообщение отредактировал(а) SneG0K - 6.9.2010, 11:22
PM WWW Skype   Вверх
enoff
Дата 6.9.2010, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 11
Всего: 13



cutwater, тут много раз вопрошали, зачем все эти велосипеды, но внятного ответа так и не было...

Muerto, зачем что-то городить, когда mysql_real_escape_string + intval защитит от инъекций, а htmlspecialchars от xss? Лишние телодвижения здесь нет никакого оправдания...
PM MAIL ICQ Skype GTalk   Вверх
SneG0K
Дата 6.9.2010, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(Muerto @  6.9.2010,  10:16 Найти цитируемый пост)
Сюрприз для хакеров вроде SneG0K

И че?

Добавлено через 1 минуту и 22 секунды
Этот парень мне supervalislav'a напоминает smile 
PM WWW Skype   Вверх
Muerto
Дата 6.9.2010, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Цитата(enoff @ 6.9.2010,  11:16)
Muerto, зачем что-то городить, когда mysql_real_escape_string + intval защитит от инъекций, а htmlspecialchars от xss? Лишние телодвижения здесь нет никакого оправдания...

Ну у меня оно так и есть, только порядок иной...

Хотя в том что я вам описал явно не хватает пару вещей и это к примеру какой нибудь валидатор которые будет смотреть на паттерны...
И говорить если пароль соответствует политике сайта, а так же логин...


--------------------
user posted image
PM MAIL   Вверх
enoff
Дата 6.9.2010, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 11
Всего: 13



SneG0K, только его вспоминал smile 

Muerto, можно и админам написать, а не показывать свою крутость. К тому же некоторые ща налетят и будут мучать этот сайт.
PM MAIL ICQ Skype GTalk   Вверх
cutwater
Дата 6.9.2010, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



Цитата(Muerto @  6.9.2010,  10:22 Найти цитируемый пост)
пароль соответствует политике сайта


Просто в восторге от сайтов которые допускают в паролях только a-z 0-9 _ -, не допускают пробелы и спецсимволы. И обязательно требуют наличия цифр и символов разных регистров.


--------------------
user posted image
PM MAIL   Вверх
enoff
Дата 6.9.2010, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 11
Всего: 13



Это прекрасно работает и без дополнительных вещей. Время не экономит, код становится непонятнее...
PM MAIL ICQ Skype GTalk   Вверх
SneG0K
Дата 6.9.2010, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(cutwater @  6.9.2010,  10:23 Найти цитируемый пост)
разных регистров. 

и в итоге при проверке переводят в нижний регистр  smile

Добавлено через 2 минуты и 31 секунду
Так-с! Давайте эту тему ко мне во флейм  smile 
PM WWW Skype   Вверх
Muerto
Дата 6.9.2010, 11:28 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



enoff, Вы в гугле поиск сделайте, http://www.autobaza.ru/search.php и поймете что я здесь никому ничего не обновил, может только открыл нечто новое для тех кто не знаком с XSS , и что через него можно поднять ТИЦ

SneG0K, Ну в нижний регистр это уже ужас, я так на своих проектах никогда не делаю
Но не люблю когда в логине на форуме есть симфолы вроде #!@%^ нафиг такое разрещать? у нас тут че демократия?
Программирование это диктатура, и диктатор здесь я ©


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(Muerto @  6.9.2010,  10:28 Найти цитируемый пост)
когда в логине

Напомните мне, когда это мы говорили про логин?

Добавлено через 29 секунд
Цитата(Muerto @  6.9.2010,  10:28 Найти цитируемый пост)
enoff, Вы в гугле поиск сделайте, http://www.autobaza.ru/search.php и поймете что я здесь никому ничего не обновил, может только открыл нечто новое для тех кто не знаком с XSS , и что через него можно поднять ТИЦ

Так это еще и не ты нашел smile

Добавлено через 1 минуту и 15 секунд
Цитата(Muerto @  6.9.2010,  10:28 Найти цитируемый пост)
и что через него можно поднять ТИЦ

Через него не только ТИЦ поднимают.
PM WWW Skype   Вверх
Muerto
Дата 6.9.2010, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Давайте как то ближе к теме!

Значит судя по вашим словам, свои классы писать смысла нету, если можно найти готовое в гугле? smile 


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 11:39 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(Muerto @  6.9.2010,  10:35 Найти цитируемый пост)
вои классы писать смысла нету

Смысл только ради обучения!
Zend_Db представляет функционал намного удобней, чем ваш этот. Есть еще смысл, когда заказчик требует полностью без использования левых компонентов, но в таких случаях я тоже ориентируюсь на уже готовые решения.
PM WWW Skype   Вверх
cutwater
Дата 6.9.2010, 11:39 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



Цитата(Muerto @  6.9.2010,  10:35 Найти цитируемый пост)
Значит судя по вашим словам, свои классы писать смысла нету, если можно найти готовое в гугле?


Кривые и велосипедные именно.
Когда то что вы делаете реализовано по человечески при помощи mysqli, PDO, yet another Wpapper / ORM.

Когда prepared statements реализованы на уровне движка БД и таки имеют смысл и оптимизируют одинаковые запросы с различиями в параметрах, в отличие от Вашего велосипеда, который кроме того же еще и имеет не очевидный дизайн и кроме вас никому не нужен.


--------------------
user posted image
PM MAIL   Вверх
Muerto
Дата 6.9.2010, 11:50 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



cutwater, Ну если мы оставим таких гигантов как ZEND где вы толком один файл который у него там за работу с базой и не найдете, ну по крайней мере я не нашел...

Мой класс работает с базой данных через mysqli
использует ооп модход работы с mysqli

Он облегчает процесс фильтровки данных функцией mysqli_real_escape путем do_query + escape
Он умеет подготавливать выражения, причем не нужно сразу указывать
Код

$stmt-> bind_param('sdsdsd',$param1,$param2,$param3,$param4,$param5...



А можно делать нечто
Код

$var1='s';$var2='cool';
$db->var_bind($var1,$var2);

Но ведь мы хотим (?,?,?,? и это то что мы заготовили, а добавил я только один, как оно работать будет?
Дальеш можно по одному, а можно просто список дать
Код

$types=('s','d','s','d'.....
$params=('cooool','123'

И затем 
$db->ar_bind($types,$params)
$db->bind_params(); мы закрываем этот процесс, и это сделает нам bind_param со всеми нашими параметрами
если мы изменем $types,$params то изменим и параметры, как если бы мы делали это в ручную
И дальше тупо
$db->execute();




--------------------
user posted image
PM MAIL   Вверх
cutwater
Дата 6.9.2010, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



Цитата(Muerto @  6.9.2010,  10:50 Найти цитируемый пост)
где вы толком один файл который у него там за работу с базой и не найдете,


Вы сломали мой парсер....


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 11:55 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(Muerto @  6.9.2010,  10:50 Найти цитируемый пост)
И дальше тупо

Согласен. Тупо!
PM WWW Skype   Вверх
Muerto
Дата 6.9.2010, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



cutwater, Судя по вашему сообщению, вы думайте что я изобретаю mysqli?
нет!
Я всего лишь использую mysqli через мой класс, я ничего особого не изобритаю, кроме как решение самых обычных и распостраненых задач что и видно с описания класса и его функций
он может работать как с mysqli так и с PDO или с mysql
Я думаю и с текстовым файлом тоже можно... смысл в том что я всегда смогу сменить

Это сообщение отредактировал(а) Muerto - 6.9.2010, 11:58


--------------------
user posted image
PM MAIL   Вверх
enoff
Дата 6.9.2010, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 11
Всего: 13



действительно smile 
Код

query("INSERT INTO `msg`(`user_id`, `msg`) VALUES(%d, %s)", $id, $msg); //по мне, лучше было бы подобное.

И часто вы так запросы составляете, как постом выше?
PM MAIL ICQ Skype GTalk   Вверх
Muerto
Дата 6.9.2010, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Цитата(enoff @ 6.9.2010,  11:57)
действительно smile 
Код

query("INSERT INTO `msg`(`user_id`, `msg`) VALUES(%d, %s)", $id, $msg); //по мне, лучше было бы подобное.

И часто вы так запросы составляете, как постом выше?

Ну а кто против? так конечно же можно делать, и возможно нужно иногда

Но если вы строите класс, то вам нужно как то обобщить эти случая
а что если мне нужно завтра не два параметра а 30?


--------------------
user posted image
PM MAIL   Вверх
enoff
Дата 6.9.2010, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 11
Всего: 13



Muerto, и в чем проблема? функция принимает неопределенное количество параметров, формирует запрос исходя из плэйсхолдеров и параметров, после запроса.
PM MAIL ICQ Skype GTalk   Вверх
gta4kv
Дата 6.9.2010, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Цитата(SneG0K @ 6.9.2010,  11:17)

Добавлено @ 11:18
Этот парень мне supervalislav'a напоминает smile

 smile  smile поржал с утреца

Добавлено через 3 минуты и 40 секунд
Насчет "не ООП", ну так вот - засунуть все стандартные функции mysqli в свой класс это не есть ООП. 
PM MAIL   Вверх
Muerto
Дата 6.9.2010, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



gta4kv, опять же, что такое ооп по вашему?


--------------------
user posted image
PM MAIL   Вверх
gta4kv
Дата 6.9.2010, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Я не умею умные длинные посты писать, но, еще раз повторюсь, сделать класс который будет выполнять стандартные функции под другим именем это кривой велосипед

на предыдущих страницах писали - что понимание придет со временем

Это сообщение отредактировал(а) gta4kv - 6.9.2010, 12:54
PM MAIL   Вверх
Muerto
Дата 6.9.2010, 13:18 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



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

Далее, с чего вы взяли что все что мой класс делает это лишь использует mysqli и ничего более?

Как бы если я впишу $db->do_query("myquery",1);
то вы считайте что метод в классе выглядит вот так:

Код

public function do_query($thequery){
        return  $this->conn_id->query($thequery);


А на самом деле вот так:

Код

public function do_query($thequery,$escape=0){
       if(!isset($this->conn_id))
       {
        if(!isset($this->ifinit))trigger_error('Please do init_conn.', E_USER_ERROR);
        $this->open_conn();
       }
        $this->last_qresult=( $escape==1 )?( $this->conn_id->query($this->escape($thequery)) ):( $this->conn_id->query($thequery) );
           $this->reqs_num++;
        if(!$this->last_qresult)
        {
        $this->close_conn();
        trigger_error('Do_Query Error! code: '.$this->conn_id->errno, E_USER_ERROR);
         }
        return $this->last_qresult;
    }


Т.е. если бы я взял ваш подход, то при каждом запросе я бы писал заново с нуля все что у меня под "на самом деле"

Здесь же есть класс который все это делает для меня, и сокращает код с 1000 строк до 100, и это плохо да?


Это сообщение отредактировал(а) Muerto - 6.9.2010, 13:22


--------------------
user posted image
PM MAIL   Вверх
cutwater
Дата 6.9.2010, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



По-моему поциенту уже объясняли что открывать соединение с базой необходимо в начале и не париться по поводу этого каждый раз при выполнении запроса.

Добавлено @ 13:25
        
Код

        if(!$this->last_qresult)
        {
        $this->close_conn();
        trigger_error('Do_Query Error! code: '.$this->conn_id->errno, E_USER_ERROR);
         }
        return $this->last_qresult;
        


И все таки, что курил автор?

Это сообщение отредактировал(а) cutwater - 6.9.2010, 13:26


--------------------
user posted image
PM MAIL   Вверх
gta4kv
Дата 6.9.2010, 13:27 (ссылка) |    (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Да это точно supervladislav, забейте.
PM MAIL   Вверх
Muerto
Дата 6.9.2010, 13:30 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



cutwater, Да вы это говорили и не раз, можете это проигнорировать, это лично мое предпочтение
Я так делаю потому что я лентяй, у этого есть все же свои преимущества
но теоретически я бы мог в функции init_conn создавать подключение в конце объявления параметров...

В функции __construct я это делать не могу потому что у меня сотни баз данных с разными паролями, максимум что я могу это использовать ini файл или что то другое откуда constructor будет данные грузить, или даже с класса Vars
Но пока что я работаю без ini, хоть и класс ini_Parser я написал...

Добавлено @ 13:31
gta4kv, вы общаетесь с http://www.facebook.com/dckurushin , я здесь на форуме не первый год и не первую тему создаю

Это сообщение отредактировал(а) Muerto - 6.9.2010, 13:31


--------------------
user posted image
PM MAIL   Вверх
cutwater
Дата 6.9.2010, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



Цитата(Muerto @  6.9.2010,  12:30 Найти цитируемый пост)
В функции __construct я это делать не могу потому что у меня сотни баз данных с разными паролями


Сударь не слышал о параметрах?


Цитата(Muerto @  6.9.2010,  12:30 Найти цитируемый пост)
что у меня сотни баз данных с разными паролями


Для одного сайта штоле?

Какой-то бред откровенно говоря. В который раз убеждаюсь в бесполезности общения с поциентом. Удачи =)


--------------------
user posted image
PM MAIL   Вверх
Muerto
Дата 6.9.2010, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



cutwater, Да таки криво, я когда цитировал прибавил , что бы выглядело как то поумней и допустил ошибку
Код

 if(!$this->last_qresult)
        {
        $this->close_conn();
        trigger_error('Do_Query Error! code: '.$this->conn_id->errno, E_USER_ERROR);
         }


настоящий оригинал был такой:

Тоже не фонтан но все же

Код

  if(!$this->last_qresult)
        {
        printf("Errorcode: %d\n", $this->conn_id->errno);
        exit();
         }


А сейчас подумал лучше всего таки оставить старое с добавкой потому что trigger  все равно что сделать exit, и будет висеть подключение

Код

  if(!$this->last_qresult)
        {
        printf("Do_Query Error! Errorcode: %d\n", $this->conn_id->errno);
            $this->close_conn();
        exit();
         }


Добавлено @ 13:41
Цитата(cutwater @ 6.9.2010,  13:34)
Цитата(Muerto @  6.9.2010,  12:30 Найти цитируемый пост)
В функции __construct я это делать не могу потому что у меня сотни баз данных с разными паролями


Сударь не слышал о параметрах?


Цитата(Muerto @  6.9.2010,  12:30 Найти цитируемый пост)
что у меня сотни баз данных с разными паролями


Для одного сайта штоле?

Какой-то бред откровенно говоря. В который раз убеждаюсь в бесполезности общения с поциентом. Удачи =)

Какие параметры могут быть у функции
 
Код

private function __construct()
 и как вы их туда передадите? научите пожалуйста...
Обявление идет такое:
$db=db_class::getInstance()


И кто сказал вам что у меня один сайт? с 100 базами? у меня много сайтов, просто я раньше как то их все строил в процедурном стиле

Это сообщение отредактировал(а) Muerto - 6.9.2010, 13:43


--------------------
user posted image
PM MAIL   Вверх
cutwater
Дата 6.9.2010, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



Цитата(Muerto @  6.9.2010,  12:37 Найти цитируемый пост)
  exit();


Жесть... как представлю что такой printf сработает на боевом сайте.... 

Сударь не слышал об исключениях?

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


--------------------
user posted image
PM MAIL   Вверх
Muerto
Дата 6.9.2010, 13:45 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



cutwater, вы про try catch?
Я считаю что если разработчик допустил ошибку скрипт нужно останавливать, или же если произошел сбой на сервере...
в других случаях exit никогда не случиться

Возможно со временем как тут многие пишут, я пойму что я не прав, и это как шоу, когда один из героев умер от инфаркта, продолжается все равно


Это сообщение отредактировал(а) Muerto - 6.9.2010, 13:46


--------------------
user posted image
PM MAIL   Вверх
cutwater
Дата 6.9.2010, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



Цитата(Muerto @  6.9.2010,  12:37 Найти цитируемый пост)
 и как вы их туда передадите? научите пожалуйста...
Обявление идет такое:
$db=db_class::getInstance()


в 10й раз повторяю об инициализации базы в начале. из конфига, из переменной whatever.... если так не хочется открывать соединение заранее, да пожалуйста, вызывайте где угодно. параметры можно запомнить. НО это хреновый дизайн.
Ибо писать нормально вы упорно отказываетесь...


Цитата(Muerto @  6.9.2010,  12:37 Найти цитируемый пост)
И кто сказал вам что у меня один сайт? с 100 базами? у меня много сайтов, просто я раньше как то их все строил в процедурном стиле


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

На сим откланяюсь. У меня о Вас сложилось вполне четкое мнение, и больше тратить свое время без пользы на Вас не намерен. 

Это сообщение отредактировал(а) cutwater - 6.9.2010, 13:49


--------------------
user posted image
PM MAIL   Вверх
gta4kv
Дата 6.9.2010, 13:51 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Цитата(Muerto @ 6.9.2010,  13:45)
Я считаю что если разработчик допустил ошибку скрипт нужно останавливать, или же если произошел сбой на сервере...

http://phpfaq.ru/error
Это насчет ошибок. Написанное выше бред. Остановить скрипт - да, но выведенная ошибка - ###.

Это сообщение отредактировал(а) gta4kv - 6.9.2010, 13:54
PM MAIL   Вверх
Muerto
Дата 6.9.2010, 13:51 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Цитата(cutwater @ 6.9.2010,  13:48)
Ибо писать нормально вы упорно отказываетесь...

А может я вовсе не умею? и вы вашими советами мне ничем не помогайте кроме как сказать что вы можете хорошо а мое ###?


Тут история вообще такая

Мой стиль жизни экономный:

У меня есть тачка снизу рядом с домом, я выйду заведу и поеду...

А у вас стиль жизни другой:

У вас тачка стоит рядом с домом и уже заведенная, и вы не думайте о том что возможно вы сегодня никуда не поедите и бензин сгорит зря!!!

ИМЕННО ОБ ЭТОМ РЕЧЬ

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

Добавлено @ 13:54
Цитата(gta4kv @ 6.9.2010,  13:51)
Цитата(Muerto @ 6.9.2010,  13:45)
Я считаю что если разработчик допустил ошибку скрипт нужно останавливать, или же если произошел сбой на сервере...

http://phpfaq.ru/error
Это насчет ошибок. Написанное выше бред. Остановить скрипт - да, но выведенная ошибка - ###.

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

Вообще мне лично не понятно (я ещё не читал то что дали) , я очень боюсь разных trigger ибо если подключение открыто, а например в вашем подходе оно будет всегда открыто с самого начала, то если мы работает с mysqli подключения сами закрываться не будут в конце работы скрипта в отличии вроде от mysql , и поэтому у нас быстро достигнется maximum connection





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

Это сообщение отредактировал(а) Muerto - 6.9.2010, 14:09


--------------------
user posted image
PM MAIL   Вверх
enoff
Дата 6.9.2010, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 30.6.2010
Где: Санкт-Петербург

Репутация: 11
Всего: 13



советов дано огромное множество, все равно все по-своему. Что такое ООП? Читайте Гради Буча, я ссылку привел.

Добавлено через 23 секунды
 smile 
PM MAIL ICQ Skype GTalk   Вверх
Muerto
Дата 6.9.2010, 14:18 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Кстати на настоящих сайтах где есть норм посещения, у меня вообще все по другому работает....

Я все же скрипт все равно обрываю, но перед этим, я пишу в error log (текстовый файл на сервере) Ошибку, и потом я могу посмотреть когда она произошла, на какой странице с какими параметрами, и код ошибки...

Это сообщение отредактировал(а) Muerto - 6.9.2010, 14:18


--------------------
user posted image
PM MAIL   Вверх
gta4kv
Дата 6.9.2010, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Цитата

то если мы работает с mysqli подключения сами закрываться не будут в конце работы скрипта

Что мешает в __destruct сделать проверку - открыто ли соединение и закрывать его?
PM MAIL   Вверх
Muerto
Дата 6.9.2010, 14:21 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



gta4kv, Вы должны понять что у меня сильная нехватка знаний.
Я очень плохо знаком с __destruct

Из того что я читал и слышал, она срабатывает когда мы на объект делаем unset
Но если мы делаем trigger или exit , скрипт обрывается (не на 100% уверен насчет trigger, но вроде так)...


Если я читал в левых источниках, и когда скрипт останавливается не важно как, и создан объект класса, будет вызван __destruct то тогда вы однозначно правы, и я так и сделаю, ибо такой подход проще и лучше... сейчас почитаю


Это сообщение отредактировал(а) Muerto - 6.9.2010, 14:23


--------------------
user posted image
PM MAIL   Вверх
gta4kv
Дата 6.9.2010, 14:22 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Тут поможет документация.
http://ru.php.net/exit


Цитата

 Terminates execution of the script. Shutdown functions  and object destructors  will always be executed even if exit() is called. 

PM MAIL   Вверх
Muerto
Дата 6.9.2010, 14:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



gta4kv, Я сформирую вопрос немного иначе...

Когда скрипт обрывается, или заканчивает выполнение автоматический вызываются __destructor всех созданных объектов?


Вы процитировали

will always be executed even if exit() is called. 
А если exit not called 
а 
called trigger_error 
/ скрипт просто закончился

Это сообщение отредактировал(а) Muerto - 6.9.2010, 14:25


--------------------
user posted image
PM MAIL   Вверх
gta4kv
Дата 6.9.2010, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



см. выше.  там есть ответ на вопрос

Добавлено через 7 минут и 3 секунды
как бе, вызываешь триггер еррор и потом экзит.
PM MAIL   Вверх
Muerto
Дата 6.9.2010, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



gta4kv, Спасибо, поигрался немного с __destruct при разных условиях и понял что к чему
У меня кстати целый домейн зареген чисто ради тренеровок =-) http://learn-php.ru

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

Но когда у нас класс вроде ini_Parser  то все что у нас есть в классе это массив который содержит данные ini
и через __destruct мы просто можем освободить память как бы... но есть ли в этом какой то смысл? или скрипт сам освобождает память в конце выполнения что скорее всего так и есть?


Судя по http://stackoverflow.com/questions/2251113...in-php-destruct , кроме как закрытия подключений не нужно...

Это сообщение отредактировал(а) Muerto - 6.9.2010, 14:52


--------------------
user posted image
PM MAIL   Вверх
gta4kv
Дата 6.9.2010, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



Цитата

или скрипт сам освобождает память в конце выполнения что скорее всего так и есть?

Ответ по твоей же ссылке6
Цитата

You really don't need to worry about cleaning up your variable declarations in PHP, it's garbage collection takes care of all of that for you

PM MAIL   Вверх
Muerto
Дата 6.9.2010, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



gta4kv, угу, я так и сказал "кроме как закрытия подключений не нужно..."


--------------------
user posted image
PM MAIL   Вверх
cutwater
Дата 6.9.2010, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



Цитата(Muerto @  6.9.2010,  13:56 Найти цитируемый пост)
gta4kv, угу, я так и сказал "кроме как закрытия подключений не нужно..." 


Кроме того не знаю откуда вы взяли, что mysqli работает не так как mysql. После выполнения скрипта PHP закрывает все открытые соединения к базе данных, так что ваши беспокойства по поводу утечки соединений напрасны и необоснованы.


--------------------
user posted image
PM MAIL   Вверх
Muerto
Дата 6.9.2010, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



cutwater, Вот в этой теме обсуждалось http://forum.vingrad.ru/forum/topic-308721.html
Я когда разрабатывал один из скриптов выскакивали ошибки которые остонваливали скрипт без вызова kill + close
поэтому мне удалось дойди до предела... и вот как бы выходит что автоматом там не закрывает при определенных условиях


--------------------
user posted image
PM MAIL   Вверх
cutwater
Дата 6.9.2010, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



Ну быть может тут я не прав, в таком случае конечно mysqli не совсем может быть удобен. Однако насколько я знаю уже в PDO решили эти проблемы и он вполне юзабелен. Я с mysqli на практике не сталкивался, работал с PDO и mysql, поэтому таки могу и ошибаться.


--------------------
user posted image
PM MAIL   Вверх
Muerto
Дата 6.9.2010, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



cutwater, Кстати если подумать так, то без вспомогательного класса вроде моего через который я использую mysqli, не только что нужно писать больше кода каждый раз,
а ещё и нету __destruct и надо следить за закрытием каждый раз... а это фактически не возможно, потому что и другие классы и методы могут выкинуть свои ошибки после открытия подключения...


__destruct конечно супер тема, как то я им активно не пользовался раньше...

Это сообщение отредактировал(а) Muerto - 6.9.2010, 16:50


--------------------
user posted image
PM MAIL   Вверх
cutwater
Дата 6.9.2010, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



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

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

Вы все еще используете mysql? тогда мы идем к вам =)


--------------------
user posted image
PM MAIL   Вверх
gta4kv
Дата 6.9.2010, 16:53 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



я кстати не понимаю, зачем ты в каждый класс добавляешь getInstance когда можно сделать самый простой класс для синглетона:

Код

<?php

class singleton
{
    private static $instance = array( );

    private function __constuct() {}
    
    public function getInstance( $class = null )
    {
        if( is_null( $class ) )
        {
            trigger_error( 'Информация о классе отсутствует', E_USER_ERROR );
        }
        if( ! array_key_exists( $class, self::$instance ) )
        {
            self::$instance[ $class ] = new $class;
        }
        return self::$instance[ $class ];
    }
    
    public final function __clone(  )
    {
        trigger_error( 'Клонирование паттерна-одиночки не возможна', E_USER_ERROR );
    }
}

?>


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

Вы все еще используете mysql? тогда мы идем к вам =) 

Используем.

Это сообщение отредактировал(а) gta4kv - 6.9.2010, 16:53
PM MAIL   Вверх
cutwater
Дата 6.9.2010, 16:58 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



Цитата(gta4kv @  6.9.2010,  15:53 Найти цитируемый пост)
я кстати не понимаю, зачем ты в каждый класс добавляешь getInstance когда можно сделать самый простой класс для синглетона:


С учетом того что паттерн Singleton зло, то применять его необходимо крайне осторожно и максимально редко. Поэтому обычно хватает одного на приложение. Если уж совсем никак без глобальных переменных. Кроме как для работы с базой в php не знаю где еще может пригодиться. Не встречал на практике, хотя может быть уже и не помню. Хотя еще и настройки...

Другое дело что, например, в python-фреймворке svarga используется концепция environment (окружения), что есть по сути глобальный объект, хотя как один глобальный синглтон для приложения не назови, смысл не изменится.


--------------------
user posted image
PM MAIL   Вверх
gta4kv
Дата 6.9.2010, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



С какой это стати Singleton зло? 
PM MAIL   Вверх
cutwater
Дата 6.9.2010, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



Цитата(gta4kv @  6.9.2010,  16:10 Найти цитируемый пост)
С какой это стати Singleton зло?  


С такой же, с какой и применение глобальных переменных. Неосторожное его применение может повлечь за собой неочевидные последствия.

Это сообщение отредактировал(а) cutwater - 6.9.2010, 17:20


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(Muerto @  6.9.2010,  13:43 Найти цитируемый пост)
У меня кстати целый домейн зареген чисто ради тренеровок =-) http://learn-php.ru

Круто, а у меня на ноутбуке стоит виртуалка с линуксом на борту smile
Цитата(Muerto @  6.9.2010,  13:43 Найти цитируемый пост)
но есть ли в этом какой то смысл?

Ну, как вам сказать... Вот когда будете писать какой-нить скрипт (типа парсера), который будет работать круглые сутки, тогда поймете какой в этом смысл
Цитата(Muerto @  6.9.2010,  13:56 Найти цитируемый пост)
gta4kv, угу, я так и сказал "кроме как закрытия подключений не нужно..." 

См. выше
Цитата(gta4kv @  6.9.2010,  16:10 Найти цитируемый пост)
С какой это стати Singleton зло?  

Да? С какой это?
Цитата(cutwater @  6.9.2010,  15:58 Найти цитируемый пост)
С учетом того что паттерн Singleton зло

 smile 
Цитата(cutwater @  6.9.2010,  16:19 Найти цитируемый пост)
С такой же, с какой и применение глобальных переменных. Неосторожное его применение может повлечь за собой неочевидные последствия.

Эмммм... Вот как-то не чувствую связи между сингелтоном и глобалками? Сингелтон это не анти-паттерн как-бэ)
PM WWW Skype   Вверх
Muerto
Дата 6.9.2010, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



gta4kv, Т.е. вы вашим классом предлагайте что бы некий общий класс хранил в себе все singleton моих классов и выдавал их когда нужно?
SneG0K че внатуре? у меня тоже vmware centos 5.5, только кроме этого и vds есть, то что дома и "реал" работают немного иначе, например в той сборке что у меня htaccess не пашет!

Это сообщение отредактировал(а) Muerto - 6.9.2010, 18:33


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



gta4kv, если уж на то пошло, то я бы сделал для каждого паттерна свой класс. Т.е. BasicSingelton, BasicFactory.

Добавлено через 1 минуту и 6 секунд
Цитата(Muerto @  6.9.2010,  17:32 Найти цитируемый пост)
например в той сборке что у меня htaccess не пашет!

Ну, если обе руки левые...
PM WWW Skype   Вверх
Muerto
Дата 6.9.2010, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Цитата(SneG0K @ 6.9.2010,  18:34)
gta4kv, если уж на то пошло, то я бы сделал для каждого паттерна свой класс. Т.е. BasicSingelton, BasicFactory.

Добавлено @ 18:36
Цитата(Muerto @  6.9.2010,  17:32 Найти цитируемый пост)
например в той сборке что у меня htaccess не пашет!

Ну, если обе руки левые...

Увы, даже apc на это левую сборку поставить не смог, в php.ini все включено а на деле не пашет =-)


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(Muerto @  6.9.2010,  17:49 Найти цитируемый пост)
Увы, даже apc на это левую сборку поставить не смог, в php.ini все включено а на деле не пашет =-) 

Ну, так разберись хотя-бы с этим, а потом уже пиши велосипеды.
PM WWW Skype   Вверх
cutwater
Дата 6.9.2010, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



Цитата(SneG0K @  6.9.2010,  17:32 Найти цитируемый пост)
Эмммм... Вот как-то не чувствую связи между сингелтоном и глобалками? Сингелтон это не анти-паттерн как-бэ)


Я лишь говорил о чрезмерном и неумелом его употреблении. Поверьте встречается и такое.

Связь с глобальными переменными самая прямая, только и того что Singleton более управляем. Так как этот объект глобален, это порождает побочные эффекты функций, что в свою очередь может повлечь за собой трудноуловимые проблемы. Поэтому все хорошо но в меру.

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

Это сообщение отредактировал(а) cutwater - 6.9.2010, 19:03


--------------------
user posted image
PM MAIL   Вверх
Muerto
Дата 6.9.2010, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Цитата(SneG0K @ 6.9.2010,  18:55)
Цитата(Muerto @  6.9.2010,  17:49 Найти цитируемый пост)
Увы, даже apc на это левую сборку поставить не смог, в php.ini все включено а на деле не пашет =-) 

Ну, так разберись хотя-бы с этим, а потом уже пиши велосипеды.

Когда на форуме никто причины не знает, и во всем гугле люди жалуются на подобную проблему без ответа,
Я не собираюсь тратить больше времени чем потратил на это.
если бы я линукс с нуля ставил я ещё понимаю, а так один хер знает что там напихали, и почему оно не пашет мне никто не скажет


По поводу factory и singleton...

А грех ли это их совмещать?

Как бы singleton может и сам инклюдить библиотеку которую я хочу создать...

Это сообщение отредактировал(а) Muerto - 6.9.2010, 19:05


--------------------
user posted image
PM MAIL   Вверх
cutwater
Дата 6.9.2010, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



Цитата(Muerto @  6.9.2010,  18:01 Найти цитируемый пост)
Когда на форуме никто причины не знает, и во всем гугле люди жалуются на подобную проблему без ответа,
Я не собираюсь тратить больше времени чем потратил на это.
если бы я линукс с нуля ставил я ещё понимаю, а так один хер знает что там напихали, и почему оно не пашет мне никто не скажет 


/dev/head /dev/hands


--------------------
user posted image
PM MAIL   Вверх
Muerto
Дата 6.9.2010, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Цитата(cutwater @ 6.9.2010,  19:05)
Цитата(Muerto @  6.9.2010,  18:01 Найти цитируемый пост)
Когда на форуме никто причины не знает, и во всем гугле люди жалуются на подобную проблему без ответа,
Я не собираюсь тратить больше времени чем потратил на это.
если бы я линукс с нуля ставил я ещё понимаю, а так один хер знает что там напихали, и почему оно не пашет мне никто не скажет 


/dev/head /dev/hands

Ну тебе повезло, как родился так со знаниями php,  и управлением серверов и тп.

Это сообщение отредактировал(а) Muerto - 6.9.2010, 19:14


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Обалдеть, не установить на линукс апач и php  smile 
PM WWW Skype   Вверх
Muerto
Дата 6.9.2010, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Цитата(SneG0K @ 6.9.2010,  19:13)
Обалдеть, не установить на линукс апач и php  smile

Это ты кому?
 у вас тут мания виличия о обсирания ? о великие ?



--------------------
user posted image
PM MAIL   Вверх
cutwater
Дата 6.9.2010, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



Цитата(Muerto @  6.9.2010,  18:12 Найти цитируемый пост)
вот те Php.ini


казалось бы при чем тут php.ini к .htaccess ?


Цитата(Muerto @  6.9.2010,  17:32 Найти цитируемый пост)
например в той сборке что у меня htaccess не пашет!


Вам к этому больше нечего добавить?

@see http://www.rsdn.ru/Info/Howtoask.xml


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(Muerto @  6.9.2010,  18:12 Найти цитируемый пост)
Ну тебе повезло, как родился так со знаниями php,  и управлением серверов и тп.

Он родился с левой и правой рукой, а еще с головой.
Цитата(Muerto @  6.9.2010,  18:14 Найти цитируемый пост)
Это ты кому?

"тыкать" друзьям свои будешь!
Цитата(Muerto @  6.9.2010,  18:14 Найти цитируемый пост)
у вас тут мания виличия о обсирания ? о великие ?

Думаешь, тут пишут люди тупее тебя? Когда тебе что-то говорят, прислушивайся, а не корчи из себя неизвестно что!
PM WWW Skype   Вверх
cutwater
Дата 6.9.2010, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



Цитата(Muerto @  6.9.2010,  18:14 Найти цитируемый пост)
Это ты кому?
 у вас тут мания виличия о обсирания ? о великие ?


Кто виноват, ести ТЫ ниасилил?


Да вы хам, сударь. На ты вам никто обращаться не разрешал. Учитесь уважению, общению в интернетах, правильной реакции на ответы вам.
И читайте ссылку что я дал выше.



--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(cutwater @  6.9.2010,  18:15 Найти цитируемый пост)
казалось бы при чем тут php.ini к .htaccess ?

 У него наверное .htaccess на nginx не работает и никто не знает почему!
PM WWW Skype   Вверх
Muerto
Дата 6.9.2010, 19:24 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Да вы ещё убейте за то что я вас в php.ini послал а не в httpd.conf или ещё куда то. (кстати htaccess уже пашет, благо есть норм форумы ещё)
Тема закрыта, форум флудеров, нефига по делу не скажут не помогут, только срач и флуд

Это сообщение отредактировал(а) Muerto - 6.9.2010, 19:30


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 19:33 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Цитата(Muerto @  6.9.2010,  18:24 Найти цитируемый пост)
за то что я вас в php.ini послал

Нас еще и послали smile 
PM WWW Skype   Вверх
cutwater
Дата 6.9.2010, 19:43 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



Цитата(SneG0K @  6.9.2010,  18:33 Найти цитируемый пост)
Нас еще и послали smile  


Да уж... надо открывать на форуме заповедник особо адекватных людей. =)


--------------------
user posted image
PM MAIL   Вверх
Muerto
Дата 6.9.2010, 19:44 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Вот ваше истинное лицо!
Человек возможно плохо знает php, а вы его идиотом обзывайте, ну-ну
user posted image
Дружелюбный форум...
Насколько я помню это раздел общих вопросов а не профи...


--------------------
user posted image
PM MAIL   Вверх
cutwater
Дата 6.9.2010, 19:46 (ссылка) |  (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 592
Регистрация: 24.6.2008

Репутация: 1
Всего: 10



Muerto, что ж у нас приличный форум, обстоятельства не позволяли сказать это как бы при всех. А давно хотелось. Если бы Вы были не настолько глупы, и умели осознавать свои ошибки, возможно были бы более успешны и в изучении php. Вас же никто не винит за "незнание", но за ваше отношение.


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Muerto, если человек плохо знает PHP, то какого хрена он не слушает более опытных людей?
У меня бабушки такие под подъездом сидят, то нихрена не знаю, но считают что самые опытныеsmile
PM WWW Skype   Вверх
Muerto
Дата 6.9.2010, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Если вы почитайте ваши ответы мне, то вы увидите что вы мне информативных ответов не даете, а только говорите :
какой я тупой, плохой, и что я нифига не понимаю, а мы тут такие крутые, и умные, и все знаем, неужели не видно с наших слов что мы все знаем и как нужно делать?

А вы знайте? не видно! пока что 95% ваших сообщений это само хваление и наезд на человека который не разу и не утверждал что он профи
Кстати это относиться к двум ораторам выше меня, другие как правило отвечали по делу и с примерами


--------------------
user posted image
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



Вам уже давно ответили, что вы пишете кривой велосипед и предложили посмотреть уже готовые классы, а вы все продолжаете утверждать, что "длиннее" у вас, даже не глянув на другие реализации.

Добавлено через 1 минуту и 49 секунд
Окей, даже если "два оратора выше" не дали информативных ответов, то остальные участники дискуссии уже давно привели факты с примерами и все равно для вас этого было мало!
PM WWW Skype   Вверх
gta4kv
Дата 6.9.2010, 20:01 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Walking around mad.
***


Профиль
Группа: Завсегдатай
Сообщений: 1868
Регистрация: 25.7.2006

Репутация: 21
Всего: 91



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

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

Это сообщение отредактировал(а) gta4kv - 6.9.2010, 20:03
PM MAIL   Вверх
SneG0K
Дата 6.9.2010, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

Репутация: 7
Всего: 54



gta4kv, ты прав. Действительно что-то я разошелся. 
Muerto, извини, ты к этому еще и сам дойдешь.
PM WWW Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2648 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.