Помогите 'расшифровать' код

dimagolov

Новичок
кстати, а не маразм ли заменять ? на %s чтобы сделать потом vsprintf вместо того, чтобы сразу заменить ? на данные? или я чего-то пропустил?
 

alexander.pro

Новичок
Ну это же для работы с MySQL, значит для защиты от инъекции.

-~{}~ 18.04.09 22:49:

dimagolov Нее я больше не использую vsprintf
 

Фанат

oncle terrible
Команда форума
если ты не используешь vsprintf, то для чего тогда эта замена ? на %s?
и какое отношение имеют символы символов <html> <php> к SQL?
ты хоть минимально понимаешь, что делает этот твой код? Похоже, что нет

-~{}~ 18.04.09 22:58:

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

alexander.pro

Новичок
Хорошо начну с самого начала.
Нашел статью практическое применение ООП в PHP5, на основе её решился написать свой класс.

PHP:
<?php
   class MySQL_Entry{
  	private $connected;
  	private $result;
  	private $query;
  	private $define = FALSE;
  	public function __construct($myhost, $myname, $mypass, $mydata){
  		if ($this->define == FALSE){
  			$this->connected = mysql_connect($myhost, $myname, $mypass);
  			mysql_select_db($mydata, $this->connected) or die('Error_Select_Data_Base');
  			$this->define = TRUE;
  		}
  	        else
  	        {
  	    	  die('Close_join');
  	        }
  	}

  	public function Disconnect(){
                mysql_close($this->connected);
                  unset($this->connected);
                    $this->define = FALSE;
        }

  	public function QuerySQL(){
  		if ($this->connected){
  			$this->result = mysql_query($this->query,$this->connected);
  		}
  	    return $this->result;

  	}


  	public function GetConnected(){
  		return $this->connected;
  	}

  }
?>
Конструктор создает соединение с базой данных
Метод 'Disconnect' убивает соединение с базой
Метод 'QuerySQL' при наличии соединения передает запрос базе, именно для него я хочу написать код защиты от инъекций.
Вышеописанный метод 'FixedSQL' лишь жалкая попытка это осуществить.

-~{}~ 19.04.09 00:24:

Появилась идея в метод QuerySQL добавить строку $this->result = mysql_real_escape_string($this->query, $this->connected)
 

Фанат

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

-~{}~ 19.04.09 00:35:

второе. надо хоть чуть-чуть понимать, что ты делаешь.
команда mysql_real_escape_string($this->query не имеет ни малейшего смысла.
ну хоть чуть-чуть.
 

alexander.pro

Новичок
http://webteach.ru/2008/08/13/zashhishhaemsya-ot-sql-inekcij/

-~{}~ 19.04.09 00:42:

Автор оригинала: *****
первое, что надо запомнить. никакого кода для защиты от инъекций не нужно.

-~{}~ 19.04.09 00:35:

второе. надо хоть чуть-чуть понимать, что ты делаешь.
команда mysql_real_escape_string($this->query не имеет ни малейшего смысла.
ну хоть чуть-чуть.
А чего тут непонятного... Существует множество классов аналогичных моему, да и что не понимать (класс имеет методы - подключить, отключить, послать команду), пусть даже он не дописан до конца, всё равно понятно.
 

Фанат

oncle terrible
Команда форума
при чем здесь класс? при чем здесь подключить-отключить? речь о конкретной строчке.
что от чего ты собрался защищать, прогоняя весь запрос через mysql_real_escape_string? что это за идиотское действие? почему ты не понимаешь его идиотизма? даже по той дебильной ссылке, которую ты привел, не написано целиком весь запрос пихать
 

Фанат

oncle terrible
Команда форума
я предлагаю (уже в пятый раз, наверное), чтобы ты совершил какое-нибудь осмысленное действие. все равно какое. но чтобы оно было результатом чтения и осмысления информации. а не метания наобум.

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