Forum Webscript.Ru
Программирование => Perl => Тема начата: DimoninG от 12 Июня 2004, 00:04:35
-
Проблема такая: есть сайт про игры. Для добавления новых страниц я написал скрипт. Он создает новые файлы, проставляет ссылки и т.п. Но вот что любопытно (это и есть проблема): если написать в поле ввода (там, где должна быть статья или читы) текст вроде "тогда вам дадут +2 к ловкости и она станет = 10", то получаем, что символ 2 будет написан два раза, а после символа "равно" текст не будет показан (и символ тоже).
Я понимаю, что они передаются как "системные" (разделители и т.п.), только это знание мне не помогает. Мето передачи данных: POST (т.е. передаются огромные тексты). Скрипт, ясно - на Perl.
Как "разрешить" передачу таких символов?
PS Вот даже тут... я написал эти символы... и ничего не произошло... правда форум на php... может на Perl такое нельзя?..
-
Вот даже тут... я написал эти символы... и ничего не произошло... правда форум на php... может на Perl такое нельзя?..
Скорее проблема в том как вы там обрабатываете передаваемые данные, а вовсе не в перле или POSTе.
-
print FILE_view2 "
$ff{viewname}
\\n $ff{viewtext}\\n";
- я просто записываю текст, полученный из поля ввода в файл. И все! В чем может быть тогда ошибка?
-
DimoninG:
$ff{viewname}
Как ты получаешь этот хеш?
-
Вот так:
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;
}
Содрано с "умной" книжки и что делает я знаю лишь приблизительно.
-
DimoninG
Этот код не рабочий.
Вот, что тебе нужно:
perldoc CGI
ps: В прошлом, твоём топике, я уже давал все необходимые линки.
-
Ну почему ты не написал код? Я спрашиваю на форуме как раз для того, чтобы не рыться в документации!
PS Кстати - код-то работает! В чем там дело-то?
-
DimoninG, а форум существует как раз для того, чтобы научить рыться в этой самой документации.
А если не хочешь рыться. Есть прекрасный форум "поиск и изготовление скриптов". Там тебе за умеренную плату напишут код. Чтоб ты не рылся в документации.
DimoninG:
Кстати - код-то работает! В чем там дело-то?
В том, что не работает:)
ЗЫ. А вот этот кстати код, был написан в этом форуме тыщу раз.
-
Тогда объясните мне, что такое этот "perldoc" и где его можно найти?
-
PS Кстати - код-то работает! В чем там дело-то?
Гы-гы, в том то и дело КАК ОН РАБОТАЕТ ;)
$form_data =~ s/%(..)/pack ("C", hex($1))/eg;
$form_data =~ tr/+/ /;
@pairs = split (/&/, $form_data);
тут надо бы порядок действий изменить ;)
да и вариант %(..) <- не есть гуд
-
что такое этот "perldoc" и где его можно найти?
.. ээ, говоря по-простому, почитай документацию модуля CGI ;) и воспользуйся его встроенными ф-циями
-
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. Как подсказывает практика, эта программа тебе понадобится не один раз...
-
use CGI qw/:standard/;
$login=param(\'login\');
где \'login\' - имя поля ввода, а $login - Сами знаете что...
И вопрос: сразу это было не написать, а?! Либо тут один лентяи... либо: "Мы не будем тратить наше драгоценное время на какого-то <далее неразборчиво>". Ужасно, господа, ужасно! Не хотите вы помогать, не хотите... Берите пример с gamedev.ru/forum - отличные, отзывчивые люди...
P.S. А форум для того и форум, чтобы ПОМОГАЛИ, а не посылали к документации.
P.S. И, мать вашу, код, который я написал - РАБОЧИЙ! Просто он из текстовой строки вырезает нужные фрагменты, но машина - не человек и режет так, как сказали. "Не рабочий", блин... Не подходящий к данной задачи и "рабочий" - это абсолютно разные вещи, господа!
-
мдя...
без комментариев...
-
DimoninG
Читать документацию, значить понять суть проблемы и решить её самостотельно, тем способом каким тебе нравится.
Чем тебя не устроил мой код? И чем он вообще отличается от того, который тебе кто-то подсказал? Да и вот такое "тупое" передирание из умных книжек, и готовых скриптов, порождает целую армию бездарных программистов, которые мнят себя великими, а по сути написать самостоятельно ничего не могут...
А знаешь какой следующий вопрос у тебя возникнет по той же тематике? Нет? А я знаю: "Как делать upload картинки?", и опять тебя пошлют читать документацию по CGI.
glebushka
[OFF]Да, комментарии тут излишни...[/OFF]
-
И, мать вашу, код, который я написал - РАБОЧИЙ! Просто он из текстовой строки вырезает нужные фрагменты
:) значит он НЕПРАВИЛЬНО РАБОТАЕТ => не рабочий
тобы ПОМОГАЛИ, а не посылали к документации
Правильный посыл - это тоже помощь!
И к тому же, нельзя же все время использовать все готовое, надо бы хоть разобраться в том что используешь ;)
-
DimoninG:
А форум для того и форум, чтобы ПОМОГАЛИ, а не посылали к документации.
Ты очень хорошо осведомлен о том что должны тебе...
Дружок, никто здесь тебе никто ничего не должен.
Не у нас код не работает, а у тебя.
[moderator hate on]
За неуважение к посетителям форума - получи предупреждение.
Повторная выходка в таком ключе и двери форума перед тобой закроются навсегда.
Тема закрыта.
[moderator hate off]