Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

12.05.2010, 17:39
|
|
Участник форума
Регистрация: 04.12.2005
Сообщений: 202
Провел на форуме: 414834
Репутация:
99
|
|
Обязательно ftp ?
1. Пробуй через сокеты, если не запрещено.
2. Напрямую через 80-й порт.
|
|
|

12.05.2010, 18:06
|
|
Постоянный
Регистрация: 29.07.2009
Сообщений: 400
Провел на форуме: 1455812
Репутация:
150
|
|
Сообщение от ^_WhitE_DeMoN_^
Нет доступа к php.ini
Ищу обход...
ini_set();
или читай через сокет
http://ru2.php.net/manual/en/function.fsockopen.php
|
|
|

13.05.2010, 19:39
|
|
Познающий
Регистрация: 01.03.2009
Сообщений: 85
Провел на форуме: 272527
Репутация:
19
|
|
FTP - не обязательно.
Нужно только реализовать закачку файла с одного сервера на другой, а как ето уже проблем... Со сокетами не знаком, но придется доки курить...
ini_set('allow_url_fopen', 'On'); не помогло...
|
|
|

17.05.2010, 10:47
|
|
Познающий
Регистрация: 01.03.2009
Сообщений: 85
Провел на форуме: 272527
Репутация:
19
|
|
И через сокеты не пашет - URL file-access is disabled in the server configuration (2)
Другие идеи..?
|
|
|

17.05.2010, 11:25
|
|
Познающий
Регистрация: 07.02.2010
Сообщений: 70
Провел на форуме: 217996
Репутация:
56
|
|
слать через POST, если файлы большие (или ограничение на POST), то кусками с указанием сегментов
вначале сделать запрос на передачу файла, в POST параметрах указать имя файла, логин/пароль, хэш всего файла, его размер.
Далее, получив согласие получателя и код сессии начинаем передавать сегменты файла:
указать только начало, конец, контрольную сумму (на всякий) обрывка; сессию на файл
Принимающий собирает по кускам, проверяет получившуюся контрольную сумму и всё.
Ну и написать проверку, что если были ранее начаты сессии с незаконченными передачами, которые не обновлялись более часа, то их стоит удалить.
куски файла можно зипировать..
а если и в base64 закодировать, то можно и GET-ом передать xD правда там на заголовки больше уйдёт трафика, но система будет работать 
Последний раз редактировалось roxblnfk; 17.05.2010 в 11:28..
|
|
|

17.05.2010, 22:35
|
|
Познающий
Регистрация: 01.03.2009
Сообщений: 85
Провел на форуме: 272527
Репутация:
19
|
|
Вообще не врубил...
|
|
|

17.05.2010, 23:01
|
|
Постоянный
Регистрация: 29.07.2009
Сообщений: 400
Провел на форуме: 1455812
Репутация:
150
|
|
а если и в base64 закодировать, то можно и GET-ом передать
При base64 строка увеличиться в несколько раз, а метод GET при отправки большого количества данных какбе не лучший вариант.
^_WhitE_DeMoN_^, Ты сокетами, надеюсь, отправлял заголовки?
|
|
|

17.05.2010, 23:41
|
|
Познающий
Регистрация: 07.02.2010
Сообщений: 70
Провел на форуме: 217996
Репутация:
56
|
|
Сообщение от LStr1ke
При base64 строка увеличиться в несколько раз, а метод GET при отправки большого количества данных какбе не лучший вариант.
^_WhitE_DeMoN_^, Ты сокетами, надеюсь, отправлял заголовки?
я об этом и говорю, что заголовки ппц будут
^_WhitE_DeMoN_^, написл для тебя функцию с коментами. Если не новиш в php, то дальше сам разрулишь
(функцию можешь не изучать, просто используй как надо, хотя в ней многое не учтено, но для простых запросов хватит)
PHP код:
function HTTP_request($serv='127.0.0.1', $port=80, $timeout=30, $host='localhost', $addr='/index.php', $post=null, $cookies=null){
$str='';$heads='';
if(is_array($post))if(count($post)>0){
$method='POST';
$str.="\r\n\r";
foreach($post as $k=>$v){
$str.='&'.$k.'='.urlencode($v);
}
$str{4}="\n";
$heads.="\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: ".(strlen($str)-4);
}
if(!isset($method)){
$method='GET';
//$heads.="\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
$str="\r\n\r\n";
}
if(is_array($cookies))if(count($cookies)>0){
$cook="\r\nCookie: ";
foreach($cookies as $k=>$v){$cook.=$k.'='.urlencode($v).'; ';}
$heads.=substr($cook,0,-2);
}
if(false!=($f=@fsockopen($serv, $port, $errno, $errstr, $timeout))){
$ss='';
fputs ($f, "$method $addr HTTP/1.1".$heads."\r\nHost: $host\r\nConnection: close".$str);
while (!feof($f)) {
$ss.=fgets($f, 512);
}
fclose($f);
}else return array(false, $errstr);
return array(true, $ss);
} // вернёт массив 0=>сокет сконнектил 1=> если не сконнектил, то текст ошибки, иначе овтет сервера
//////////////////////////
//////
$serv='127.0.0.1'; // IP или домен сервера
$port=80; // порт
$host='localhost'; // Что передавать в заголовке HOST
$addr='/index.php';// Адрес до страницы на сайте
$timeout=30; // таймаут соединения
$post=array(); // массив с переменными в формате ($var1 => $value1, $var2 => $value2...) {в $var# желательно использовать только латину}
$cookie=array();// cookies заполняется аналогично $post
print_r(HTTP_request($serv, $port, $timeout, $host, $addr, $post, $cookie));
Последний раз редактировалось roxblnfk; 18.05.2010 в 00:12..
Причина: добавил куки, таймлимит сдвинул влево, чтоб не мешался :) поставил пробелы, а то принудитльно ставятся форумом где не надо
|
|
|

18.05.2010, 15:25
|
|
Познающий
Регистрация: 25.12.2009
Сообщений: 95
Провел на форуме: 750417
Репутация:
51
|
|
ini_set('allow_url_fopen', 'On'); не помогло...
kuri htaccess
|
|
|

20.05.2010, 01:52
|
|
Познающий
Регистрация: 01.03.2009
Сообщений: 85
Провел на форуме: 272527
Репутация:
19
|
|
@LStr1ke, неа...
@roxblnfk, возвращает "1" =(
@|qbz|, и .htaccess не прокатил...
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|