Автор Тема: = + и т.п. - это, оказывается, проблема!  (Прочитано 6219 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DimoninG

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 45
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.makandus.h12.ru/
Проблема такая: есть сайт про игры. Для добавления новых страниц я написал скрипт. Он создает новые файлы, проставляет ссылки и т.п. Но вот что любопытно (это и есть проблема): если написать в поле ввода (там, где должна быть статья или читы) текст вроде "тогда вам дадут +2 к ловкости и она станет = 10", то получаем, что символ 2 будет написан два раза, а после символа "равно" текст не будет показан (и символ тоже).
Я понимаю, что они передаются как "системные" (разделители и т.п.), только это знание мне не помогает. Мето передачи данных: POST (т.е. передаются огромные тексты). Скрипт, ясно - на Perl.

Как "разрешить" передачу таких символов?

PS Вот даже тут... я написал эти символы... и ничего не произошло... правда форум на php... может на Perl такое нельзя?..

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
= + и т.п. - это, оказывается, проблема!
« Ответ #1 : 12 Июня 2004, 15:43:28 »
Цитировать
Вот даже тут... я написал эти символы... и ничего не произошло... правда форум на php... может на Perl такое нельзя?..

Скорее проблема в том как вы там обрабатываете передаваемые данные, а вовсе не в перле или POSTе.
 в исканиях.

Оффлайн DimoninG

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 45
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.makandus.h12.ru/
= + и т.п. - это, оказывается, проблема!
« Ответ #2 : 13 Июня 2004, 18:41:00 »
print FILE_view2 "

$ff{viewname}



\\n $ff{viewtext}\\n";

- я просто записываю текст, полученный из поля ввода в файл. И все! В чем может быть тогда ошибка?

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
= + и т.п. - это, оказывается, проблема!
« Ответ #3 : 13 Июня 2004, 20:07:00 »
Цитировать
DimoninG:
$ff{viewname}

Как ты получаешь этот хеш?
Ну к чему все это, лучше бы водки выпили...

Оффлайн DimoninG

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 45
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.makandus.h12.ru/
= + и т.п. - это, оказывается, проблема!
« Ответ #4 : 13 Июня 2004, 20:22:29 »
Вот так:

   read (STDIN, $form_data, $ENV{\'CONTENT_LENGTH\'});
   $form_data =~ s/%(..)/pack ("C", hex($1))/eg;
   $form_data =~ tr/+/ /;
   @pairs = split (/&/, $form_data);

   $i=0;   
   foreach $pair (@pairs)
   {
      ($name, $value) = split (/=/, $pair);
      $ff{$name}=$value;
   }

Содрано с "умной" книжки и что делает я знаю лишь приблизительно.

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
= + и т.п. - это, оказывается, проблема!
« Ответ #5 : 13 Июня 2004, 20:30:02 »
DimoninG
Этот код не рабочий.

Вот, что тебе нужно:
perldoc CGI

ps: В прошлом, твоём топике, я уже давал все необходимые линки.
0 OK, 0:1

Оффлайн DimoninG

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 45
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.makandus.h12.ru/
= + и т.п. - это, оказывается, проблема!
« Ответ #6 : 13 Июня 2004, 21:20:11 »
Ну почему ты не написал код? Я спрашиваю на форуме как раз для того, чтобы не рыться в документации!

PS Кстати - код-то работает! В чем там дело-то?

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
= + и т.п. - это, оказывается, проблема!
« Ответ #7 : 13 Июня 2004, 21:52:17 »
DimoninG, а форум существует как раз для того, чтобы научить рыться в этой самой документации.
А если не хочешь рыться. Есть прекрасный форум "поиск и изготовление скриптов". Там тебе за умеренную плату напишут код. Чтоб ты не рылся в документации.
Цитировать
DimoninG:
Кстати - код-то работает! В чем там дело-то?

В том, что не работает:)
ЗЫ. А вот этот кстати код, был написан в этом форуме тыщу раз.
Ну к чему все это, лучше бы водки выпили...

Оффлайн DimoninG

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 45
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.makandus.h12.ru/
= + и т.п. - это, оказывается, проблема!
« Ответ #8 : 14 Июня 2004, 02:13:00 »
Тогда объясните мне, что такое этот "perldoc" и где его можно найти?

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
= + и т.п. - это, оказывается, проблема!
« Ответ #9 : 14 Июня 2004, 02:27:53 »
Цитировать
PS Кстати - код-то работает! В чем там дело-то?

Гы-гы, в том то и дело КАК ОН РАБОТАЕТ ;)

$form_data =~ s/%(..)/pack ("C", hex($1))/eg;
$form_data =~ tr/+/ /;
@pairs = split (/&/, $form_data);

тут надо бы порядок действий изменить ;)
да и вариант %(..) <- не есть гуд
 в исканиях.

Оффлайн Green Kakadu

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2757
  • +1/-0
  • 0
    • Просмотр профиля
    • http://gnezdo.webscript.ru
= + и т.п. - это, оказывается, проблема!
« Ответ #10 : 14 Июня 2004, 02:31:46 »
Цитировать
что такое этот "perldoc" и где его можно найти?

.. ээ, говоря по-простому, почитай документацию модуля CGI ;) и воспользуйся его встроенными ф-циями
 в исканиях.

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
= + и т.п. - это, оказывается, проблема!
« Ответ #11 : 14 Июня 2004, 12:08:11 »
DimoninG
Цитировать
Кстати - код-то работает! В чем там дело-то?

Ну и что с того, что он работает? Если это...
Цитировать
Содрано с "умной" книжки и что делает я знаю лишь приблизительно


Еще почитай про регулярные выражения, что бы знать не "приблизительно", так как, насколько я понимаю, что делают строки в твоем коде:
Цитировать
$form_data =~ tr/+/ /;
($name, $value) = split (/=/, $pair);

Ты вообще не догадываешься...

P.S.

use CGI qw(param);
my $query = new CGI;
my %form_data;
$form_data{\'name_data\'} = $query -> param(\'name_data\');


perldoc - это программа которая выводит документацию по функциям и модулям Perl. Как подсказывает практика, эта программа тебе понадобится не один раз...

Оффлайн DimoninG

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 45
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.makandus.h12.ru/
= + и т.п. - это, оказывается, проблема!
« Ответ #12 : 14 Июня 2004, 20:08:15 »
use CGI qw/:standard/;
$login=param(\'login\');

где \'login\' - имя поля ввода, а $login - Сами знаете что...

И вопрос: сразу это было не написать, а?! Либо тут один лентяи... либо: "Мы не будем тратить наше драгоценное время на какого-то <далее неразборчиво>". Ужасно, господа, ужасно! Не хотите вы помогать, не хотите... Берите пример с gamedev.ru/forum - отличные, отзывчивые люди...

P.S. А форум для того и форум, чтобы ПОМОГАЛИ, а не посылали к документации.

P.S. И, мать вашу, код, который я написал - РАБОЧИЙ! Просто он из текстовой строки вырезает нужные фрагменты, но машина - не человек и режет так, как сказали. "Не рабочий", блин... Не подходящий к данной задачи и "рабочий" - это абсолютно разные вещи, господа!

Оффлайн glebushka

  • студент
  • Ветеран
  • *****
  • Сообщений: 944
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.intellectuals.ru
= + и т.п. - это, оказывается, проблема!
« Ответ #13 : 14 Июня 2004, 20:38:52 »
мдя...
без комментариев...
Ну к чему все это, лучше бы водки выпили...

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
= + и т.п. - это, оказывается, проблема!
« Ответ #14 : 14 Июня 2004, 20:47:08 »
DimoninG
Читать документацию, значить понять суть проблемы и решить её самостотельно, тем способом каким тебе нравится.
Чем тебя не устроил мой код? И чем он вообще отличается от того, который тебе кто-то подсказал? Да и вот такое "тупое" передирание из умных книжек, и готовых скриптов, порождает целую армию бездарных программистов, которые мнят себя великими, а по сути написать самостоятельно ничего не могут...
А знаешь какой следующий вопрос у тебя возникнет по той же тематике? Нет? А я знаю: "Как делать upload картинки?", и опять тебя пошлют читать документацию по CGI.

glebushka
[OFF]Да, комментарии тут излишни...[/OFF]

 

Sitemap 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