Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 18.04.2020
Сообщений: 66
1

Превращение спец.символов в их сущности

24.06.2020, 17:21. Просмотров 824. Ответов 4
Метки нет (Все метки)

Всем привет.
Создал рабочую форму редактирования новостей в БД.
Также попытался добавить в код задачу: преобразовывать все входящие спецсимволы. Но, все равно, в БД записываются спец символы.

Помогите, пожалуйста, советом? (подобная конструкция работает в форме создания новости! Но вот в форме редактирования - код не отрабатывает).

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public function edit($slug = NULL) {
 
        $data['title'] = "редактировать новость";
        $data['news_item'] = $this->news_model->getNews($slug);
 
        $data['title_news'] = (isset($data['news_item']['title'])) ? $data['news_item']['title'] : "";
        $data['content_news'] = (isset($data['news_item']['text'])) ? $data['news_item']['text'] : "";
        $data['slug_news'] = (isset($data['news_item']['slug'])) ? $data['news_item']['slug'] : "";
 
        if($this->input->post('slug') && $this->input->post('title') && $this->input->post('text')) {
 
 
        $slugFilter = htmlspecialchars($this->input->post('slug'), ENT_QUOTES, 'UTF-8');       ЭТА СТРОКА
        $titleFilter = htmlspecialchars($this->input->post('title'), ENT_QUOTES, 'UTF-8');        ЭТА СТРОКА
        $textFilter = htmlspecialchars($this->input->post('text'), ENT_QUOTES, 'UTF-8');        ЭТА СТРОКА
 
        $slug = $slugFilter;                                                                                                         ЭТА СТРОКА
        $title = $titleFilter;                                                                                                          ЭТА СТРОКА                                                                                                     
        $text = $textFilter;                                                                                                          ЭТА СТРОКА
              
            
            $slug = $this->input->post('slug');
            $title = $this->input->post('title');   
            $text = $this->input->post('text');
 
 
            if($this->news_model->updateNews($slug, $title, $text)) {
 
               echo "Новость успешно отредактирована!";
            }
        }
 
        $this->load->view('templates/header', $data);
        $this->load->view('news/edit', $data);
        $this->load->view('templates/footer');
    }
Спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.06.2020, 17:21
Ответы с готовыми решениями:

Вставка спец символов
Можно ли в бейсике вставить спец символы типа части рамки. Чтобы понять какие символы я хочу...

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

Экранирование спец. символов
Подскажите метод экронирования спец. символов перед тем как записывать в базу данных. В сети...

Создание спец. символов
Делаю математическую программу, в которой формула приходит из интернета и она рисуется более...

4
458 / 344 / 143
Регистрация: 31.08.2019
Сообщений: 935
24.06.2020, 19:38 2
Цитата Сообщение от Serebos Посмотреть сообщение
PHP
17
18
19
20
21
22
23
24
        $slug = $slugFilter;                                                                                                         ЭТА СТРОКА
        $title = $titleFilter;                                                                                                          ЭТА СТРОКА                                                                                                     
        $text = $textFilter;                                                                                                          ЭТА СТРОКА
 
 
            $slug = $this->input->post('slug');
            $title = $this->input->post('title');   
            $text = $this->input->post('text');
Как я понял, сначала переменным присваиваются изменённые значения,
потом значения перезаписываются не изменёнными.

Не по теме:

Если это $this->news_model->updateNews($slug, $title, $text)
реально перезаписывает нужные данные

1
0 / 0 / 0
Регистрация: 18.04.2020
Сообщений: 66
24.06.2020, 22:02  [ТС] 3
спасибо, x_lab. Идею я понял, попробую разобраться сейчас.

Добавлено через 2 часа 19 минут
КОД ЗАРАБОТАЛ! блок с проверкой опустил чуть ниже:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  public function edit($slug = NULL) {
 
        $data['title'] = "редактировать новость";
        $data['news_item'] = $this->news_model->getNews($slug);
        
        $data['title_news'] = (isset($data['news_item']['title'])) ? $data['news_item']['title'] : "";
        $data['content_news'] = (isset($data['news_item']['text'])) ? $data['news_item']['text'] : "";
        $data['slug_news'] = (isset($data['news_item']['slug'])) ? $data['news_item']['slug'] : "";
 
        if($this->input->post('slug') && $this->input->post('title') && $this->input->post('text')) {
            
 
            $slug = $this->input->post('slug');
            $title = $this->input->post('title');   
            $text = $this->input->post('text');
 
        $slugFilter = htmlspecialchars($this->input->post('slug'), ENT_QUOTES, 'UTF-8');
        $titleFilter = htmlspecialchars($this->input->post('title'), ENT_QUOTES, 'UTF-8');
        $textFilter = htmlspecialchars($this->input->post('text'), ENT_QUOTES, 'UTF-8');
 
        $slug = $slugFilter;
        $title = $titleFilter;
        $text = $textFilter;
 
            if($this->news_model->updateNews($slug, $title, $text)) {
 
               echo "Новость успешно отредактирована!";
            }
        }
 
        $this->load->view('templates/header', $data);
        $this->load->view('news/edit', $data);
        $this->load->view('templates/footer');
    }
x_lab, спасибо за обсуждение!
0
458 / 344 / 143
Регистрация: 31.08.2019
Сообщений: 935
24.06.2020, 22:47 4
Лучший ответ Сообщение было отмечено Serebos как решение

Решение

Цитата Сообщение от Serebos Посмотреть сообщение
PHP
13
14
15
16
17
18
19
20
21
22
23
            $slug = $this->input->post('slug');
            $title = $this->input->post('title');   
            $text = $this->input->post('text');
 
        $slugFilter = htmlspecialchars($this->input->post('slug'), ENT_QUOTES, 'UTF-8');
        $titleFilter = htmlspecialchars($this->input->post('title'), ENT_QUOTES, 'UTF-8');
        $textFilter = htmlspecialchars($this->input->post('text'), ENT_QUOTES, 'UTF-8');
 
        $slug = $slugFilter;
        $title = $titleFilter;
        $text = $textFilter;
Это то-же что и просто
PHP
1
2
3
        $slug = htmlspecialchars($this->input->post('slug'), ENT_QUOTES, 'UTF-8');
        $title = htmlspecialchars($this->input->post('title'), ENT_QUOTES, 'UTF-8');
        $text = htmlspecialchars($this->input->post('text'), ENT_QUOTES, 'UTF-8');
1
0 / 0 / 0
Регистрация: 18.04.2020
Сообщений: 66
25.06.2020, 03:34  [ТС] 5
Спасибо, x_lab. Кроме того, такая запись освобождает код от лишнего ненужного наполнения!
Код работает!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.06.2020, 03:34

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Избавление от спец. символов
Проблема такая: Программа парсит xml и вставляет данные в mysql бд. На некоторых xml выдает...

Квотирование спец символов в SQL запросах
Я юзаю select у датасета, кот гружу из XML файла. Очень не хотелось бы морочицца с командами...

Перекодировка из utf в windows-1251. Удаление спец. символов.
Необходимо сформировать xml файл в кодировке windows-1251. Даные для этого xml поступают из БД в...

Как проверить текстовые поля на наличие спец.символов?
У меня в базе что-то (очевидно, в приложении) сбойнуло, и появились строки, поля которых содержат...

Автоматическое преобразование текста в его эквивалент с использованием спец.символов
Хотел бы узнать, если таковой сервис в природе? :) Как, например, здесь надпись "Visor" (Из Apache...

Сервис по преобразованию текстовой записи в ее эквивалент с использованием спец.символов
Хотел бы узнать, если таковой сервис в природе? :) Как, например, здесь надпись "Visor" (Из Apache...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.