Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
  • Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Веб [FIX]веб исходники лаунчера сашки на PDO

Норм?

  • Да

    11 голосов 68,8%
  • Нет

    5 голосов 31,3%

  • Опрос закрыт .
Статус
Закрыто для дальнейших ответов.

Evan

Старожил
Пользователь
Баллы
123
Статус: Beta test
Данная веб часть работает с исходниками от alexandrage тут http://www.rubukkit.org/threads/sashok724-launcher.42883/
Переписал веб исходники лаунчера сашки, что нового?
  1. Переписал всё вместо mysql на PDO
  2. Config теперь имеет вид более красивее ( к большому огорчению на время beta теста все перемные подобные $db_bla_bla не стоит убирать )
  3. Сделал авторизацию для punBB
Вроде бы всё. В будущем добавлю несколько способов регистрации к движкам без соли и заморочек.
О всех багах писать сюда.
Download:
 
Последнее редактирование:
То чувство, когда скоро выйдет лаунчер сашка v3...
 
Наро не знаю даже что и сказать я в PDO ноль) ну за работу лойс)
 
Что такое PUNBB? :confused:
Зачем PDO, шкальники и так не знают ни чего кроме MySQL и хостингера :3
А что такое PDO?
punBB один из форумных движков. для меня он очень удобен и практичен в освоении :3
Что такое PUNBB? :confused:
Зачем PDO, шкальники и так не знают ни чего кроме MySQL и хостингера :3
А что такое PDO?
а выложил по тому что я добрый нях :3
 
Может не стоило пихать в архив с веб-обвязкой аж 3 мк-клиента? Архив до сотни метров раздулся.
Не уверен, кому стоит адресовать следующие строчки, сашку с его обвязкой или топикстартеру, однако..

checkserver.php - опечатка, $result -> execuet
connect.php - юзается старый mysql_*, забыли вырезать?
loger.php (правильнее было бы logger) - три забавных функции, которые маскируются под класс. Смотрится нелепо.. Стоило бы взять готовый класс, а не изобретать свой велосипед.
launcher.php - по-прежнему xor'ит хэши файлов, используя "секретный ключ", хотя смысла в этом никакого нет. Только упрощает его (ключа) получение, даже если лаунчер по безумному обфусицирован.

Во всех файлах переменные проходят через htmlspecialchars, зачем? Толку - 0, оно предназначено для защиты от xss. Обо всём остальном позаботится PDO.
И стоило ли мучаться со всеми $configs['colum_name'] переменными в запросах? Хоть кому-то когда-либо понадобилось сменить название колонки в базе? А читабельность кода от этого сильно пострадала.
Оптимальными вариантом было бы написание класса-обёртки над PDO, с заменой всех предопределённых названий столбцов по шаблонам. Туда-же можно было и префикс для названия таблиц засунуть.
 
Может не стоило пихать в архив с веб-обвязкой аж 3 мк-клиента? Архив до сотни метров раздулся.
Не уверен, кому стоит адресовать следующие строчки, сашку с его обвязкой или топикстартеру, однако..

checkserver.php - опечатка, $result -> execuet
connect.php - юзается старый mysql_*, забыли вырезать?
loger.php (правильнее было бы logger) - три забавных функции, которые маскируются под класс. Смотрится нелепо.. Стоило бы взять готовый класс, а не изобретать свой велосипед.
launcher.php - по-прежнему xor'ит хэши файлов, используя "секретный ключ", хотя смысла в этом никакого нет. Только упрощает его (ключа) получение, даже если лаунчер по безумному обфусицирован.

Во всех файлах переменные проходят через htmlspecialchars, зачем? Толку - 0, оно предназначено для защиты от xss. Обо всём остальном позаботится PDO.
И стоило ли мучаться со всеми $configs['colum_name'] переменными в запросах? Хоть кому-то когда-либо понадобилось сменить название колонки в базе? А читабельность кода от этого сильно пострадала.
Оптимальными вариантом было бы написание класса-обёртки над PDO, с заменой всех предопределённых названий столбцов по шаблонам. Туда-же можно было и префикс для названия таблиц засунуть.
вырезать mysql_ не забыл, делать ну очень великую вещь я не собираюсь, я лишь переписал mysql на pdo. logger.php вообще не мой. а ошибки я сейчас изменю. htmlspecialchars сейчас уберу. использовал $configs и за того что меня не привлекает вид переменных подобных $db_user, $db_pass. всё делал я лично для себя.
 
я посмотрел код, хз кому как, но по моему это вынос мозга)
при переводе на PDO можно было раза в три уменьшить количество кода в файле launcher.php используя заранее подготовленные запросы в файле конфига
к тому-же после такого можно было бы точно знать где что расположено и наглядно улучшить читаемость кода

я где-то тут выкладывал переделанную панель добавления PEX через сайт в которой использовал PDO
вот немножко кода оттуда
PHP:
$dbhost      =    "localhost";                //ip БД
$database    =    "demo";                    //имя базы данных
$dbuser       =    "test";                    //юзер базы данных
$dbpass       =    "test";                    //пароль БД
$permentiny    =    "permissions_entity";        //таблица префиксов
$permlist       =    "permlist";                    //таблица со списком полномочий

/*Всё что ниже не трогать*/
$conn = new PDO("mysql:host=$dbhost;dbname=$database", $dbuser, $dbpass);
$conn->exec('SET CHARACTER SET utf8');
$conn->exec('SET NAMES utf8');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$plist_sel        = $conn->prepare("SELECT * FROM `$permlist`    ORDER BY `title`");//выборка полномочий
$group_create    = $conn->prepare("INSERT INTO    `$permentiny`    (`name`, `prefix`, `suffix`) VALUES (?, ?, ?)");//добавление группы
$DBH = null;

вот кусок где используются эти же запросы

PHP:
include("connect.php");
$name = $_POST['name'];
$pref = $_POST['pref'];
$suff = $_POST['suff'];
if (empty($name))                    {die ("Необходимо ввести название группы!");}
elseif    (eregi("[^a-z0-9_]",$name))    {die ("Название группы не корректно!</br>Название может быть только из символов латиницы и цифер от 0 до 9");}    //проверка на русские буквы в нике
else
    {
        $group_create->bindParam(1, $name);
        $group_create->bindParam(2, $pref);
        $group_create->bindParam(3, $suff);
        try {$group_create->execute();}
        catch(PDOException $e){echo 'Ошибка: ' . $e->getMessage();}
    }

PHP:
$plist_sel->execute();
echo"<select id='perms'>\n";
while($row = $plist_sel->fetch()){
$perm        =    $row["permission"];
$perm_title    =    $row["title"];
echo"<option value='$perm'>".$perm_title."</option>\n";
}
echo"</select>\n";

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

использование неименованых шаблонов в PDO оказалось для меня очень удобной возможностью
 
Последнее редактирование:
я посмотрел код, хз кому как, но по моему это вынос мозга)
при переводе на PDO можно было раза в три уменьшить количество кода в файле launcher.php используя заранее подготовленные запросы в файле конфига
к тому-же после такого можно было бы точно знать где что расположено и наглядно улучшить читаемость кода

я где-то тут выкладывал переделанную панель добавления PEX через сайт в которой использовал PDO
вот немножко кода оттуда
PHP:
$dbhost      =    "localhost";                //ip БД
$database    =    "demo";                    //имя базы данных
$dbuser       =    "test";                    //юзер базы данных
$dbpass       =    "test";                    //пароль БД
$permentiny    =    "permissions_entity";        //таблица префиксов
$permlist       =    "permlist";                    //таблица со списком полномочий

/*Всё что ниже не трогать*/
$conn = new PDO("mysql:host=$dbhost;dbname=$database", $dbuser, $dbpass);
$conn->exec('SET CHARACTER SET utf8');
$conn->exec('SET NAMES utf8');
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$plist_sel        = $conn->prepare("SELECT * FROM `$permlist`    ORDER BY `title`");//выборка полномочий
$group_create    = $conn->prepare("INSERT INTO    `$permentiny`    (`name`, `prefix`, `suffix`) VALUES (?, ?, ?)");//добавление группы
$DBH = null;

вот кусок где используются эти же запросы

PHP:
include("connect.php");
$name = $_POST['name'];
$pref = $_POST['pref'];
$suff = $_POST['suff'];
if (empty($name))                    {die ("Необходимо ввести название группы!");}
elseif    (eregi("[^a-z0-9_]",$name))    {die ("Название группы не корректно!</br>Название может быть только из символов латиницы и цифер от 0 до 9");}    //проверка на русские буквы в нике
else
    {
        $group_create->bindParam(1, $name);
        $group_create->bindParam(2, $pref);
        $group_create->bindParam(3, $suff);
        try {$group_create->execute();}
        catch(PDOException $e){echo 'Ошибка: ' . $e->getMessage();}
    }

PHP:
$plist_sel->execute();
echo"<select id='perms'>\n";
while($row = $plist_sel->fetch()){
$perm        =    $row["permission"];
$perm_title    =    $row["title"];
echo"<option value='$perm'>".$perm_title."</option>\n";
}
echo"</select>\n";

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

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

Поделиться этой страницей

Назад
Верх