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

06.03.2008, 17:50
|
|
Участник форума
Регистрация: 08.10.2007
Сообщений: 259
Провел на форуме: 500748
Репутация:
137
|
|
Вот решил написать скрипт который загружает фалы из интернэта к себе на фтп но почемуто файлы получаются битые .обьясните пожайлуста.
PHP код:
<?php
$hostname = "imgl.yandex.net";
$path = "/i/www/logo.png";
$otvet = "";
$fp = fsockopen($hostname, 80, $errno, $errstr, 30);
$data = "\r\n\r\n";
$headers = "POST $path HTTP/1.1\r\n";
$headers .= "Host: $hostname\r\n";
$headers .= "Content-type: application/x-www-form-urlencoded\r\n";
$headers .= "Content-Length: ".strlen($data)."\r\n\r\n";
fwrite($fp, $headers.$data);
while (!feof($fp))
{
$otvet .= fgets($fp, 1024);
}
fclose($fp);
$massiv_otveta=explode("\n",$otvet);
$nachalo_ishodnica = array_search('', $massiv_otveta)-3;
$konec_ishodnica = count($massiv_otveta);
$filename = 'negri.png';
$handle = fopen($filename, 'x');
for ($i=$nachalo_ishodnica;$i<=$konec_ishodnica;$i++) {
fwrite($handle, $massiv_otveta[$i]);
}
fclose($handle);
?>
Последний раз редактировалось ZET36; 06.03.2008 в 18:04..
|
|
|

06.03.2008, 17:54
|
|
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме: 16641028
Репутация:
2371
|
|
ZET36,
PHP код:
<?php
$data = "\r\n\r\n";
$headers .= "Content-Length: ".strlen($data)."\r\n\r\n";
?>
Может в $data должно быть пусто? =\
|
|
|

06.03.2008, 18:07
|
|
Участник форума
Регистрация: 08.10.2007
Сообщений: 259
Провел на форуме: 500748
Репутация:
137
|
|
Isis хых непомогает, блин я конкретно ступил со скриптом всё можно сделать проще. но всёравно файл битый
PHP код:
<?php
$inetfile = fopen("http://imgl.yandex.net/i/www/logo.png", "r");
$copyfyle = fopen("logo.png", 'x');
while (!feof($inetfile)) {
$file = fgets($inetfile, 4096);
fwrite($copyfyle, $file);
fclose($copyfyle);
}
fclose($inetfile);
?>
мне кажется это происходит из за режимов для fopen()
(x) а какие есть ещё режимы для записи файлов?
Последний раз редактировалось ZET36; 06.03.2008 в 18:30..
|
|
|

06.03.2008, 18:19
|
|
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,188
Провел на форуме: 6023777
Репутация:
2642
|
|
$data - это строка с запросом ( var1=...&var2=...)
Вот исправления.
Строка 10 (на твоё усмотрение)
PHP код:
$data = "var1=...&var2=...";
Строка 17
Твой код можно упростить во много раз, если воспользоваться file_get_contents(), т.к. у тебя там использоваться должен метод не POST, а GET.
PHP код:
<?php
// {
$file_to_download = 'http://imgl.yandex.net/i/www/logo.png';
$filename = 'negri.png';
// }
$f_got = file_get_contents($file_to_download);
$fopen = fopen($filename, 'w');
fwrite($fopen, $f_got);
fclose($fopen);
?>
P.S. Права на файл negri.png или папку со скриптом должны быть 0777.
Последний раз редактировалось NOmeR1; 06.03.2008 в 18:23..
|
|
|

06.03.2008, 18:35
|
|
Участник форума
Регистрация: 08.10.2007
Сообщений: 259
Провел на форуме: 500748
Репутация:
137
|
|
NOmeR1 огромное спасибо. всё работает
|
|
|

07.03.2008, 00:55
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме: 3941248
Репутация:
668
|
|
Помогите плз я написал скрипт...у меня он работает.. а у чела которому он нужен не пашет вот скрипт
функция mysql_qw()
PHP код:
<?php ## Простейшая функция для работы с placeholder-ами.
// result-set mysql_qw($connection_id, $query, $arg1, $arg2, ...)
// - или -
// result-set mysql_qw($query, $arg1, $arg2, ...)
// Функция выполняет запрос к MySQL через соединение, заданное как
// $connection_id (если не указано, то через последнее открытое).
// Параметр $query может содержать подстановочные знаки ?,
// вместо которых будут подставлены соответствующие значения
// аргументов $arg1, $arg2 и т.д. (по порядку), экранированные и
// заключенные в апострофы.
function mysql_qw()
{
// Получаем все аргументы функции.
$args = func_get_args();
// Если первый параметр имеет тип "ресурс", то это ID соединения.
$conn = null;
if (is_resource($args[0]))
$conn = array_shift($args);
// Формируем запрос по шаблону.
$query = call_user_func_array("mysql_make_qw", $args);
// Вызываем SQL-функцию.
return $conn !== null ? mysql_query($query, $conn) : mysql_query($query);
}
// string mysql_make_qw($query, $arg1, $arg2, ...)
// Данная функция формирует SQL-запрос по шаблону $query,
// содержащему placeholder-ы.
function mysql_make_qw()
{
$args = func_get_args();
// Получаем в $tmpl ССЫЛКУ на шаблон запроса.
$tmpl = &$args[0];
$tmpl = str_replace("%", "%%", $tmpl);
$tmpl = str_replace("?", "%s", $tmpl);
// После этого $args[0] также окажется измененным.
// Теперь экранируем все аргументы, кроме первого.
foreach ($args as $i => $v)
{
if (!$i)
continue; // это шаблон
if (is_int($v))
continue; // целые числа не нужно экранировать
$args[$i] = "'" . mysql_escape_string($v) . "'";
}
// На всякий случай запорняем 20 последних аргументов недопустимыми
// значениями, чтобы в случае, если число "?" превышает количество
// параметров, выдавалась ошибка SQL-запроса (поможет при отладке).
for ($i = $c = count($args) - 1; $i < $c + 20; $i++)
$args[$i + 1] = "UNKNOWN_PLACEHOLDER_$i";
// Формируем SQL-запрос.
return call_user_func_array("sprintf", $args);
}
?>
Часть кода которая не работает:
PHP код:
$result = mysql_qw('SELECT * FROM items WHERE owner_id=? AND item_id=?', $char_id,4037) or die(mysql_error());
for ($red = array(); $row2 = mysql_fetch_array($result); $red[] = $row2);
if ($red == array())
{
$result = mysql_qw('SELECT MAX(object_id)+1 AS id FROM items');
$row = mysql_fetch_assoc($result);
$ins_id = $row['id'];
mysql_qw('INSERT INTO items SET owner_id=?, object_id=?, item_id=?, count=?', $char_id, $ins_id, 4037, $FAs_for_vote) or die(mysql_error());
} else {
mysql_qw('UPDATE items SET count=count+? WHERE owner_id=? AND item_id =?', $FAs_for_vote,
$char_id, 4037) or die(mysql_error());}
эта часть скрипта проверяет есть чи у чара этот предмет если да то добовляет +1 к количеству а если нет то просто создаёт его у чара....
но проблема в том что скрипт работает у меня нормально а у другова он просто создаёт всегда этот предмет заного даже если он существовал
Последний раз редактировалось Doom123; 07.03.2008 в 01:02..
|
|
|

07.03.2008, 01:00
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
а у вас БД одинаковые?
|
|
|

07.03.2008, 01:03
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме: 3941248
Репутация:
668
|
|
у меня mysql 5.0 у него 5.1
|
|
|

07.03.2008, 01:07
|
|
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме: 482261
Репутация:
58
|
|
а у вас БД одинаковые?
скорее всего у тебя БД более старой версии, а парнишки более новая версия.
если так то может и БД ругаться на запросы, елси мускул, то в новых версиях обязательны кавычки, как
PHP код:
SELECT * FROM `test` WHERE id="1"
|
|
|

07.03.2008, 01:14
|
|
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме: 3941248
Репутация:
668
|
|
я пытался и с помощью ковычек исправить не вышло( да и темболее там соит
or die(mysql_error()) что вывело бы ошибку в синтаксисе
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|