ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

05.12.2007, 17:12
|
|
Познающий
Регистрация: 19.09.2007
Сообщений: 38
Провел на форуме: 424313
Репутация:
2
|
|
Народ , такой вопрос. ( сразу говорю что ногами не бейте сильно, сам знаю чо ботинок полный).
Пытаюсь написать прогу, что бы она в директории искала во всех файлах определенное слово. Но чето пока не могу понять в чем проблема. Не ищет тварюка чего то.
Код:
open (FILE2," +> 1.txt ");
opendir (DIR,"MY" );
open (LIST,">> final.txt") ;
@dir = readdir (DIR);
$a= undef ;
for ($a= 2; $a <= $#dir ; $a++ ) {
chomp($b=$dir[$a]);
print FILE2 "$b\n" ;
}
while (<FILE2>) {
$search=$_ ;
open (SEARCH ,"<$search") ;
while (<SEARCH>) {
$c=$_ ;
if ($c =~ m/User/i) {
print LIST "$c ----- $search \n" ;
}
}
}
close LIST ;
close FILE2 ;
close SEARCH ;
closedir DIR ;
<> ;
|
|
|
экранирование спецсимволов |

08.12.2007, 01:52
|
|
Новичок
Регистрация: 20.06.2007
Сообщений: 3
Провел на форуме: 50953
Репутация:
4
|
|
экранирование спецсимволов
Вот есть, например, такой кусок кода:
PHP код:
my $var = $ARGV[0];
print $var;
Как при вводе экранировать спецсимволы?
Например, при передаче $ARGV[0] строки, содержащей символ "&" вылазит ошибка "строка_до_символа & " "не является внутренней или внешней командой, исполняемой программой или пакетным файлом."
Т.е, например, при запуске "myscript.pl http://url.com/index.php?id1=1&id2=2" символ & воспринимается как амперсанд - как превратить его в строчный символ?
|
|
|

08.12.2007, 02:43
|
|
Постоянный
Регистрация: 05.06.2007
Сообщений: 335
Провел на форуме: 4319431
Репутация:
677
|
|
да никак, тут в консоли дело, попробуй взять в одинарные кавычки ссылку
|
|
|

08.12.2007, 03:05
|
|
Banned
Регистрация: 22.08.2006
Сообщений: 608
Провел на форуме: 6144796
Репутация:
1095
|
|
Сообщение от C!klodoL
да никак, тут в консоли дело, попробуй взять в одинарные кавычки ссылку
а лучше в двойные.. )
|
|
|

08.12.2007, 03:45
|
|
Banned
Регистрация: 12.01.2007
Сообщений: 113
Провел на форуме: 4094601
Репутация:
495
|
|
ммм
Код:
$ cat t.pl
#!/usr/bin/perl -w
use strict;
use warnings;
my $s = shift;
print $s,"\n";
$ perl -w t.pl http://url.com/index.php?id1=1\&id2=2
http://url.com/index.php?id1=1&id2=2
мммм ? 
|
|
|

09.12.2007, 01:27
|
|
Banned
Регистрация: 22.08.2006
Сообщений: 608
Провел на форуме: 6144796
Репутация:
1095
|
|
в винде так не получится... )
а зачем 2 раза -w пишешь вдобавок к тому, что прагму warnings заюзал? )
|
|
|

09.12.2007, 17:09
|
|
Banned
Регистрация: 12.01.2007
Сообщений: 113
Провел на форуме: 4094601
Репутация:
495
|
|
Сообщение от Digimortal
в винде так не получится... )
а зачем 2 раза -w пишешь вдобавок к тому, что прагму warnings заюзал? )
тупанул с варнингом) решил повыпендриваться
#пс поставил убунту  изучаю
|
|
|

13.12.2007, 04:47
|
|
Участник форума
Регистрация: 21.12.2006
Сообщений: 179
Провел на форуме: 1428298
Репутация:
65
|
|
В неком файле на серваке заданы пассы и логины через разделитель. Есть форма, где поля логин и пасс.
проверяем введенные логин и пасс.
для начала написал только проверку логина. ниже приведен код.
Проблема в том, что
Код:
if ($arr[$m]->[$n]==$obtained_login)
выполняется всегда, если первый символ логина - буква. Если цифра - не выполняется.
Объясните, пожалуйста, почему так происходит.
Код HTML:
<html>
<head>
<title>xz</title>
</head>
<body>
<form action="lab20.pl" method="post">
LOGIN <input type="text" name="login"><p>
БЗДЫДЫЩ: <input type="text" name="pass"><p>
<input type="submit" value="check">
</form>
</body>
</html>
Код:
#!/usr/bin/perl -w
use CGI;
print "Content-type:text/html;charset=windows-1251\n\n";
$q = new CGI;
$obtained_login = $q->param('login');
$obtained_password = $q->param('pass');
open(DATA, "users.txt");
$i=0;
foreach $line(<DATA>)
{
$j=0;
@temp=split (/;/,$line);
while ($j<=$#temp)
{
$arr[$i]->[$j]=$temp[$j];
$j++;
}
$i++;
}
close(DATA);
for($m=0; $m<$i; $m++)
{
for ($n=0;$n<$j; $n++)
{
if ($arr[$m]->[$n]==$obtained_login)
{
print "good";
}
else { print "bad";}
}
}
|
|
|

13.12.2007, 05:02
|
|
Постоянный
Регистрация: 05.06.2007
Сообщений: 335
Провел на форуме: 4319431
Репутация:
677
|
|
Код:
if ($arr[$m]->[$n]==$obtained_login)
выполняется всегда, если первый символ логина - буква. Если цифра - не выполняется.
я не проверял, но по моему дело в чисельном сравнении ==, попробуй строкове eq
|
|
|

13.12.2007, 05:06
|
|
Участник форума
Регистрация: 21.12.2006
Сообщений: 179
Провел на форуме: 1428298
Репутация:
65
|
|
Сообщение от C!klodoL
я не проверял, но по моему дело в чисельном сравнении ==, попробуй строкове eq
C!klodoL, ты прав, спасибо, очень оперативно!
проблема решена, всем спасибо.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|