gevara
25.06.2008, 00:06
скрипт принимает данные от клиента:
$h_postbuffer = fopen("php://input", "rb");
while(!feof($h_postbuffer))
{
$buffer = $buffer.fread($h_postbuffer, 1024);
}
mysql_query("UPDATE `cn` SET `answer` = '$buffer', `moded` =".time()." WHERE hash = '$hash'", $db);
затем отправляет их ему:
$ans = mysql_query("SELECT answer from `cn` WHERE hash = '$hash'", $db);
$row = mysql_fetch_array($ans, MYSQL_NUM);
print 'success:'.$row[0];
таблица cn создавалась так:
mysql_query("
CREATE TABLE `cn` (
`id` bigint(20) NOT NULL auto_increment,
`time` int(11) NOT NULL default '0',
`ip` text NOT NULL,
`country` text NOT NULL,
`hash` text NOT NULL,
`task` MEDIUMTEXT BINARY,
`answer` MEDIUMTEXT BINARY,
PRIMARY KEY (`id`),
`moded` int(11) NOT NULL default '0'
) TYPE=MyISAM AUTO_INCREMENT=1;"
);
в итоге переданные на сервер данные (я передаю данные в base64, то есть данные только текстовые) не совпадают с полученными, а именно:
я передаю серверу это:
...E4ARgBPADoAIAAgACAAQwBvAHAAaQBlAGQAIABm
в БД это:
...E4ARgBPADoAIAAgACAAQwBvAHAAaQBlAGQAIABm
а сервер мне выдаёт это:
...E4ARgBPADoAIAAgAC..10ae..AAQwBvAHAAaQBlAGQAIABm
на моём сервере такого глюка нет, но попробовал запускать на других - там он появляется. левые символы ..10ae.. появляются по смещению 0x0EDD от начала, смещение не зависит от самих данных - появляется всегда в одном и том-же месте. в чём может быть проблемма и как с ней справиться?
$h_postbuffer = fopen("php://input", "rb");
while(!feof($h_postbuffer))
{
$buffer = $buffer.fread($h_postbuffer, 1024);
}
mysql_query("UPDATE `cn` SET `answer` = '$buffer', `moded` =".time()." WHERE hash = '$hash'", $db);
затем отправляет их ему:
$ans = mysql_query("SELECT answer from `cn` WHERE hash = '$hash'", $db);
$row = mysql_fetch_array($ans, MYSQL_NUM);
print 'success:'.$row[0];
таблица cn создавалась так:
mysql_query("
CREATE TABLE `cn` (
`id` bigint(20) NOT NULL auto_increment,
`time` int(11) NOT NULL default '0',
`ip` text NOT NULL,
`country` text NOT NULL,
`hash` text NOT NULL,
`task` MEDIUMTEXT BINARY,
`answer` MEDIUMTEXT BINARY,
PRIMARY KEY (`id`),
`moded` int(11) NOT NULL default '0'
) TYPE=MyISAM AUTO_INCREMENT=1;"
);
в итоге переданные на сервер данные (я передаю данные в base64, то есть данные только текстовые) не совпадают с полученными, а именно:
я передаю серверу это:
...E4ARgBPADoAIAAgACAAQwBvAHAAaQBlAGQAIABm
в БД это:
...E4ARgBPADoAIAAgACAAQwBvAHAAaQBlAGQAIABm
а сервер мне выдаёт это:
...E4ARgBPADoAIAAgAC..10ae..AAQwBvAHAAaQBlAGQAIABm
на моём сервере такого глюка нет, но попробовал запускать на других - там он появляется. левые символы ..10ae.. появляются по смещению 0x0EDD от начала, смещение не зависит от самих данных - появляется всегда в одном и том-же месте. в чём может быть проблемма и как с ней справиться?