HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #2191  
Старый 06.03.2008, 17:50
ZET36
Участник форума
Регистрация: 08.10.2007
Сообщений: 259
Провел на форуме:
500748

Репутация: 137
По умолчанию

Вот решил написать скрипт который загружает фалы из интернэта к себе на фтп но почемуто файлы получаются битые .обьясните пожайлуста.

PHP код:
<?php   
$hostname 
"imgl.yandex.net";  
  
$path "/i/www/logo.png";  
  
$otvet "";  
 
  
$fp fsockopen($hostname80$errno$errstr30);   
   
  
     
    
$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($fp1024); 
       
    }   
    
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..
 
Ответить с цитированием

  #2192  
Старый 06.03.2008, 17:54
Isis
Флудер
Регистрация: 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 должно быть пусто? =\
 
Ответить с цитированием

  #2193  
Старый 06.03.2008, 18:07
ZET36
Участник форума
Регистрация: 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($inetfile4096);

fwrite($copyfyle$file);
fclose($copyfyle);   
}
fclose($inetfile);
?>
мне кажется это происходит из за режимов для fopen()
(x) а какие есть ещё режимы для записи файлов?

Последний раз редактировалось ZET36; 06.03.2008 в 18:30..
 
Ответить с цитированием

  #2194  
Старый 06.03.2008, 18:19
NOmeR1
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,188
Провел на форуме:
6023777

Репутация: 2642


Отправить сообщение для NOmeR1 с помощью ICQ
По умолчанию

$data - это строка с запросом (var1=...&var2=...)

Вот исправления.

Строка 10 (на твоё усмотрение)
PHP код:
$data "var1=...&var2=..."
Строка 17
PHP код:
fwrite($fp$headers); 
Твой код можно упростить во много раз, если воспользоваться 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..
 
Ответить с цитированием

  #2195  
Старый 06.03.2008, 18:35
ZET36
Участник форума
Регистрация: 08.10.2007
Сообщений: 259
Провел на форуме:
500748

Репутация: 137
По умолчанию

NOmeR1 огромное спасибо. всё работает
 
Ответить с цитированием

  #2196  
Старый 07.03.2008, 00:55
Doom123
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме:
3941248

Репутация: 668


Отправить сообщение для Doom123 с помощью ICQ
По умолчанию

Помогите плз я написал скрипт...у меня он работает.. а у чела которому он нужен не пашет вот скрипт

функция 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_id4037$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_id4037) or die(mysql_error());} 
эта часть скрипта проверяет есть чи у чара этот предмет если да то добовляет +1 к количеству а если нет то просто создаёт его у чара....
но проблема в том что скрипт работает у меня нормально а у другова он просто создаёт всегда этот предмет заного даже если он существовал

Последний раз редактировалось Doom123; 07.03.2008 в 01:02..
 
Ответить с цитированием

  #2197  
Старый 07.03.2008, 01:00
RedBull@12
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме:
482261

Репутация: 58
По умолчанию

а у вас БД одинаковые?
 
Ответить с цитированием

  #2198  
Старый 07.03.2008, 01:03
Doom123
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме:
3941248

Репутация: 668


Отправить сообщение для Doom123 с помощью ICQ
По умолчанию

у меня mysql 5.0 у него 5.1
 
Ответить с цитированием

  #2199  
Старый 07.03.2008, 01:07
RedBull@12
Участник форума
Регистрация: 06.11.2006
Сообщений: 129
Провел на форуме:
482261

Репутация: 58
По умолчанию

а у вас БД одинаковые?
скорее всего у тебя БД более старой версии, а парнишки более новая версия.
если так то может и БД ругаться на запросы, елси мускул, то в новых версиях обязательны кавычки, как
PHP код:
SELECT FROM `testWHERE id="1" 
 
Ответить с цитированием

  #2200  
Старый 07.03.2008, 01:14
Doom123
Постоянный
Регистрация: 11.11.2006
Сообщений: 834
Провел на форуме:
3941248

Репутация: 668


Отправить сообщение для Doom123 с помощью ICQ
По умолчанию

я пытался и с помощью ковычек исправить не вышло( да и темболее там соит
or die(mysql_error()) что вывело бы ошибку в синтаксисе
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[c/c++] Новичкам: задаем вопросы _Great_ С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby 5421 21.04.2026 07:37
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ