Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сокет для http:80 не работает! 
:(
    Опции темы
szz
Дата 2.8.2006, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 8
Всего: 33



Посмотрев статью index.php?act=ST&f=176&t=103996&st=
а также в конце почитав это
index.php?act=module&module=vingradfaq&article_num=003044
решил создать свою функцию для получения данных с другого сервера.

   Но она почему-то всегда выдает 404 file not found!

  Вот, посмотрите.

  А вот исходник этого скрипта (функция url_get_contents_get типа и есть та замена):
Код

<?
function necho($a){
    echo nl2br($a), '<br>';
}
function default_request_var($var, $def=''){    
    return empty($_REQUEST[$var])?$def:$_REQUEST[$var];}



$host = default_request_var('host', 'xkiosk.net');
$port = intval(default_request_var('port', '80'));
$path = default_request_var('path', '/index.php');
$getvars = default_request_var('getvars', '');
?>
<form action="url.php" method="GET">
<?function echoinput($n){?>
    <?=$n?>: <input name="<?=$n?>" value="<?=$GLOBALS[$n]?>">
<?}
echoinput('host');
echoinput('port');
echoinput('path');
echoinput('getvars');
?>
<input type="submit" value="ok">

</form>
got: <?=$host?>:<?=$port?><?=$path?>, get vars: <?=$getvars?><br>
<?
function url_get_contents_get($host, $path='/', $getvars='', $port=80){
    if($getvars)$getvars='?'.$getvars;
    $errno=0;
    $errstr='-';
    $putthis = '';
    
    necho( '<b>DOING:</b> '."fsockopen($host, $port, $errno, $errstr, 4)");
    $fp = fsockopen($host, $port, $errno, $errstr, 4);
    if(!$fp) return false;
    necho('CONNECTED!<br>');
    $putthis .= "GET $path$getvars HTTP/1.0\nUser-Agent: Mozilla\nReferer: xkiosk.net\nCookie: test=test_cookie\n\n";
    necho( "<b>SENDING THIS:</b>\n". ($putthis));
    fputs($fp, $putthis);    
    $ret = '';
    while(!feof($fp)) $ret .= fgets($fp); //Выводим ответ сервера
    
    fclose($fp); //Закрываем сокет
    return $ret;

}

$ret =  url_get_contents_get($host, $path, $getvars, $port);
?>we got: <pre><?=var_dump($ret)?></pre><br><?

?>



--------------------
PM   Вверх
jsa
Дата 2.8.2006, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 704
Регистрация: 19.1.2006
Где: Новосибирск

Репутация: 1
Всего: 20



да впринципе, все правильно, все работает, если path сделать просто / , а не /index.php, причем это распространяется не только на xkiosk.net, может это просто особые настроки для DocumentRoot у апача

Добавлено @ 18:31 
может быть еще какого заголовка не хватает


--------------------
Все мы, на перине с песней, строим небо на земле © Ю. Шевчук
PM MAIL ICQ   Вверх
szz
Дата 3.8.2006, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 8
Всего: 33



Судя по этому - все верно вроде...
 Гм...


--------------------
PM   Вверх
AztEK
Дата 3.8.2006, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: 6
Всего: 18



Да, для других серверов и страниц это работает.
Думаю, нужны ещё заголовки.
Проще всего взять сниффер и посмотреть, какие заголовки посылает браузер, что сервер возвращает "200".

P.S. В статье есть отмазка  smile 
Цитата
Здесь приведён простейший пример, в реальных условиях, возможно, потребуются дополнительные проверки.



--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
AztEK
Дата 3.8.2006, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: 6
Всего: 18



Заинтересовался твоей проблемой. Кажется, нашёл решение. Самым первым заголовком отошли:
Код
Host: xkiosk.net


Вместо xkiosk.net ессесно название хоста.


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
szz
Дата 3.8.2006, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 8
Всего: 33



Вот спасибо! А я уже pearовские классы использовал...


--------------------
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0813 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.