Недавно я добавил раздел комментариев в блог. Codeigniter говорит, что всегда следует избегать данных, прежде чем поместить их в Db (у меня есть xss clean в полном объеме). Некоторые люди говорят, что все активные операции записи ускользают. Я трачу свое время на использование функции ниже?
Используя нижеприведенную функцию, я убегаю от данных, но все это выходит в скрытое представление. Как вы «не убегаете», чтобы он был доступен для чтения без «?»? Я не хочу использовать регулярное выражение для удаления каждого '' в случае его использования в предложении
Я думаю, мой реальный вопрос: активные записи всегда сбежали или нет?
т.е.: Автор выходит «Имя»
function comment_insert() { $data = array ( 'entry_id' => $this->db->escape($this->input->post('entry_id')), 'ip' => $this->db->escape($this->input->post('ip')), 'date' => $this->input->post('date'), 'comment' => $this->db->escape($this->input->post('comment')), 'author' => $this->db->escape($this->input->post('author')), 'email' => $this->db->escape($this->input->post('email')) ); $this->form_validation->set_rules('ip', 'IP', 'required|trim|valid_ip');//check $this->form_validation->set_rules('entry_id', 'Entry ID', 'required|trim|numeric'); $this->form_validation->set_rules('date', 'Date', 'required|trim'); $this->form_validation->set_rules('comment', 'Comment', 'required|trim|max_length[600]'); $this->form_validation->set_rules('author', 'Name', 'required|trim|alpha_dash'); $this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email'); if ($this->form_validation->run() == TRUE) { $this->db->limit(1); $this->db->insert('comments', $data); redirect('main/blog_view/'.$_POST['entry_id']); } else { redirect('main/blog_view/'.$_POST['entry_id']); } }
спасибо
Согласно Руководству пользователя CodeIgniter для функций Active Record в классе базы данных: http://codeigniter.com/user_guide/database/active_record.html
Помимо простоты, основным преимуществом использования функций Active Record является то, что он позволяет создавать независимые от базы данных приложения, поскольку синтаксис запроса генерируется каждым адаптером базы данных. Он также обеспечивает более безопасные запросы, так как эти значения автоматически выходят из системы. (выделено мной)
Так что да, вы тратите свое время. Пока вы используете Active Record, ваши данные автоматически экранируются.