Ceci & Tati

Програмиране

Създаване на торент файлове през веб интерфейс. / Create torrent files via web interface.

by on мар..31, 2009, under Линукс, Мрежата, Програмиране

Първо искам да споделя, пробвах с какви ли не perl модули и всякакви други неща, и все не ставаше като хората. Също така не намерих нищо готово написано и завършено в „нета“ по тази тема. Затова реших да си напиша нещо набързо колкото да ми свърши работа и сега реших да го споделя с останалите.

Абсолютен фен съм на Gentoo, затова ще обясня какво съм инсталирал първоначално под него.

emerge -av net-p2p/ctorren

След това прочетох тук: http://en.gentoo-wiki.com/wiki/Wtorrent и инсталирах wtorrent. Но не ми хареса идеята за lighttpd и го направих с apache. За целта компилирах php със следните екстри 🙂

USE=“mysql sockets apache2 xmlreader xmlrpc xmlwriter simplexml xsl pdo sqlite xpm curl cgi ctype“ emerge -av dev-lang/php

,
редактирах „/etc/apache2/modules.d20_mod_scgi.conf“ по следния начин:

cat 20_mod_scgi.conf

LoadModule scgi_module modules/mod_scgi.so

SCGIMount /RPC2 localhost:5000

Alias /wtorrent /var/www/wtorrent

Deny from all
Allow from 22.14.122.13 22.14.122.14 22.14.121.251 #moite ip adresi za dostap do papkata

и добавих малко права за apache-то:

echo „apache ALL = NOPASSWD: /usr/bin/ctorrent“ >> /etc/sudoers

Ето го и съдържанието на моя скрипт – index.php
(continue reading…)

1 Comment прочетете повече...

Perl POST/GET параметри

by on ное..21, 2007, under Програмиране

Да речем че искате да прочетете променливите „month, day, year“ от долопосочения адрес.
http://blog.sharcom.org/sample/index.cgi?month=August&day=8&year=2005

В PHP става лесно:

<?
$month=$_POST[‘month’];
$day=$_POST[‘day’];
$year=$_POST[‘year’];

print „$month“;
print „$day“;
print „year“;
?>

Но в Perl не става толкова лесно, за целта трябва една подпрограмка 🙂 .

#!/usr/bin/perl

print „Content-Type: text/html\015\012\015\012“;

sub readallvariables {

if ($ENV{‘REQUEST_METHOD’} eq „POST“) {
read(STDIN,$in,$ENV{‘CONTENT_LENGTH’});
@in = split(/&/,$in);
foreach $i (0 .. $#in) {
$in[$i] =~ s/\+/ /g;
$in[$i] =~ s/%(..)/pack(„c“,hex($1))/ge;
($key,$val) = split(/=/,$in[$i],2);
$key=~ s/%(..)/pack(„c“,hex($1))/ge;
$val =~ s/%(..)/pack(„c“,hex($1))/ge;
$_POST{$key}=$val;
}
}

if ($record = $ENV{‘QUERY_STRING’}) {
@in=split /&/, $record;
foreach $i (0 .. $#in) {
$in[$i] =~ s/\+/ /g;
$in[$i] =~ s/%(..)/pack(„c“,hex($1))/ge;
($key,$val) = split(/=/,$in[$i],2);
$key=~ s/%(..)/pack(„c“,hex($1))/ge;
$val =~ s/%(..)/pack(„c“,hex($1))/ge;
$_GET{$key}=$val;$_REQUEST{$key}=$val;
}
}

if ($in = $ENV{HTTP_COOKIE}) {
@in = split(/;/,$in);
foreach $i (0 .. $#in) {
$in[$i] =~ s/\+/ /g;
$in[$i] =~ s/%(..)/pack(„c“,hex($1))/ge;
($key,$val) = split(/=/,$in[$i],2);
$key =~ s/%(..)/pack(„c“,hex($1))/ge;
$key =~ s/^ //;
$val =~ s/%(..)/pack(„c“,hex($1))/ge;
$_COOKIE{$key}=$val;
}
}

}

readallvariables;

print ‘RESULT:’.$_GET{‘month’}.’:’.$_GET{‘day’}.’:’.$_GET{‘year’}

1 Comment прочетете повече...

Нещто не намирате ли?

Потърси в блога ми:

Моля Ви не прекалявайте с информацията!