Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как перехватить html и php коды, как проигнорировать и очистить 
:(
    Опции темы
ilya9339
Дата 23.2.2012, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 7.2.2012

Репутация: нет
Всего: нет



Доброго времени суток, есть такой вопрос, как перехватить html и php коды которые отправлены формой.
Как их подчистить или проигнорировать, регулярным выражением или <cobe>? или есть  какая-то библиотека?

Это сообщение отредактировал(а) ilya9339 - 23.2.2012, 17:47
PM MAIL   Вверх
Pfailed
Дата 23.2.2012, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 2
Всего: 39



Куда они отправлены?


--------------------
PM MAIL   Вверх
ilya9339
Дата 23.2.2012, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 7.2.2012

Репутация: нет
Всего: нет



Есть форма, она заполняется текстом отправляется в perl скрипт, который в последствии должен записать данные в БД. 

Это сообщение отредактировал(а) ilya9339 - 23.2.2012, 17:56
PM MAIL   Вверх
Pfailed
Дата 24.2.2012, 05:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 2
Всего: 39



Покажите код perl скрипта


--------------------
PM MAIL   Вверх
ilya9339
Дата 24.2.2012, 06:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 7.2.2012

Репутация: нет
Всего: нет



Функция выглядит вот так
Код

sub newSection {
    my $html1=<<HTML1;
    <FORM action="$DATA{'URL_SITE'}cgi-bin/forum.pl" method="POST">
    <INPUT type="submit" name="newSection" value="Новый Раздел" class="newSection">
    </FORM>
HTML1
    my $html2=<<HTML2;
    <center>
    <form action="$DATA{'URL_SITE'}cgi-bin/forum.pl" method="POST">
    <table>
    <tr>
    <td>Название</td>
    <td><input type="text" name="nameSection" maxlength="16" placeholder="введите название" class="nameSection"></td>
    </tr><tr>
    <td>Позиция</td>
    <td><input type="text" name="sectionPosition" maxlength="10" placeholder="введите позицию" class="sectionPosition"></td>
    </tr><tr>
    <td><input type="submit" name="createSection" value="Создать" class="createSection"></td>
    <td><a href="$DATA{'URL_SITE'}cgi-bin/forum.pl" class="newSection">Отмена</a></td>
    </tr>
    </table>
    </form>
    </center>
HTML2
  if (!defined(param("newSection")) and !defined(param("createSection"))) {
    print $html1;
  }
  elsif (defined(param("newSection"))) {
    print "<center><b>Новый раздел:</b></center>";
    print $html2;
  }
  elsif (defined(param("createSection"))) {
    my $name = param("nameSection");
    my $position = param("sectionPosition");
    my $ds = 'DBI:mysql:' . $DATA{'DB'} . ':' . $DATA{'PASSW'};
    my $db = DBI->connect($ds, $DATA{'USER'}, $DATA{'PASSW'});
    if (!$db) {
      print "$DATA{'C-T'}";
      print "Ошибка соеденения с БД";
      exit();
    }
    $db->do("SET NAMES utf8");
    my $checkSection = $db->prepare("SELECT id_section FROM section WHERE name='$name'");
    $checkSection->execute() or die $db->errstr;
    if ($checkSection->err) {
      print "$DATA{'C-T'}";
      print "1 Ошибка выборки из БД";
      exit();
    }
    if ($checkSection->rows() == 1) {
      print "<b>Раздел с таким названием уже существует!</b>";
      print $html2;
      $checkSection->finish();
      $db->disconnect();
    }
    else {
      $db->do("INSERT INTO section (name, position) VALUES ('$name', $position)");
      $db->do("INSERT INTO section_access (id_status) VALUES (1)");
      print "<center><b></b>Раздел успешно создан!</b></center>";
      $checkSection->finish();
      $db->disconnect();
    }
  }
}

PM MAIL   Вверх
Pfailed
Дата 24.2.2012, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 2
Всего: 39



Ну вот я вижу вы получаете функцией param() то, что отправлено из формы. А что еще нужно?



--------------------
PM MAIL   Вверх
ilya9339
Дата 24.2.2012, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 7.2.2012

Репутация: нет
Всего: нет



Допустим param() вернула следующий текст : "Ссылка: <a href="index.pl"><?php echo("Hello") ?></a>" как мне эту строку подчистить от php скрипта и html, или как в последствии распечатать это проигнорировав  php и html?
PM MAIL   Вверх
krypt3r
Дата 24.2.2012, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 9.6.2009

Репутация: нет
Всего: 16



Цитата

"Ссылка: <a href="index.pl"><?php echo("Hello") ?></a>"

В таком виде и выведется в браузер, без обработки PHP-интерпретатором. Точнее, вы это увидите при просмотре HTML-кода, в самом браузере на этом месте будет пусто

Это сообщение отредактировал(а) krypt3r - 24.2.2012, 09:40
PM MAIL   Вверх
Pfailed
Дата 24.2.2012, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 19.7.2009

Репутация: 2
Всего: 39



Код

$text = param("form");
$text =~ s/<[^>]*(?:>|$)/ /g; # убрать все теги



--------------------
PM MAIL   Вверх
yazu
Дата 24.2.2012, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 14.9.2011

Репутация: нет
Всего: нет



Perl Cookbook: Recipe 20.6. Extracting or Removing HTML Tags 

CPAN

Stackoverflow
PM MAIL   Вверх
ilya9339
Дата 25.2.2012, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 7.2.2012

Репутация: нет
Всего: нет



Всем спасибо, за помощь.
PM MAIL   Вверх
chorny
Дата 3.3.2012, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 27.7.2009
Где: Молдавия

Репутация: нет
Всего: нет



1. Использовать placeholders для добавления данных в БД

2. При выводе данных (в HTML) делать HTML escape.

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: CGI программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", качать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: разработка для Web | Следующая тема »


 




[ Время генерации скрипта: 0.0804 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.