ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

25.04.2009, 00:09
|
|
Участник форума
Регистрация: 30.07.2008
Сообщений: 152
Провел на форуме: 659306
Репутация:
34
|
|
Есть код
PHP код:
<?php
function packet() {
$c=1;
if($c=1) {
return array($c);
}
}
echo packet();
?>
При определенных обстоятельствах возвращается массив, и присваивается, на сколько я понял, функции packet(). Вопрос: как вытащить этот return'енный массив из функции?
|
|
|

25.04.2009, 00:31
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
$array = packet();
|
|
|

25.04.2009, 00:56
|
|
Участник форума
Регистрация: 30.07.2008
Сообщений: 152
Провел на форуме: 659306
Репутация:
34
|
|
PHP код:
function is_user_info($packet)
{
if(!is_array($packet))
return false;
if($packet[0] != $this->MRIM_CS_USER_INFO)
return false;
$p = $packet[1];
$ret = array();
$cnt = 0;
while(true) {
list(,$len) = unpack('L1',$p);
$p = substr($p,4);
$ret[$cnt]['param'] = substr($p,0,$len);
$p = substr($p,$len);
list(,$len) = unpack('L1',$p);
$p = substr($p,4);
$ret[$cnt]['value'] = iconv('UTF-16LE','UTF-8//IGNORE',substr($p,0,$len));
$p = substr($p,$len);
$cnt++;
if(strlen($p) == 0)
break;
}
for($i = 0; $i < count($ret); $i++) {
if($ret[$i]['param'] == 'MRIM.NICKNAME')
$this->nickname = $ret[$i]['value'];
if($ret[$i]['param'] == 'client.endpoint') {
list($ip) = explode(':',$ret[$i]['value']);
$this->ip = trim($ip);
}
}
return $ret;
}
Это класс. Описание:
PHP код:
mixed is_user_info(
array $packet - принятый от сервера пакет
) - проверяет, является ли принятый пакет личной информацией пользователя
принимает значения:
false - пакет не содержит ожидаемых данных
array - ассоциативный массив с полученными от сервера данными ("MESSAGES.TOTAL", "MESSAGES.UNREAD", "MRIM.NICKNAME" и др.)
Вот код mra.php
PHP код:
<?php
$login='anty611@bk.ru';
$pass='1721';
include("class.mrim.phps");
$mra = new mrim;
$mra->connect() or die('Ошибка при подключении к серверу');
$mra->login($login, $pass) or die('auth');
//$mra->message_auth('anty611@bk.ru', 'pizda');
$mra->recevie_packet()
echo $mra->is_user_info();
?>
Я пытаюсь вывести ответ сервера (массив), но не выходит. Перебирал все, что только мог. Про классы читал, но про это не видно ничего...
|
|
|

25.04.2009, 01:04
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
Во-первых, функции надо передавать пакет. Во-вторых, функция вернет массив с данными ТОЛЬКО если этот пакет - пакет юзеринфо
PHP код:
$tmp=$mra->recevie_packet();
var_dump($mra->is_user_info($tmp));
|
|
|
Вопрос а можна вернуть значение без использование |

25.04.2009, 02:15
|
|
Участник форума
Регистрация: 11.05.2008
Сообщений: 202
Провел на форуме: 420713
Репутация:
104
|
|
Вопрос а можна вернуть значение без использование
PHP код:
function seltopic($topic) {
static $arr;
connection();
$query="SELECT theme.post,theme.id,theme.id_page, theme.title,user.name,user.email,
theme.user_id FROM theme,user where theme.id_page=$topic and user.id=theme.user_id";
$rezult = mysql_query($query);
if(!$rezult) echo mysql_error().exit();
if(mysql_num_rows($rezult) > 0 ) {
$cat = mysql_fetch_array($rezult);
$arr[] = $cat;
$query2="SELECT id_page,post from theme where parent=".$cat['id_page']."";
$rezult2 = mysql_query($query2);
while(($cat2 = mysql_fetch_array($rezult2)) !==false) {
seltopic($cat2['id_page']) ;
}
}
return $arr ;
}
Вопрос а как можна вернуть значение без
использование
статической переменой 
|
|
|

25.04.2009, 11:13
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
DTW Вопрос - а где она используется? И какой смысл был, когда вы ее писали?
|
|
|

25.04.2009, 11:37
|
|
Голос разума
Регистрация: 27.09.2006
Сообщений: 529
Провел на форуме: 1607210
Репутация:
1617
|
|
Сообщение от DTW
PHP код:
function seltopic($topic) {
static $arr;
connection();
$query="SELECT theme.post,theme.id,theme.id_page, theme.title,user.name,user.email,
theme.user_id FROM theme,user where theme.id_page=$topic and user.id=theme.user_id";
$rezult = mysql_query($query);
if(!$rezult) echo mysql_error().exit();
if(mysql_num_rows($rezult) > 0 ) {
$cat = mysql_fetch_array($rezult);
$arr[] = $cat;
$query2="SELECT id_page,post from theme where parent=".$cat['id_page']."";
$rezult2 = mysql_query($query2);
while(($cat2 = mysql_fetch_array($rezult2)) !==false) {
seltopic($cat2['id_page']) ;
}
}
return $arr ;
}
Вопрос а как можна вернуть значение без
использование
статической переменой 
Собственно надо земенить
static $arr;
на
$arr = array();
ну или вообще убрать, все и без этого работать будет 
__________________
Бойтесь своих желаний. Они могут исполниться....
...О-о-о-о, ушами не услышать, глазами не понять!
|
|
|

25.04.2009, 11:49
|
|
Познавший АНТИЧАТ
Регистрация: 01.06.2008
Сообщений: 1,047
Провел на форуме: 5321514
Репутация:
3313
|
|
Сообщение от SQLHACK
Собственно надо земенить
static $arr;
на
$arr = array();
ну или вообще убрать, все и без этого работать будет 
Во первых лучше все объявлять, тогда не будет ворненгов. И еще иногда является защитой от какеров
|
|
|

25.04.2009, 12:23
|
|
Новичок
Регистрация: 02.06.2008
Сообщений: 20
Провел на форуме: 46963
Репутация:
-15
|
|
а что такое zend studio ?
|
|
|

25.04.2009, 12:27
|
|
Постоянный
Регистрация: 07.03.2008
Сообщений: 479
Провел на форуме: 791766
Репутация:
61
|
|
Как проверить есть ли в строке какаето либо слово из массива вне зависимости от регистра букв
Тоесть надо сделать проверку на Селекты Юнионы и если есть то запустить их вырезание или замену+вызов функции err_log()
|
|
|
|
 |
|
|
Здесь присутствуют: 5 (пользователей: 0 , гостей: 5)
|
|
|
|