<MyRusakov.ru />

PHP и MySQL с Нуля до Гуру 2.0

PHP и MySQL с Нуля до Гуру 2.0

Данный курс научит Вас программировать на самом популярном Web-языке в мире - PHP. Курс состоит из 11 разделов, в которых с нуля рассказывается и показывается процесс написания различных скриптов на PHP.

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

Почти к каждому уроку идут упражнения.

Просмотрев данный курс, Вы сможете создавать абсолютно любые PHP-сайты любой сложности.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

В чем плюс такого способа.
05.11.2012 16:30:24 В чем плюс такого способа. Сообщение #1
Fabos

Fabos

Новичок

Новичок

Дата регистрации:
05.11.2012 11:50:32

Сообщений: 8

Высмотрел на одной из cms.
$arguments = array('username'=>$una); $result = $db->Query("INSERT INTO ... VALUES ('{username}')", $arguments);

В чем плюс такого способа, инъекции тд. Как по защите, лучше?
Профиль Ответить
05.11.2012 16:45:57 В чем плюс такого способа. Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Это совершенно бессмысленный отрывок. Что за $db? Что за метод Query(), что внутри этого метода?
Профиль Ответить
05.11.2012 18:03:58 В чем плюс такого способа. Сообщение #3
Fabos

Fabos

Новичок

Новичок

Дата регистрации:
05.11.2012 11:50:32

Сообщений: 8

$db-подключение к бд.
public function Query($sql, $data = array()) {
$sql = $this->query_process($sql, $data);
$this->count_query++;
$this->ResetError();
$this->sql = $sql;
$xtime = microtime();
$this->result = @mysql_query($this->sql, $this->mysql_link);
// start the analysis
if (TRUE === $this->result) { // simply result
$return = TRUE; // successfully (for example: INSERT INTO ...)
} else if (FALSE === $this->result) {
$this->SetError();
$return = FALSE; // error occured (for example: syntax error)
}
else // complex result
{
$num_result = mysql_num_rows($this->result);

switch( $num_result )
{
case 0:
$return = NULL; // return NULL rows
break;
case 1: // return one row ...
if(1 != mysql_num_fields( $this->result))
{
$return = array();
while( $obj = mysql_fetch_object($this->result)) array_push($return, $obj);
}
else
{
$row = mysql_fetch_row($this->result); // or as single value
$return = $row[0];
}
break;
default:
$return = array();
while( $obj = mysql_fetch_object($this->result)) array_push($return, $obj);
}
}
$ytime = microtime();
$this->delta += array_sum(explode(' ',$ytime)) - array_sum(explode(' ',$xtime));

return $return;
}
Профиль Ответить
05.11.2012 18:28:16 В чем плюс такого способа. Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Здесь нет плюсов, это просто более удобный способ отправки запросов к базе данных. Самый обычный фреймворк. Никакой защиты я здесь не увидел, но она должна быть, возможно, в других методах данного класса.
Профиль Ответить
05.11.2012 18:39:10 В чем плюс такого способа. Сообщение #5
Fabos

Fabos

Новичок

Новичок

Дата регистрации:
05.11.2012 11:50:32

Сообщений: 8

Не по теме...
Инъекции
Проверяю присланные посты($_POST..), на содержание того чего должны содержать. Как еще можно сделать инъекцию, обойти эту проверку?
Профиль Ответить
05.11.2012 18:45:20 В чем плюс такого способа. Сообщение #6
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

htmlspecialchars() используйте, и уже 99% проблем уйдут. А если Вы ещё будете проверять корректность данных через регулярные выражения, то будет ещё лучше.
Профиль Ответить
05.11.2012 19:12:25 В чем плюс такого способа. Сообщение #7
Fabos

Fabos

Новичок

Новичок

Дата регистрации:
05.11.2012 11:50:32

Сообщений: 8

Спасибо.
Профиль Ответить