2b315845

в заголовок ответа web сервера


3.4.2001 13:18  Дмитрий  []
Вообще-то, ф-ция header добалвяет запись в заголовок ответа web сервера клиенту, а не в заголовок запроса...
Ответ Antonio:

Да, действительно так :-) Сорри за очепятку. Был не прав, вспылил.
30.5.2001 14:03  Elina Zverinskaia  []
Добрый день! Меня мучает вот какой вопрос. По адресу http://webde-ag.de/de/presseservice/bildarchiv/a+Das+WEB.DE+logo.htm сделано вот что: когда я хочу скачать tiff-файл в Netscape, то независимо от настройки Preferences для типа tiff "Ask me before opening downloaded files of this type" при нажатии на ссылку tif не возникает окно для выбора открыть или сохранить, а сразу выскакивает окно для сохранения. Как это сделано? С помощью HTTP? Нужно это вот для чего. Если у пользователя не установлен выше упомянутый флажок и нет программы для показа tiff-файлов, то если в HTML ставить просто href=file.tiff, то вылезает ошибка, будто файла нет на сервере.
Ответ DL:

По-моему, вы смешиваете разные вещи. С помощью HTTP установить, что делать броузеру - сохранить или открыть файл - нельзя. Всё дело в самом броузере. Если он имеет плагин для tiff то может предложить открыть. Если в системе есть программа, приписанная к расширению tiff, тоже будет предложено открыть файл. Например, когда вы нажимаете на ссылку к mp3-файлу, вам предлагается открыть его "оттуда" (на самом деле, файл будет так же скачан, но сохранён в кэше броузера). При чём тут http и "<a href=", не знаю.
3.7.2001 05:48  Abracadab.Rus  []
С помощью эмулирования запроса браузера я пытаюсь заставить сервер делать то, что он делает из окна браузера. Этого возможно добиться? Я не понял что значит "Cookie: income=1rn", как мне отправить на сервер свой кук? Что SetCookie() использовать?
Ответ DL:

Как написано, так и использовать: в запросе писать строку "Cookie: имя=значение"
24.7.2001 18:39  Alexander
Здесь жаловались на нехватку примеров. Вот один из примеров, взятый с www.phpbuilder.com

// Set this to "1" to run a demonstration of this library.

$show_example=0;

###################### ORIGINAL AUTHOR'S HEADER:

// simple post method

// version 1.0 by Andrus (andrus@vnet.ee)

// Disclaimer:

// everyone can change or use this code however and wherever they want ;)

###################### MY HEADER (Benjamin Smith)

/*

I like the "share and share alike" philosophy - so this modified library is

distributed under the LGPL. If you use this, and make any improvements, you

need to publish this in the shared code library on www.phpbuilder.com

- Benjamin Smith (bens_nospam@benjamindsmith.com

*/



// send out "browser" headers

function post_send_headers ($fp)

{

fputs ($fp, "Accept: */*n");

fputs ($fp, "Accept-Language: enn");

fputs ($fp, "Connection: Keep-Aliven");

fputs ($fp, "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)n");

}

// post data and return reply

function post_data ($host, $url, $data, $port=80)

{

// INPUT VALIDATION:

if (strlen($host)
return false;

if (strlen($url)
return false;

if ((!is_array($data)) sizeof($data)
return false;

$fp = @fsockopen ($host, $port, $errno, $errstr, 120);

$ret = "";

//if (strncasecmp ($url, "http://", 7) == 0) $url = substr ($url, 7);

$req = substr ($url, $p);

if ($fp)

{

fputs ($fp, "POST $req HTTP/1.0n");

post_send_headers ($fp);

fputs ($fp, "Content-type: application/x-www-form-urlencodedn");

$out = "";

while (list ($k, $v) = each ($data))

{

if(strlen($out) != 0) $out .= "&";

$out .= rawurlencode($k). "=" .rawurlencode($v);

}

$out = trim ($out);

fputs ($fp, "Content-length: ".strlen($out)."nn");

fputs ($fp, "$out");

fputs ($fp, "n");

while(!feof($fp))

{

$ret .= fgets($fp,128);

}

fclose ($fp);

}

return $ret;

}

// example how to use:

if ($show_example!=1)

{

// do nothing.

}

elseif (is_array($HTTP_POST_VARS) && sizeof ($HTTP_POST_VARS)>0)

echo "IT WORKED! YOU ENTERED $var";

else {

$host='localhost';

$form='/sendform.php';

$pass=array(

'var' => 'some stuff'

);

echo $reply=post_data($host, $form, $pass);

}

?>
<
10.4.2001 11:48  Seagulls  []
Сам пользуюсь PHPEditor, вот дистрибутив его занимает уже 1.8 Мб вместо 0.965 Кб

Спасибо за совет про EditPlus 2.10c
10.4.2001 12:01  horm  []
Согласен со всем. Homesite 4.5 глючит и просто так. Пользовался им два месяца, после чего стал писать в блокноте.
10.4.2001 12:02  berg  []
Было бы интересно услышать Ваше мнение о редакторе PHP Coder (http://www.phpide.de/index.php4)

А вообще хочу заметить что всем навороченным или специализированным редакторам предпочитаю EditPlus, он шустрый и удобный
Ответ DL:

Спасибо. Посмотрю.
10.4.2001 13:45  Sad Spirit
Homesite надо 4.5.2 ставить. Там часть memory leak'ов почистили, заодно он теперь предупреждает "у системы ресурсы кончаются! щас капец настанет!"
10.4.2001 15:22  Eugene
A TextPad?
Ответ DL:

Ни разу не слышал.
10.4.2001 15:43  tony2001  []
Far + Colorer = rulez.

Главное иметь правильную версию Рук, чтобы не глючило =))
Ответ DL:

Когда я работал сисадмином в маленькой психиатрической больнице, к психиатру поступил мой коллега... :))))
10.4.2001 16:17  Alexander Garbuz  []
HomeSite тут не при чем. Это вотпрос стабильности Windows. В версии 4.0.2 были некоторые глюки в текстовом редакторе но начиная с версии 4.5.0 их все убрали. А зависание происходит из-за кривого распределения памяти в Windows. На Winddows 2000 за почти год работы в версией 4.5.0 - 4.5.2 ни разу не было сбоя. Хотя для PHP это может и не лучший редактор. Но вот для HTML ничего лучше не придумали пока. HTML-Kit хорошая штука но вот по наглядности интерфейса сильно уступает HS. К тому же в посленей версии есть поддержка JSP. А ASP он подерживает уже почти год.
10.4.2001 17:05  Виктор  []
Можно еще писать в Cold Fusion Studio или JRun Studio (тот же home site, но с поддержкой rds и дополнительми панельками для CFML и JSP). После notepad'a скорость написания скриптов увеличивается раза в 2:))
10.4.2001 18:04  Ramzes  []
имхо, Homesite лучший редактор жаль, что его здесь нет.

Скорее это чисто субъективное мнение редактора его не включить в обзор, а если объективно.. =)

Настоящий конструктор, как настроешь, так и будет работать.. самая грамотная подсветка синтаксиса.

Я им пользуюсь более 4лет, еще с верисии 1.8 помоему, давно это было, нареканий нет :)

Можно изобретать велосипед, а можно пользовать настоящим инструментом, жду 5 вер. наверно там будет предусмотрена панель и для PHP тоже.
Ответ DL:

Ну... мне ещё было влом качать 13 мегабайт :)
<


20.4.2001 10:12  Павел
Спасибо! Обязательно попробую. Тем более сейчас мне необходимо иметь и PHP3 (для *.php3) и PHP4 (для *.php) одновременно. Кое-что связанное с установкой стало яснее.
20.4.2001 12:52  Павел
Заработало! Действительно для установки достаточно всего 3 файлов.

Единственное что пришлось изменить - это строку LoadModule php4_module "f:/usr/local/php/php4apache.dll" на вариант с другими слешами LoadModule php4_module "f:usrlocalphpphp4apache.dll" в файле httpd.conf . Возможно это только в моей версии Apache: Apache/1.3.6 (Win32)?

Теперь у меня работает (он и раньше работал) PHP3 (а-ля CGI) и PHP4 (как модуль). PHP3 обрабатывает *.php3, а PHP4 работает с *.php - совсем как на моем настоящем сайте.
20.4.2001 12:54  Павел
Обратные слеши к сожалению не отобразились.
20.4.2001 16:15  Serge V. Larionov  []
А я сразу на этот способ наткнулся :) Я даже не знал. что это будет, как модуль апача.

Так что мне, в этом смысле, повезло.
21.4.2001 15:14  WereWolf  []
Ё-МОЁ!!!!!

запарился искать модуль php4apache.dll

все остальное есть... дайте плз ссылку де найти..или киньте на почту
21.4.2001 20:25  WereWolf
Спасибо, Pavel M.

отбой!! файло прислали... :)
23.4.2001 00:17  Daemonoid
Раз пошла такая пьянка - вот пример. Тестировалось на Apache 1.3.19 / mod_php 4.0.4pl1 / w2k

$fn="test.txt";

$fp=fopen($fn,"w");

for ($i=0;$i
fclose($fp);

$fp=fopen($fn,"r");

$s=fread($fp,256);

fclose($fp);

echo filesize($fn)." ".strlen($s);

Выдает он совсем не то, что ожидалось (256 256). Как показал эксперимент, символ EOF (код #1A) здесь работает именно как EOF. Это касается всех функций, которые работают с файлами - fgets, fread, file, readfile и т.д. А вот в качестве CGI все работает. Только из-за этого пришлось отказаться от вкусностей mod_php (самое вкусное для меня - возможность авторизации средствами PHP).

Господа, попробуйте у себя его проверить (и на w2k, и на w98 - ну нет у меня 98х ;).
23.4.2001 09:57  Павел
На 98 твой пример дает то же самое что и у тебя.

Попробовал использовать бинарный режим (при открытии букву b) и все заработало.

Вместо $fp=fopen($fn,"w"); пиши $fp=fopen($fn,"wb");

Вместо $fp=fopen($fn,"r"); пиши $fp=fopen($fn,"rb");

Проверь на своей системе.
<


30.4.2001 11:51  DL  []
Отзывы не работали, теперь, кажется, всё в порядке.
30.4.2001 18:01  eagle
Зачем нужны функции, если эта навигационная строка используется

на странице один раз? Проще инклудить или реквестить pages.inc, рисующий нужную строку,

а текущую страницу и количество страниц получать в запросе в основной странице.

Это позволит и учитывать специфичность запросов - фильтрация, сортировка, и в начале страницы

нередко полезно указать страница 5 из 46.

Проверять же достоверность количества страниц вовсе не барское дело - всегда найдется клиент, которому интересно

будет ввести число по больше ручками.
Ответ DL:

Навигационная строка может использоваться два раза - если списка на странице два (хотя это, конечно, редкий изврат :). Просто у меня include и require для вывода данных запрещены. Потому что шаблонами пользуюсь. Там делается

$page->assign(array("limit" => get_limit(...), "nav_bar" => draw_bar(...)));

>страница 5 из 46
Кому надо, пусть свою функцию напишет - это ж для программистов сайт! Что им, сложно? :)
1.5.2001 13:59  Nina  []
Дима, исправь ссылку во втором абзаце строки ("Я уже писал про..."
Ответ DL:

Исправлено.
4.5.2001 15:30  Purr Serpent  []
Все это достаточно красиво и просто, но лучше бы было продолжение(расширение) статьи для случая, когда существуют (используются) несколько источников (возможно разнородных по структуре) для формирования результирующего списка.
Ответ DL:

Проблематично.
6.5.2001 14:03  BOLK
> if ($count/2==intval($count/2))

Замени на $count & 1. После такого остально читать не хочется.
6.5.2001 14:05  BOLK
> $amount = @mysql_result(mysql_query("SELECT count(id) as goods_total FROM goods"),0);

Э... а это что? :((

list ($amount) = mysql_fetch_row (...); не лучше?
16.5.2001 09:25  Constant  []
все эти варианты хороши только для случая, когда все разбито именно по записям. А как же быть с вариантами когда в поле сидит здоровый кусок текста и именно его нужно разбить по страницам, причем в зависимости от того сколько строк хочет увидеть пользователь на странице? Есть алгоритмы? Я вот с этим трапался довольно долго...
Ответ DL:

Это совсем другая песня, хотя что-то общее есть.
17.5.2001 13:48  Ioanna
A esli imen 15, u kazhdogo imeni po 30 zagolovkov k opisaniu, + vosmozhnost' prokrepit' file?...
<

Содержание раздела