Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Темы - sd1074

Страницы: [1]
1
Perl / Проблема с LWP + Cookie
« : 07 Июля 2008, 11:54:44 »
Здравствуйте! Проблема такая. Мне нужно получить страницу с URL http://mysite.ru, передав на неё Cookie вида "id=12345". Причём мне хотелось бы передать этот куки вручную.

Что я делаю:


use LWP::UserAgent;

use LWP::ConnCache;


$ua = LWP::UserAgent->new;

$cache = $ua->conn_cache(LWP::ConnCache->new( )); #просто  чтобы держать соединение

$url = \'http://mysite.ru\';

$resp = $ua->get($url,

  \'Accept\' => \'text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\',

  \'Accept-Language\' => \'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\',

  \'Accept-Encoding\'        => \'gzip,deflate\',

  \'Accept-Charset\'         => \'windows-1251,utf-8;q=0.7,*;q=0.7\',

  \'Connection\'             => \'keep-alive\',

  \'Keep-Alive\'             => \'300\',

  \'Cookie\'                 => \'id=12345\',

);


if ($resp->is_success) {

    print $resp->content;

}

else {

    print $resp->status_line, "\\n";

}



Сейчас я ещё опишу немного про настройки сервера, потом будет понятно зачем.


В корне сервера (я имею доступ к серверу) лежит .htaccess, где прописано:

RewriteEngine On

RewriteRule index.htm http://mysite.ru/cgi-bin/index.pl

То есть при обращении к http://mysite.ru выполняется скрипт /cgi-bin/index.pl. Этот редирект (ну или точнее подмена адреса) работает нормально в браузере, да и вообще нормально работает.


Серверный скрипт /cgi-bin/index.pl имеет вид:

#!/usr/bin/perl

print "Content-Type: text/html; charset=windows-1251\\n\\n";

print "Cookie: $ENV{\'HTTP_COOKIE\'}";


То есть просто выводит значение куки.


Если, $url в приведённом выше скрипте HTTP-клиента сделать равным \'http://mysite.ru\' (как там указано сейчас), то скрипт выводит: "Cookie: ", то есть куки нет (ну на самом деле я проверял, там в хэше окружения вообще нет ключа \'HTTP_COOKIE\'), а если изменить $url на \'http://mysite.ru/cgi-bin/index.pl\', то всё работает (то есть выводится значение куки: "Cookie: id=12345").

При этом, в браузере куки выводится всегда, как и должно быть.

Как это так??!! Я что-то вообще голову сломал уже =\\ Заранее спасибо.

2
Perl / Репозитории для ppm
« : 22 Марта 2008, 23:43:51 »
Столкнулся с такой ситуацией: ставил DBD-mysql на ActiveState Perl 5.10, MySQL 5.0. Графический ppm от ActiveState использовал по умолчанию только один свой репозиторий: http://ppm4.activestate.com/MSWin32-x86/5.10/1002/package.xml , причём там не было DBD-mysql (только DBD-mysqlPP). Короче полдня по неопытности потратил, чтобы установить этот драйвер (пытался компилить, но там тоже возникли свои проблемы), пока не нашёл наконец ссылку на другой репозиторий (http://cpan.uwinnipeg.ca/PPMPackages/10xx/package.xml), добавив который, я наконец смог установить драйвер.

Внимание вопросы:
1) Где можно найти ссылки на все или хотя бы большиноство репозиториев
2) Как вообще было правильнее поступить в описанной мной ситуации?

Спасибо.

3
Perl / DOM на сервере. Возможно ли?
« : 24 Января 2008, 18:35:41 »
Сущетвут ли в Perl средства для работы с DOM? Очень  бы хотелось.

4
Такой вот вопрос.
Есть необходимость перед отправлением HTML-страницы пользователю выполнить некий JavaScript внутри неё на стороне сервера и уже эту обновлённую страницу отправлять.
Существует ли что-то такое?

5
Не нашёл более подходящего раздела форума...
Уважаемые профессионалы, люди, стоящие на переднем крае развития Веб, скажите, имеет ли смысл концентрироваться на Perl? У меня уже имеется некоторый (пусть и небольшой) опыт программирования на этом чудесном языке, а также некая любовь к нему, но на сегодняшний день я прямо-таки вижу повсеместное угасание его как веб-языка...
На Ваш взгляд каково его будущее? Изменит ли выход perl 6 существующую тенденцию? И вообще дождёмся ли мы perl 6?
Или может быть я ошибаюсь в столь пессимистичном представлении о состоянии дел?
Хотелось бы услышать мысли по поводу Perl на сервере и PerlScript..

Хотелось бы, чтобы данный вопрос вызвал объективный анализ существующей ситуации.

6
Perl / Как пользовать WinAPI из Перла?
« : 25 Августа 2007, 15:14:17 »
Ну, собственно весь вопрос уже есть :)
ОСь: WinXP

7
Perl / Атрибуты файла под Win32
« : 25 Августа 2007, 15:11:20 »
Может быть вопрос слегка глупый,но всё-таки.
Подскажите, пожалуйста, функции или доки по работе с атрибутами файлов в Win32(XP).

8
Как можно ограничить время работы функции на Перл? Получается это надо создавать паралелльный процесс?

9
Perl / Мат. выражение как параметр
« : 24 Мая 2007, 06:48:47 »
Задача вообще такая. Надо получать от пользователя (CGI) мат. выражение, в котором используются заданные переменные $x1, $x2... и считать его в нескольких циклах много раз (подстановка разных $x1, $x2 и т.д).
Пока рассматриваю такой вариант:
$res=eval $cmd ;

но хотелось бы услышать мнения профессионалов. Понятно, что такая схема не совсем безопасна. Но предполагается сначала рег.выражением её сканить. Или может можно как-то лучше сделать?

10
Perl / Создание демона?
« : 02 Мая 2007, 18:43:49 »
Хочу создать программу, которая бы непрерывно выполнялась на сервере. Точнее так: основную часть времени она должна "спать", периодически просыпаясь и выполняя определённые действия. На сколько я понимаю, такая штука называется "демоном"?
Собственно программу я уже создал. В ней выполняется цикл while(1) , внутри которго sleep($delay) и необходимые функции.
Честно говоря, опыта работы с процессами у меня практически нет. А хотелось бы запустить этого "демона" на сервере. И управлять им через Веб. Ну это уже дело не сложное. Важно запустить !  Как это сделать?
Как я понимаю, это ещё зависит от хостинга... Тогда сразу вопрос, как узнать могу ли я запустить "демона" на своём хостинге? Хостинг платный если что...

11
Вот возникла такая задача: надо написать регулярное выражение для замены в заданной строке слов: "слово1", "слово2", "слово3" на "слово2", "слово3", "слово4" соответсвенно. В чём хитрость?
Например вариант:

$str=~s/слово1/слово2/g;
$str=~s/слово2/слово3/g;
$str=~s/слово3/слово4/g;

не пододит, т.к. из строки "слово1 слово2 слово3" он сделает "слово3 слово3 слово4", а должен "слово2 слово3 слово4".
То есть нужно сделать как-то, чтобы регулярное выражение, найдя один из образцов, заменило его и повторно уже эта часть строки не подвергалась обработке. Конечно, можно сделать цикл, но хотелось бы как-то написать это одним регулярным выражением. Что-то типа:
$str=~s/слово1|слово2|слово3/слово2|слово3|слово4/g;
Последний вариант синтаксически неверен к сожалению.

12
Perl / Одинарные кавычки и обратный слэш
« : 27 Апреля 2007, 14:11:01 »
В Перле пока новичок, но уже кое-что делал. Насколько я знаю (и пока везде, где я читал написано именно так) строка в одинарный кавычках выводится как есть без интерполяции. Но жизнь показала вот что. Код:

$str=\'\\\\\\\\\';
open (OUT,">output.txt") or die;
print OUT $str;

В выходном файле вижу: "\\\\" (два обратных слэша).

Если извратиться так:

open (IN,"$str=;
open (OUT,">output.txt") or die;
print OUT $str;

При этом во входном файле записана строка: "\\\\\\\\" (4 обратных слэша). То на выходе имеем тоже 4 обратныхъ слэша.
Выходит содержимое одинарных кавычек интерпретируются не как есть.
Как так?!

13
Столкнулся с такой проблемой. Жил на одном хосте всё было отлично, переехал на другой возникла такая ерунда. CGI-ки генерят страницы в кодировке ISO-8859-1. И хоть ты убейся в ней и всё. Предпринимал шаги:
1) вставил в МЕТА тег в заголовки кодировку windows-1251
2) сделал .htaccess cо строками вида:
AddDefaultCharset WINDOWS-1251
AddCharset WINDOWS-1251 .cp-1251 .win-1251
3) в отчаянии на создавал .htaccess чуть не в каждой директории: в корневой, www , cg-ibin - ни фига не помогло
4) уснул :)
5) Проснулся и, полазив по форумам, решил проверить аткй скриптик:
print "Content-Type: text/html\\n\\n";
print "Привет Мир!";
И он работал! Оказалось, если заголовок генерить строкой
print "Content-Type: text/html\\n\\n";
то кодировка работает нормально, а если делать это как я:
print $query->header;
то нет. Очень хочется знать почему так происходит. Так как у меня там ещё куки ставятся подобной же конструкцией:
print $query->header(-cookie=>$cookie);
то тем более хотелось бы вникнуть в суть проблемы. Если я спрашиваю элементарную весчь то хотя бы отошлите к какой-нить конкретной документации, где указывается в чём отличие $query->header; от "Content-Type: text/html\\n\\n";.

14
Отправляю письма с помощью sendmail. В строке адреса пишу: "login1\\@yandex.ru, login2\\@mail.ru, login3\\@yandex.ru, login4\\@gmail.com", однако письма стабильно приходят только на яндексовские мылы. Ни на mail, ни на gmail не приходит ничего. Аккуанты рабочие. Отправляю с бесплатного хостинга holm.ru. Как такое может быть?

Страницы: [1]