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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как расшифровать данные отосланные через форму, значки какие-то -F2%EE%FF%EB%E0+%E- 
:(
    Опции темы
everyone
Дата 11.6.2004, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я perl недавно занимаюсь, перешёл к CGI и столкнулся с проблемой - текст на отличном от английского языка отправляемый из формы кодируется, как я полагаю в mime тип, чтобы не искривлялись данные. При выводе, или сохранении этого текста получается что-то типа "%F1%F2%EE%FF%EB%E0+%EE%EA%EE%". У меня вопрос: Как это расшифровать ? и желательно по-подробнее о шифровании данных, чтобы больше не сталкиваться с подобными проблемами в типах данных отличных от текста.

--------------------
Что написал, то написал (Пилат)
PM ICQ Skype   Вверх
Nobody
Дата 11.6.2004, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



perldoc CGI


--------------------
Алгоритм помещения вопросов на форуме
Выражаем спасибо вот ТАК
Use the Source, Luke!
PM MAIL WWW ICQ   Вверх
everyone
Дата 14.6.2004, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



я смотрел в perldoc --> CGI, но там куча всего, а я по английски понимаю через слово, а в содержании там почему-то smile.gif не написали: "нажми здесь и узнаешь всё про кодирование данных". Ума не приложу, почему не написали? smile.gif

--------------------
Что написал, то написал (Пилат)
PM ICQ Skype   Вверх
Chuck
Дата 14.6.2004, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Сушня
**


Профиль
Группа: Эксперт
Сообщений: 442
Регистрация: 12.12.2003
Где: Узбекистан, Ташке нт

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



Скинь код, что-то я тебя не понимаю....
PM MAIL WWW GTalk   Вверх
korob2001
Дата 14.6.2004, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



Допустим есть форма:
Код

<html>
<head>
 <title>Test</title>
</head>
<body>
<form method="post" action="/cgi-bin/test.pl">
 <b>Ваше имя:</b><input type="text" size="30" name="name"><br>
 <b>Ваша фамилия:</b><input type="test" size="30" name="family">
 <hr>
 <input type="submit" value="Отправить" name="send">
 <input type="reset" value="Очистить">
</form>
</body>
</html>

Теперь напишим скрипт получающий и декодирующий переданные параментры и назовём его test.pl:
Код

#!/usr/bin/perl -w
use strict; # Не обязательно, но желательно
use CGI;  # Подключаем модуль CGI
my $cgi = new CGI; # Создаём объект
my $name = $cgi->param('name'); # Получили и декодировали поле name
my $family = $cgi->param('family'); # Получили и декодировали поле family
# Выводим заголовок
print $cgi->header( -charset => 'Windows-1251' ),
       # Генерим начало страницы с помощью CGI.pm ( следующие 2 строки )
       $cgi->start_html( -title => 'Тест' ),
       $cgi->start_center;

# Если параметры получены, то поприветствуем юзера,
# в противном случае выругаем.;)
if ( $name and $family ) {
       print $cgi->h2("Привет, $name $family!");
} else {
       print $cgi->h2("FUCK! Заполнены не все поля");
}

# Заканчиваем генерить страничку
print $cgi->end_center,
       $cgi->end_html;

exit(0); # Выходим явным образом из программы


Цитата

я смотрел в perldoc --> CGI, но там куча всего, а я по английски понимаю через слово, а в содержании там почему-то  не написали: "нажми здесь и узнаешь всё про кодирование данных". Ума не приложу, почему не написали?

Если есть желание писать CGI программы, то тебе нужно изучить полностью модуль CGI.pm, жизнь станет легче. Ну а если не понимаешь лэнгвич, то скачай отсюда переводы документаций к модулям CGI, GD, LWP, а так же к Регулярным выражениям. Спасибо админу.

Удачи.

Это сообщение отредактировал(а) korob2001 - 14.6.2004, 23:24


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
HalkaR
Дата 15.6.2004, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пуфыстый назгул
****


Профиль
Группа: Экс. модератор
Сообщений: 2132
Регистрация: 8.12.2002
Где: В Москве

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



Код
$nick=~ s/%(..)/pack("c",hex($1))/ge;
Но лучше пользоваться CGI.pm
PM MAIL   Вверх
everyone
Дата 15.6.2004, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я не ел день и не спал ночь, а всё оказалось элементарно просто, ну как всегда
Код

$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;


почти как у HalkaR. И из-за этого я прочитал кучу макулатуры по UTF, вот блин withstupid.gif
Всего лишь упаковать в двоичную структуру hmmm.gif .
--------------------
Что написал, то написал (Пилат)
PM ICQ Skype   Вверх
korob2001
Дата 15.6.2004, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

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



Цитата

Всего лишь упаковать в двоичную структуру

Пользуйся лучше CGI.pm

Это сообщение отредактировал(а) korob2001 - 15.6.2004, 22:24


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
everyone
  Дата 18.6.2004, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата
Пользуйся лучше CGI.pm

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


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

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


 




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


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

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