
17.03.2009, 17:32
|
|
Постоянный
Регистрация: 06.06.2007
Сообщений: 335
С нами:
9963746
Репутация:
392
|
|
скрипт бекапа БД, при переходе на него, предлагает скачать файл с дампом, если кодировка соединения и БД не совпадает раскомментируйте 18-19 строку и укажите кодировку базы
PHP код:
<?php
/**
* @author Zedi
* @copyright 2009
*/
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'chat';
$connect = mysql_connect($dbhost, $dbuser, $dbpass) or die("Не могу соединиться с MySQL сервером!<br>" .
mysql_error());
$db = mysql_select_db($dbname) or die("Базы данных не существует!<br>" .
mysql_error());
#$sql = "SET NAMES utf8";
#$result = mysql_query($sql, $connect);
$filename = "dump_" . date('Y-m-d_H-i-s_') . rand(0, 100) . $dbname . ".sql";
$ext = "sql";
$mime_type = "'application/octet-stream";
$now = gmdate('D, d M Y H:i:s') . ' GMT';
header('Content-Type: ' . $mime_type);
header('Expires: ' . $now);
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
$sql = 'SHOW TABLE STATUS FROM `' . $dbname . "`";
$query = mysql_query($sql, $connect);
$n = mysql_num_rows($query);
$total_size = 0;
$dump = '';
for ($i = 0; $i < $n; $i++)
{
$array_tables = mysql_fetch_array($query);
$tname = $array_tables[0];
$sql_table = "SHOW CREATE TABLE `{$tname}`";
$query_table = mysql_query($sql_table, $connect);
$table = mysql_fetch_array($query_table);
$sql_data = "SELECT * FROM `{$tname}`";
$result = mysql_query($sql_data, $connect);
$c_data = mysql_num_rows($result);
$dump .= $table[1] . ";\n";
if ($c_data)
$dump .= "INSERT INTO `{$tname}` VALUES";
$sql_columns = "SHOW COLUMNS FROM `{$tname}`";
$query_columns = mysql_query($sql_columns, $connect);
$c = mysql_num_rows($query_columns);
$fields = array();
for ($k = 0; $k < $c; $k++)
{
$column = mysql_result($query_columns, $k, 0);
$push = array_push($fields, $column);
}
$p = 0;
for ($g = 0; $g < $c_data; $g++)
{
$z = 0;
$zp = $zk = '';
if ($p)
$zk = ', ';
$dump .= $zk . " \n(";
foreach ($fields as $fild)
{
if ($z)
$zp = ', ';
$dump .= $zp . '\'' . addslashes(mysql_result($result, $g, $fild)) . '\'';
$z++;
}
$dump .= ")";
$p++;
}
if ($c_data)
$dump .= "; \n";
else
$dump .= "\n";
}
echo $dump;
die();
?>
Последний раз редактировалось Zedi; 17.03.2009 в 17:39..
|
|
|

18.03.2009, 07:31
|
|
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
С нами:
10597286
Репутация:
694
|
|
OnArs http://www.xbb.uz/ имхо даже лучше чем у дле.
|
|
|

19.03.2009, 11:21
|
|
Участник форума
Регистрация: 01.08.2008
Сообщений: 239
С нами:
9356016
Репутация:
31
|
|
Сообщение от blaga
OnArs http://www.xbb.uz/ имхо даже лучше чем у дле.
Большое спасибо!
Кто-нибудь встречал скрипты-почтовики, чтобы можно было делать Forwarder email адреса?
На данный момент пользуюсь средствами своего хостера и на создание email такого типа уходит около минуты, т.е. для создания 1000 таких email адресов, уйдёт оочень много времени....
Заранее благодарен! 
|
|
|

19.03.2009, 20:21
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
С нами:
9649706
Репутация:
3338
|
|
Свой кодировщик
Прилетело сегодня такое сообщение в личку:
Вот имеется такая проблемка
нужно "зашифровать" текст например так:
вводим строку, длинну "блока" иалгоритм по которуму будут "перемешиваться" буквы...
пример:
строка: привет
длинна блока: 4 (т.е. делим строку на блоки по 4 буквы и если в блоке не хватает букв, то дополняется рандомными буквами в данном случаем пусть будет "ос")
алгоритм: 3124
получается: ипрвоетс
Решил, показалось интересным, добавил расшифровку, может кому и пригодиться:
PHP код:
<pre>
<?php
$slov = 'корректно работает со словами по отдельности и текстом в частности'; // Слово для шифрования (или текст)
$bl = 8; // Длина блока, на которые делим слово
$ran = 'бямпуент'; // Мусор, который добавляем, если при делении слова получился кусок меньше длины блока
$key = '38247165'; // Ключ перестановки (в пределах длины блока)
$shifr_slov = encode($slov,$bl,$ran,$key);
echo "Пример шифрования\n";
echo "Слово < $slov >\n";
echo "Зашифрованное слово < $shifr_slov >\n";
function encode($slovo,$blog,$rand,$alg) {
$res2 = str_split($alg);
for ($i=0;$i<count($res2);$i++) $res2[$i]--;
$res = str_split($slovo,$blog);
for ($i=0;$i<count($res);$i++) {
if (strlen($res[$i])<$blog) $res[$i] = $res[$i].$rand;
}
for ($i=0;$i<count($res);$i++) $res1[] = str_split($res[$i]);
for ($i=0;$i<count($res1);$i++) {
for ($j=0;$j<count($res1[0]);$j++) {
$b = $res2[$j];
$hash.=$res1[$i][$b];
}
}
return $hash;
}
###########################################
echo "\n\n\n\n\n";
echo "Пример декодирования\n";
$slov = $shifr_slov; // Слово для расшифровки (или текст)
//$bl = 4; // Длина блока, на которые делим слово
//$ran = 'ос'; // Мусор, который добавляем, если при делении слова получился кусок меньше длины блока
//$key = '3124'; // Ключ перестановки (в пределах длины блока)
echo "Зашифрованное слово < $slov >\n";
echo "Расшифрованное слово < ".decode($slov,$bl,$ran,$key) . " >\n";
function decode($slovo,$blog,$rand,$alg) {
$buff = '';
$res2 = str_split($alg);
for ($i=0;$i<count($res2);$i++) $res2[$i]--;
for ($i=0;$i<count($res2);$i++) {
$c = $res2[$i];
$res3[$c] =$i;
}
$res = str_split($slovo,$blog);
for ($i=0;$i<count($res);$i++) $res1[] = str_split($res[$i]);
for ($i=0;$i<count($res1);$i++) {
for ($j=0;$j<count($res1[0]);$j++) {
$b = $res3[$j];
$hash.=$res1[$i][$b];
}
}
$hash = str_replace($rand,'',$hash);
for ($i=strlen($rand);$i>0;$i--) {
$buff=substr($rand,0,$i);
if (strpos($hash,$buff)) {
$hash = str_replace($buff,'',$hash);
$buff = '';
$i=0;
}
}
return $hash;
}
?>
</pre>
корректно работает со словами по отдельности и текстом в частности (правда при достаточной длине мусора, чтобы было как можно меньше совпадений в мусоре (в слогах) и кодируемом/декодируемом тексте)
т.е. имеет смысл при длине блока и мусора от 4-х единиц
ЗЫЖ Пост подправил, привел более интересный пример, включая совпадения букв мусора с буквами с кодируемом тексте
т.е. то, что выше, превращает
"корректно работает со словами по отдельности и текстом в частности"
в
"рнортккера атооб лтссе оаовмпо итнодь леттси ои свкт емоасчсо нтбеияутпм"
и обратно.
В принципе, не имея длины блока, ключа и мусора - хрен расшифруешь.
Последний раз редактировалось Pashkela; 13.08.2009 в 15:56..
|
|
|

20.03.2009, 00:15
|
|
Постоянный
Регистрация: 11.03.2008
Сообщений: 347
С нами:
9561436
Репутация:
462
|
|
Shellcode Generator [uNk r.]
Код:
<html>
<body>
<style>
body {
background-color: #2b2b2b;
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #B0B0B0;
}
.shellcode {
font-size:10pt;
color: #FFF;
font-weight:normal;
}
.border
{
border: 1px solid #006699;
background-color:#000000;
}
.header
{
background-color:#000000;
}
.content-background
{
background-color:#000000;
}
.text-strong
{
font-weight:bold;
}
.content-border
{
border: 1px solid #006699;
background-color:#1A1A1A;
}
.content-background
{
background-color:#000000;
}
a:link {
color: #006699;
}
a:visited {
color: #006699;
}
a:hover {
color: #CCCCCC;
}
a:active {
color: #CCCCCC;
}
textarea
{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
color: #006699;
background-color:#161616;
border: #006699 1px solid;
}
input
{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
color: #006699;
background-color:#161616;
border: #006699 1px solid;
}
select
{
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 10px;
color: #006699;
background-color:#161616;
border: #006699 1px solid;
}
</style>
<?PHP
if(isset($_POST['port'])){
function input_match($source, $num, $preg, $preg1)
{
$parts = explode($preg, $source);
$parts = explode($preg1, $parts[$num]);
$var = $parts[0];
return $parts[0];
}
function browse($url)
{
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt ($ch, CURLOPT_TIMEOUT, '10');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$store = curl_exec ($ch);
return $store;
}
function glob_match_bind_shell($os)
{
if($os == 'linux_ia32_bind')
{
$glob == "GLOB(0x2b4a01c2fef0)";
}else
if($os == 'bsd_ia32_bind')
{
$glob == "GLOB(0x2b4a01c208a0)";
}else
if($os == 'win32_bind')
{
$glob == "GLOB(0x2b4a01c41e90)";
}
return $glob;
}
function glob_match_rev_shell($os)
{
if($os == 'linux_ia32_reverse')
{
$glob == "GLOB(0x2b4a01c41fb0)";
}else
if($os == 'bsd_ia32_reverse')
{
$glob == "GLOB(0x2b4a01c41d30)";
}else
if($os == 'win32_reverse')
{
$glob == "GLOB(0x2b4a01b95800)";
}
return $glob;
}
function bind_shell($port, $os)
{
$glob = glob_match_bind_shell($os);
$input = browse("http://metasploit.com:55555/PAYLOADS?parent=$glob&MODULE=$os&MODE=GENERATE&OPT_LPORT=".$port."&MaxSize=&BadChars=0x00+&ENCODER=default&ACTION=Generate+Payload");
$size = input_match($input, 1, "Size=", " ");
$output = input_match($input, 1, "*/", "#");
$type = ucwords(str_replace("_"," ",$os));
echo "<table width='100%' cellspacing=0 border=0 cellpadding=0>
<br><pre>
<div class=shellcode>/* <br> Affix Presents... <br> uNkn0wn's Online Shell Code Generator <br> Port = $port <br> Size = $size <br> Type = $type <br> */ $output </div></table>";
}
function reverse_shell($host, $port, $os)
{
$glob = glob_match_rev_shell($os);
$input = browse("http://metasploit.com:55555/PAYLOADS?parent=$glob&MODULE=$os&MODE=GENERATE&OPT_EXITFUNC=seh&OPT_LHOST=$host&OPT_LPORT=$port&MaxSize=&BadChars=0x00+&ENCODER=default&ACTION=Generate+Payload");
$size = input_match($input, 1, "Size=", " ");
$output = input_match($input, 1, "*/", "#");
$type = ucwords(str_replace("_"," ",$os));
echo "<table width='100%' cellspacing=0 border=0 cellpadding=0>
<br><pre>
<div class=shellcode>/* <br> Affix Presents... <br> uNkn0wn's Online Shell Code Generator <br> Port = $port <br> Size = $size <br> Type = $type <br> */ $output </div></table>";
}
if(!eregi("_bind", $os))
{
echo reverse_shell($host, $port, $os);
}else{
echo bind_shell($port, $os);
}
}else{
echo '<center>
<table width="33%" height="90" border="0" cellpadding="3" cellspacing="1" class="content-border" id="table3">
<tr>
<td class="content-background">
<div align="center"><center><font face="Trebuchet MS" size=3>
<b>uNkn0wn.ws Online Shellcode Generator!<br />
Affix</b>
</font>
</center>
<br>
<font face="Trebuchet MS" size=2 color=#006699>
<hr>
<form method="POST" action="'.$_SERVER['PHP_SELF'].'">
<table width="100%" cellspacing=0 border=0 cellpadding=0>
Shell Code: <select name="os">
<option value="linux_ia32_bind">Linux IA32 Bind Shell</option>
<option value="linux_ia32_reverse">Linux IA32 Reverse Shell</option>
<option value="bsd_ia32_bind">BSD IA32 Bind</option>
<option value="bsd_ia32_reverse">BSD IA32 Reverse</option>
<option value="win32_bind">Windows[32] Bind</option>
<option value="win32_reverse">Windows[32] Reverse</option>
</select></table>
<table width="100%" cellspacing=0 border=0 cellpadding=0>
Port: <input type="text" name="port" value="8080"></table>
<table width="100%" cellspacing=0 border=0 cellpadding=0>
Reverse IP: <input type="text" name="host" value='.$_SERVER['REMOTE_ADDR'].'></table>
<table width="100%" cellspacing=0 border=0 cellpadding=0>
<input type="submit" name="submit" value="Generate Shell Code!">
</table>';
$port = $_REQUEST['port'];
$host = $_REQUEST['host'];
$os = $_REQUEST['os'];
}
?>
</body>
</html>
|
|
|

20.03.2009, 15:40
|
|
Banned
Регистрация: 21.11.2007
Сообщений: 181
С нами:
9721141
Репутация:
1013
|
|
Код:
#!/usr/bin/python
#sha1/md5 wordlist brute
#http://sql.parsers.info
#faza02[at]gmail[dot]com
import hashlib
def brutemd():
fil = open(wordlist, 'a+').readlines()
for i in range(len(fil)):
md5 = hashlib.md5(fil[i][:-1]).hexdigest()
if md5 == hash:
print hash + ':' + fil[i][:-1]
def brutesha():
fil = open(wordlist, 'a+').readlines()
for i in range(len(fil)):
sha = hashlib.sha1(fil[i][:-1]).hexdigest()
if sha == hash:
print hash + ':' + fil[i][:-1]
hash = raw_input(u'hash: ')
wordlist = raw_input('wordlist: ')
if len(hash) == 40:
brutesha()
if len(hash) == 32:
brutemd()
ша1/мд5 брут.
(c) faza02
|
|
|

20.03.2009, 17:06
|
|
Участник форума
Регистрация: 09.03.2008
Сообщений: 193
С нами:
9564806
Репутация:
267
|
|
Вообщем решил сюда тоже запостит,так как темка та уже потерялась а скрипт полезный:-)
Требует модуля php_openssl.
PHP код:
<?php
#########################################
#
# Google Maps Api by Shadow_p1raT
# ICQ#: 9930875
#
#########################################
# [setting] #
$email = '1111111@gmail.com'; // Аккунт на гмаил.ком
$pass = '1111111'; // Пароль от акка
$proxy = '127.0.0.1:3130'; // Прокси если надо
$url = 'http://forum.antichat.ru/'; // Урл сайта
#[/setting] #
echo '<title>Google Maps Api by Shadow_p1raT</title>';
set_time_limit(0);
class gMapKey {
private $email;
private $pass;
private $proxy;
private $url;
private $result;
private function sock_do($action,$method,$header = false,$params = false,$cookie = false,$referer = false)
{
$out = array('http' => array());
$method = strtoupper($method);
if($method == 'GET') {
$action .= !empty($params) ? '?'.$params : '';
$out['http']['method'] = 'GET';
} elseif($method == 'POST') {
$out['http']['method'] = 'POST';
$out['http']['header'] = "Content-type: application/x-www-form-urlencoded\r\n".
"Content-length: ".strlen($params)."\r\n";
$out['http']['content'] = $params;
} else {
die('Йа криветко');
}
if($this->proxy) {
$out['http']['proxy'] = 'tcp://'.$this->proxy;
}
if($cookie) {
$out['http']['header'] .= 'Cookie: '.$cookie."\r\n";
}
if($referer) {
$out['http']['header'] .= 'Referer: '.$referer."\r\n";
}
$out['http']['header'] .= "Connection: close\r\n";
$out['http']['header'] .= "User-Agent: Opera/9.62 (Windows NT 6.0; U; ru) Presto/2.1.1\r\n";
$content = stream_context_create($out);
$result = @file_get_contents($action,false,$content);
$res = array();
$res = array($result);
if($header) {
$res[] = implode("\r\n",$http_response_header);
}
return $res; //Возвращаем ответ + заголовки
}
private function preg_Cookie($cookie)
{
preg_match_all('#Set-cookie: (.*;)#UiS',$cookie,$headers);
return implode(' ',$headers['1']);
}
private function preg_Location($text)
{
preg_match('#Location: (.*)#',$text,$reg);
return trim($reg['1']);
}
private function getnormal ($str)
{
return str_replace ("&", "&", $str);
}
public function setOption($email,$pass,$url,$proxy = '')
{
$this->email = urlencode($email);
$this->pass = urlencode($pass);
$this->url = urlencode($url);
$this->proxy = $proxy;
}
public function parse()
{
if(strstr($this->result,'Your key is'))
{
preg_match('~page_title">(.*)\©2008 Google~sUi',$this->result,$reg);
echo '<html>
<head>
<link href="http://code.google.com/css/codesite.pack.01312008.css" type="text/css" rel="stylesheet"></link>
</head>';
echo $reg[1];
}
else
{
echo '[-] Не удалось получить Google Maps API Key!';
}
}
public function Sign()
{
$res = $this->sock_do('https://www.google.com/accounts/LoginAuth','POST',1,'Email='.$this->email.'&Passwd='.$this->pass.'&PersistentCookie=yes&rmShown=1&signIn=%D0%92%D0%BE%D0%B9%D1%82%D0%B8&asts=');
$cookie = $this->preg_Cookie($res[1]);
$location = $this->preg_Location($res[1]) or die('[-] Неправильный логин или пароль!');
unset($res);
$res = $this->sock_do($location,'GET',1,'',$cookie);
preg_match('/url='(.+?)'/',$res[0],$reg) or die('[-] Произошла ошибка при логине аккунта!');
$location = $this->getnormal($reg[1]);
unset($res);
$res = $this->sock_do($location,'GET',1,'',$cookie);
$cookie = $this->preg_Cookie($res[1]);
unset($res);
$res = $this->sock_do('http://maps.google.com/maps/api_signup?url='.$this->url,'GET',1,'',$cookie);
$this->result = $res[0];
unset($res);
}
}
$gmk = new gMapKey();
$gmk->setOption($email,$pass,$url,$proxy);
$gmk->Sign();
$gmk->parse();
?>
Форум порезал некоторые регулярки)
Качаем
|
|
|

21.03.2009, 15:12
|
|
Banned
Регистрация: 21.11.2007
Сообщений: 181
С нами:
9721141
Репутация:
1013
|
|
DirsSearcher
Код:
#!/usr/bin/python
#header dirs scan
#http://sql.parsers.info/
#faza02[at]gmail[dot]com
import urllib
def scan():
print ' ____________________________ '
print ' / /\ '
print ' / _/ /\ '
print ' / by faza02 / \/ '
print ' / /\ '
print '/___________________________/ / '
print '\___________________________\/ '
print ' \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ '
good = [100, 101, 200, 201,202, 203,204,205, 206, 300, 301, 302, 303, 304, 305]
site = raw_input(u'\nsite: ')
dirlist = raw_input(u'dirs: ')
fileopen = open(dirlist, 'a+').readlines()
for i in range(len(fileopen)):
state = urllib.urlopen('http://' + site + fileopen[i][:-1]).getcode()
if state in good:
print fileopen[i][:-1] + ' - ' + str(state)
open('c:/' + site + '_log.txt', 'a+').write(fileopen[i][:-1] + ' - ' + str(state) + '\n')
scan()
print '\nok!'
сканер директорий, доволбно быстрый.
все логи хранит в c:/[site]_log.txt
http://sql.parsers.info/list.txt - неплохой словарь.
|
|
|

21.03.2009, 17:51
|
|
Участник форума
Регистрация: 21.02.2008
Сообщений: 255
С нами:
9589849
Репутация:
177
|
|
PHP код:
<?php
######################################## #######################################
#
# показывает, во сколько раз различаются скорости 2х кусков кода
# полезно для оптимизации
# настройки:
$tests = 5; # количество тестов для среднего арифметического
$calc = 50; # количество измерений за 1 тест
$repeat = 500; # количество повторов(подряд) кода за 1 измерение
# если используется ~ быстрый код, цифры нужно увеличить ( > )
# если используется медленный код, цифры нужно уменьшить ( < )
#
######################################## #######################################
echo "BEGIN TEST\n\n";
$tests = abs( (int)$tests );
$calc = abs( (int)$calc );
$repeat = abs( (int)$repeat );
$control = calc_control( $repeat );
$cnt = $tests * $calc;
$c = 0;
$result = 0;
if ( $tests === 0 || $cnt === 0 ) end_test( "FATAL ERROR" );
for ( $i = 0; $i < $tests; ++$i ) $result += test();
$result = round( $result / $tests , 2 );
if ( $result > 0 ) end_test( "1 faster x{$result}" );
else if ( $result < 0 ) end_test( "2 faster x" . (-$result) );
else end_test( "~ identical" );
######################################## #######################################
function end_test( $text )
{
echo "\n\n {$text}\n\nEND TEST\nPress ENTER";
die( fgets(STDIN) );
}
//eof
function calc_control( $repeat )
{
$avg = 0;
$cnt = 5;
for ( $i = 0; $i < $cnt; ++$i )
{
$time_s = microtime(1);
for ( $o = 0; $o < $repeat; ++$o ) {}
$time_f = microtime(1);
$avg += $time_f - $time_s;
}
return( $avg/$cnt );
}
function test()
{
global $calc, $repeat, $control, $cnt, $c;
$f1 = 0;
$f2 = 0;
$result = 0;
for ( $i = 0; $i < $calc; ++$i )
{
$time_s = microtime(1); for ( $o = 0; $o < $repeat; ++$o ) {}
$time_f = microtime(1); 10000 * ( $time_f - $time_s - $control );
$time_s = microtime(1);
for ( $o = 0; $o < $repeat; ++$o )
{
# код 1
microtime();
}
$time_f = microtime(1);
$timer1 = 10000 * ( $time_f - $time_s - $control );
$time_s = microtime(1); for ( $o = 0; $o < $repeat; ++$o ) {}
$time_f = microtime(1); 10000 * ( $time_f - $time_s - $control );
$time_s = microtime(1);
for ( $o = 0; $o < $repeat; ++$o )
{
# код 2
microtime(1);
}
$time_f = microtime(1);
$timer2 = 10000 * ( $time_f - $time_s - $control );
$c++; $complete = round( ($c/$cnt) * 100 );
echo "\r complete: {$complete}%";
if ( round( $timer1 , 5 ) === round( $timer2 , 5 ) )
{
end_test("absolute identical");
}
else if ( $timer2 > $timer1 ) // 1 faster
{
++$f1;
$result += $timer2 / $timer1;
}
else if ( $timer1 > $timer2 ) // 2 faster
{
++$f2;
$result += $timer1 / $timer2;
}
}
usleep(100000);
$result /= $calc;
if ( $f1>0 && $f2>0 ) return 0;
else if ( $f1 > 0 ) return $result;
else return -$result;
}
//eof
######################################## #######################################
?>
|
|
|

23.03.2009, 19:42
|
|
Участник форума
Регистрация: 28.04.2008
Сообщений: 172
С нами:
9492347
Репутация:
270
|
|
Получаем первую цитату из топа бездны башорга
PHP код:
<?php
$text = file_get_contents('http://bash.org.ru/abysstop');
preg_match('#<div>(.+)</div>#U',$text,$fraza);
echo '<p>',$fraza[0],'</p>';
?>
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|