RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 264
от 22.02.2006, 14:36

Администратор:Калашников О.А.
В рассылке:Подписчиков: 228, Экспертов: 38
В номере:Вопросов: 4, Ответов: 9


Вопрос № 35574: Уважаемые эксперты вот такая маленькая проблемка. Наверняка вы все часто сталкивались с такой проблемой как кеширование страниц. Вот и столкнулся. Для отключения кеширования я включил в Php код вот такую "зубодробительную" смесь (га...
Вопрос № 35581: Странно. Чуть поменял код. Добавил авторизацию и теперь вместо страницы выводится белый экран. В папке default лежат файлы шаблонов страниц. Они рабочии. Что то в этом скрипте. Гляньте. ..
Вопрос № 35597: Можно ли передать в скрипт имя ссылки (желательно не явно) по которой мы перешли к данному документу? Например. Есть некий файл one.php со строкой: <a href="two.php" name="Suda">Сюда</a> <a href...
Вопрос № 35598: Как с помошью функции header передать имя и пароль пользователя web-серверу, для автоматической регистрации. Т.е. где-то ввели через форму имя и пароль, а скрип перенаправляет в каталог с .htaccess, где указаны конкретные пользователи. И...

Вопрос № 35.574
Уважаемые эксперты вот такая маленькая проблемка.
Наверняка вы все часто сталкивались с такой проблемой как кеширование страниц.
Вот и столкнулся. Для отключения кеширования я включил в Php код вот такую "зубодробительную" смесь (гарантированно избавляет от кеширования):
<?
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-modified: ".gmdate("D, d M Y H:i:s")."GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragme: no-cache");
...
?>

НО всё бы ничего да вот только у неё есть побочныйе действия:
Все рисунки стали каждый раз перегружаться (по идее так и должно быть), однако мне это совершенно не нужно.

Итак вопрос:
Как отключить кеширование текстового содержимого страниц, но оставить кеш...(блин) рисунков.

P.S. тут скорее вожно знание headers чем php, но вдруг...
Отправлен: 16.02.2006, 20:55
Вопрос задал: Golden Spider (статус: 4-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Дмитрий Иванов
Здравствуйте, Golden Spider!

вобщем то есть другой путь. Если ты к каждому линку будешь добавлять дополнительный параметр, допустим time() , то все броузеры будут кешировать графику, а саму страницу постоянно обновлять, так как это будет считаться для них динамическим контентом с постоянно изменяемыми входящими данными.
---------
ставя оценку - подумай, может ты не все описал
Ответ отправил: Дмитрий Иванов (статус: Практикант)
Отправлен: 17.02.2006, 00:15
Оценка за ответ: 5
Комментарий оценки:
хммм... хитро... а нельзя ли попроще?

Отвечает: Lector
Здравствуйте, Golden Spider!
Есть вариант проще - добавить сессии, а идентификатор сессии передавать по ссылке :-). У меня яндекс 2 раза в день бывает 8-).
---------
Хочешь помочь старику - сделай вместо него.
Хочешь помочь новичку - сделай вместе с ним.
Хочешь помочь мастеру - отойди и не мешай,
а хочешь помочь дураку - сам дурак.
Ответ отправил: Lector (статус: Студент)
Отправлен: 18.02.2006, 04:45
Оценка за ответ: 5
Комментарий оценки:
попробую


Вопрос № 35.581
Странно. Чуть поменял код. Добавил авторизацию и теперь вместо страницы выводится белый экран.
В папке default лежат файлы шаблонов страниц. Они рабочии. Что то в этом скрипте. Гляньте.

Приложение:

Отправлен: 17.02.2006, 00:14
Вопрос задал: Delphin (статус: Студент)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Дмитрий Иванов
Здравствуйте, Delphin!
1.
$users = file( W_PATH."users.conf", "r" ) отсутствие еще одного обратного слеша

на самом деле чтобы не путаться ты можешь спокойно писать D:/web/www/acp

в принципе для PHP это одинаково.

2. if validate( $_POST['usr'], $_POST['pwd'] ){ - забыл скобки
---------
ставя оценку - подумай, может ты не все описал
Ответ отправил: Дмитрий Иванов (статус: Практикант)
Отправлен: 17.02.2006, 00:31
Оценка за ответ: 5
Комментарий оценки:
Спасибо !


Вопрос № 35.597
Можно ли передать в скрипт имя ссылки (желательно не явно) по которой мы перешли к данному документу?

Например.
Есть некий файл one.php со строкой:
<a href="two.php" name="Suda">Сюда</a>
<a href="two.php" name="Tuda">Туда</a>

А в файле two.php мы могли узнать по какой ссылке перешли (не используя метод GET).
Отправлен: 17.02.2006, 10:14
Вопрос задал: Connery (статус: 1-ый класс)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Straight
Здравствуйте, Connery!

Можно на onClick вешать запись в куку.
Например так:
<a href="two.php" name="Suda" onClick="setCookie('linkname',this.name)">Сюда</a>
PHP потом возмет значение из $_COOKIE['linkname']

Приложение:

Ответ отправил: Straight (статус: 8-ой класс)
Отправлен: 17.02.2006, 10:33

Отвечает: Андрей_26rus
Здравствуйте, Connery!
Можно сделать так:

в файл one.php помещаеш следующее:

<form name="suda" method="post" action="two.php">
<a href="#" onclick="javascript:suda.submit();">Сюда</a>
<input name="ssilk" value="0" type="hidden"></form>

<form name="tuda" method="post" action="two.php">
<a href="#" onclick="javascript:tuda.submit();">Туда</a>
<input name="ssilk" value="1" type="hidden"></form>

а в файле two.php проверяешь $_POST['ssilk']
если $_POST['ssilk']=0 тогда include('suda.php');
если $_POST['ssilk']=1 тогда include('tuda.php');

думаю принцип понятен...

P.S. у таких ссылок есть недостаток - они не будут индексироваться поисковыми роботами
---------
- = Tertium non datur = -
Ответ отправил: Андрей_26rus (статус: 2-ой класс)
Отправлен: 17.02.2006, 10:57

Отвечает: Ерёмин Андрей
Здравствуйте, Connery!
А можно не мудрить с куками и с JS, ибо не у всех эти вещи включены.
На мой взгляд, самый простой способ:
<a href="two.php?suda">Сюда</a>
<a href="two.php?tuda">Туда</a>
Страница ведь откроется одна и та же...
А в two.php обработчик:
if (isset($suda)) { нажали на "Сюда" }
if (isset($tuda)) { нажали на "Туда" }
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессионал)
Отправлен: 17.02.2006, 13:14

Отвечает: Lector
Здравствуйте, Connery!

смотри в разделе переменных
---------
Хочешь помочь старику - сделай вместо него.
Хочешь помочь новичку - сделай вместе с ним.
Хочешь помочь мастеру - отойди и не мешай,
а хочешь помочь дураку - сам дурак.
Ответ отправил: Lector (статус: Студент)
Отправлен: 18.02.2006, 04:42


Вопрос № 35.598
Как с помошью функции header передать имя и пароль пользователя web-серверу, для автоматической регистрации.

Т.е. где-то ввели через форму имя и пароль, а скрип перенаправляет в каталог с .htaccess, где указаны конкретные пользователи.
И если имя и пароль совпадают, то сервер не должен выводить окно авторизации, а просто пропустить далее.
Отправлен: 17.02.2006, 10:15
Вопрос задал: Connery (статус: 1-ый класс)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Straight
Здравствуйте, Connery!

Если я правильно понял, Вы хотите сделать HTTP-авторизацию, заданную через .htaccess/htpasswd, не в стандартном окне, а в веб-форме. Боюсь, что это невозможно.
Делайте свою авторизацию - через сессию например.
Ответ отправил: Straight (статус: 8-ой класс)
Отправлен: 17.02.2006, 10:39

Отвечает: Ерёмин Андрей
Здравствуйте, Connery!
Методом эксперимента заметил, что авторизация на сервере делается заголовком Authorization. Вот что именно передаётся: Authorization: Basic YW5kcmV5OjEzMDQ=. В последней "абракадабре" видимо и зашифрованы логин и пароль. К сожалению, каким способом они зашифрованы, мне узнать не удалось. Зато вот здесь описаны все тонкости:
http://www.php.net/features.http-auth
---------
Нет правила без исключений. Правило без исключений - исключение из правил.
Ответ отправил: Ерёмин Андрей (статус: Профессионал)
Отправлен: 17.02.2006, 13:19


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.14 (бета) от 09.02.2006
Яндекс Rambler's Top100

В избранное