[Perl] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. Rinsty

    Rinsty New Member

    Joined:
    3 May 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    ....
     
  2. RazyKK

    RazyKK Member

    Joined:
    9 Feb 2009
    Messages:
    127
    Likes Received:
    16
    Reputations:
    4
    Это скрипт массового добавления доменов для ispmanager, прописываю корневую папку '/www/' , а создается '/www/название домена' .
    Помогите убрать название домена из корневой папки.

    Code:
    
    #!/usr/bin/perl
    
    
    # Title: WWW Dpmains Mass Create plugin
    # Version: 1.5.1 (29/Aug/2012)
    # Authors: ISP system, Dmitry
    # License: GPL
    # Site: http://usings.ru
    
    
    BEGIN { push @INC, '/usr/local/ispmgr/lib/perl' }
    
    *STDERR = *STDOUT;
    
    use CGI;
    use POSIX;
    use XML::LibXML;
    use Mgr;
    use warnings;
    use strict;
    
    my $mgr_cookie_name = 'ispmgr4';
    
    my $Q = new CGI;
    
    my $xml = XML::LibXML::Document->new ('1.0', 'utf-8');
    my $xmlroot;
    
    sub createroot ($) {
    	$xmlroot = $xml->createElement ($_[0]);
    	$xml->setDocumentElement ($xmlroot);
    }
    
    sub addelem ($$) {
    	my $el = $xml->createElement ($_[1]);
    	$_[0]->appendChild ($el);
    
    	return $el;
    }
    
    sub out () {
    	print $xml->toString(0);
    }
    
    sub userips ($) {
    	my @r;
    	my ($doc, $root) = Mgr::query ('softinfo', []);
    	my $param = ($_[0] eq 'root' || ($root->findnodes('mgrver'))[0]->textContent =~ /Lite/) ? [] : [['su', $_[0]]];
    	($doc, $root) = Mgr::query ('wwwdomain.edit', $param, 'devel');
    	my $slist = ($root->findnodes('slist[@name="ip"]'))[0];
    	return $slist;
    }
    
    sub iplist ($$) {
    	foreach (@{$_[1]}) {
    		my $ip = addelem ($_[0], 'val');
    		$ip->setAttribute ('key', $_);
    		$ip->appendText ($_);
    	}
    }
    
    sub features ($) {
    	my @features;
    	(undef, my $f) = Mgr::query ('featurelist', []);
    	my $php = addelem ($xmlroot, 'slist');
    	$php->setAttribute ('name', 'php');
    	my $phpnone = addelem ($php, 'msg');
    	$phpnone->appendText ('phpnone');
    	foreach my $feature ($f->findnodes('elem/*')) {
    		my $en = $feature->nodeName;
    		if ($en eq 'phpcgi' || $en eq 'phpmod' || $en eq 'phpfcgi') {
    			my $pe = addelem ($php, 'msg');
    			$pe->appendText ($en);
    		}
    	}
    }
    
    sub form ($) {
    	my $userips = userips ($_[0]->{username});
    	createroot ('doc');
    	my $docroot = addelem ($xmlroot, 'docroot');
    	$docroot->appendText ('auto');
    	my $wwwalias = addelem ($xmlroot, 'wwwalias');
    	$userips->setOwnerDocument($xml);
    	$xmlroot->addChild ($userips);
    	features ($_->{username});
    	addelem ($xmlroot, 'elid');
    	out ();
    }
    
    sub create ($) {
    	my @domains = split (/\s+/, $Q->param('domain'));
    	my $docroot = $Q->param('docroot');
    	if ($docroot ne 'auto') {
    		$docroot .= '/' if substr($docroot, -1, 1) ne '/';
    	}
    	my @param = (
    		['admin', $Q->param('admin')],
    		['charset', $Q->param('charset')],
    		['index', $Q->param('index')],
    		['php', $Q->param('php')],
    		['ip', $Q->param('ip')],
    		['sok', 'ok'],
    		['su', $_[0]->{username}]
    	);
    
    	if ($Q->param('wwwalias'))
    	{
    		foreach (@domains) {
    			Mgr::query ('wwwdomain.edit', [ ['domain', $_], ['alias', 'www.' . $_], ['docroot', $docroot . ($docroot eq 'auto' ? '' : $_)], @param ]);
    		}
    	}
    	else
    	{
    		foreach (@domains) {
    			Mgr::query ('wwwdomain.edit', [ ['domain', $_], ['docroot', $docroot . ($docroot eq 'auto' ? '' : $_)], @param ]);
    		}
    	}
    
    	my $dir = $Q->param ('directory');
    	if ($dir ne '') {
    		my @dirs;
    		foreach (@domains) {
    			(undef, my $r) = Mgr::query ('wwwdomain.edit', [ ['elid', $_]]);
    			my $docroot = ($r->findnodes ('docroot'))[0];
    			if ($docroot) {
    				$docroot = $docroot->textContent;
    				push @dirs, $docroot;
    			}
    		}
    
    		my @pw = getpwnam($_[0]->{username});
    		setuid($pw[2]);
    		setgid($pw[3]);
    		chdir($pw[7]);
    		foreach (@dirs) {
    			`cp -pr "$dir/"* '$_'`;
    		}
    	}
    
    	createroot ('doc');
    	my $ok = addelem ($xmlroot, 'ok');
    	$ok->appendText ('restart');
    	out ();
    }
    
    my $sok = $Q->param('sok') || 0;
    my $ses = Mgr::session ($mgr_cookie_name, $Q);
    
    
    if (!defined $ses) {
    	createroot ('doc');
    	my $error = addelem ($xmlroot, 'error');
    	$error->setAttribute ('code', 100);
    	$error->appendText ('Auth failed');
    	out ();
    } else {
    	if ($sok) {
    		create ($ses);
    	} else {
    		form ($ses);
    	}
    }
    
    
     
  3. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Code:
    Mgr::query ('wwwdomain.edit', [ ['domain', $_], ['alias', [b]'www.'[/b] . $_], ['docroot', $docroot . ($docroot eq 'auto' ? '' : $_)], @param ]);
    
     
    _________________________
    1 person likes this.
  4. antras2007

    antras2007 New Member

    Joined:
    4 Jul 2013
    Messages:
    33
    Likes Received:
    0
    Reputations:
    0
    Инфа не добавляется в базу Mysql

    Подскажите пожалуйста вот код но почему то не заносится инфа в базу данных. что тут не так?
    <?php
    $error = array();
    if(!empty($_POST))
    {
    $name = "Имя";
    $email = "E-mail";
    if(empty($_POST['name'])) $error[] = "Текстовое поле $name не заполнено";
    if(empty($_POST['email'])) $error[] = "Текстовое поле $email не заполнено";
    if(empty($error))
    {
    echo $_POST['name']."<br/>";
    echo $_POST['email']."<br/>";
    echo $_POST['about']."<br/>";
    exit();
    }
    }
    if(!empty($error))
    {
    foreach($error as $err)
    {
    echo "<span style=\"color:red\">$err</span><br/>";
    }
    }
    $name = $_POST['name']."<br/>";
    $email = $_POST['email']."<br/>";
    $about = $_POST['about']."<br/>";
    echo $name, $email, $about;

    $host = 'localhost';
    $database = 'form';
    mysqli_connect('localhost', 'root', "", 'form');
    $sql = "insert into `book` (name, email, about)";
    echo "$sql"; die();
     
  5. Ro-Bot2

    Ro-Bot2 New Member

    Joined:
    1 Nov 2013
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Есть ли кейлоггер в Perl язык? Я не смог найти / сделать это!

    Спасибо!
     
  6. wkar

    wkar Elder - Старейшина

    Joined:
    18 Oct 2009
    Messages:
    211
    Likes Received:
    67
    Reputations:
    34
    1)тема про перл, код на пхп. По этому не работает..
    2)http://php.net/manual/en/function.mysqli-connect.php
     
  7. J.Z.

    J.Z. Member

    Joined:
    15 Dec 2012
    Messages:
    43
    Likes Received:
    8
    Reputations:
    0
    delete
     
    #2087 J.Z., 18 Nov 2013
    Last edited: 3 Dec 2013
  8. m0nzt3r

    m0nzt3r моня

    Joined:
    22 Jun 2004
    Messages:
    2,096
    Likes Received:
    673
    Reputations:
    591
    Товарищи кодеры, вопрос.
    Есть список из тысячи буквонаборов длинною в 16 букв каждая (далее "база"). Есть буквонаборы, которые я введу, и они могут не совпасть с базой на 100%. Так вот, как можно реализовать, чтобы скрипт выбрал самый подходящий вариант из базы? Спасибо
     
  9. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    http://search.cpan.org/~mlehmann/String-Similarity-1.04/Similarity.pm
     
    _________________________
  10. Rinsty

    Rinsty New Member

    Joined:
    3 May 2010
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Написал многопоточный брутер. Если работает без прокси, больше 20 потоков ( и то не всегда ) не получается поставить, начинает сразу же очень резко жрать оперативку. А если подключить прокси то уже нормально тянет хоть 150 потоков. В чем может быть проблема ?
    Многопоточность реализована, как в скриптах у Каими.

    $trl[$_] = threads->create(\&main) for 0..$threads - 1;
    $_->join for @trl;


    sub main
    {}


    Еще бывает, что скрипт сам завершает работу. Работает , работает , раз и завершился. Как узнать причину ?
     
    #2090 Rinsty, 16 Dec 2013
    Last edited: 16 Dec 2013
  11. vegetativniy

    vegetativniy Banned

    Joined:
    23 Dec 2013
    Messages:
    31
    Likes Received:
    10
    Reputations:
    5
    Весь код выложи, причина в нём как бы)
     
  12. iKNG

    iKNG New Member

    Joined:
    23 Jan 2013
    Messages:
    11
    Likes Received:
    1
    Reputations:
    0
    Как установить модули (а точнее - HTML::Template) на Perl (localhost). Гуглил, нашел только какие-то команды для чего-то. Консоль что-ли? Куда вводить? Как подключать?
     
  13. od0201

    od0201 New Member

    Joined:
    11 Feb 2014
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    А точнее нужно знать вашу ОС,
    скорее всего вы нашли команды для *nix
    процесс установки различен для разных ОС

    для Windows
    [путь куда установлен perl]/bin/ppm.bat
    и команда install HTML::Template
     
  14. Грабитель

    Joined:
    5 Mar 2013
    Messages:
    196
    Likes Received:
    12
    Reputations:
    -7
    Вопрос имею. Господа, какой командой можно внедрить в сценарий перл свой php код?
    Для примера, чтобы внедрить сторонний код в PHP, используется php функция virtual();
    На SSI это будет инструкция include virtual
    А есть ли подобная команда на перле? И пример использования, пожалуйста, кому не сложно.
     
    Strilo4ka likes this.
  15. pami

    pami Banned

    Joined:
    31 Jul 2006
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    подскажите какое cms miped ru
     
  16. zlo12

    zlo12 Elder - Старейшина

    Joined:
    28 Dec 2007
    Messages:
    535
    Likes Received:
    135
    Reputations:
    34
    Авторизуюсь на сайте, а он мне вместо кабинета вот такое выдаёт. Я не знаю что с этим делать, 2 дня в гугле потерял в попытке найти подобный случай, подскажите в какую сторону ковырять дальше.
    кидает меня на адрес вида
    HTML:
    https://site.ru/cnt/auth_login.jsp;jsessionid=C2EDA585AC4E5FB29F6A2907BEA36514
    HTML:
    <html>
    <head>
    <title>C</title>
    <meta http-equiv="Cache-control" content="no-cache; charset=windows-1251">
    </head>
    <body>
    
    <form id='goto' name='goto' action='j_security_check' method="post">
    <input type="hidden" name="j_username" value="user"
    />
    <input type="hidden" name="j_password" value=""/>
    </form>
    <SCRIPT LANGUAGE="javascript" for="window">
    document.forms['goto'].submit();
    </SCRIPT>
     
    #2096 zlo12, 21 Aug 2014
    Last edited: 21 Aug 2014
  17. Crazylord

    Crazylord Member

    Joined:
    29 Aug 2008
    Messages:
    19
    Likes Received:
    5
    Reputations:
    0
    А стоит ли??

    Всем привет. Вот, решился взяться за Perl, НО стоит ли оно того? Интересует именно возможность заработка на нем в последствии. Ибо есть питон, который похож, да и фриланса на нем куда больше, но душу не греет, так скажем. Что подскажете? :confused:
     
  18. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    пробую написать код загрузки плагина в вордпрес, но что то не как
    код
    в снифере вот
    и в итоге постояно ошибка
     
    #2098 mazaxaka, 24 Mar 2015
    Last edited: 24 Mar 2015
  19. mazaxaka

    mazaxaka Elder - Старейшина

    Joined:
    15 Feb 2008
    Messages:
    268
    Likes Received:
    35
    Reputations:
    0
    рылся в гугле не нашел((
    как через lwp ограничить размер получаемой нтмл страници, например мне не нужно грузить все 300кб сайта, а только первый 10-20кб
     
  20. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Да ладно? А в официальной документации не пробовал искать http://search.cpan.org/dist/libwww-perl/lib/LWP/UserAgent.pm ?

     
    _________________________
Thread Status:
Not open for further replies.