Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Сеанс и роботы: не дыру ли я нашёл!

Сообщения:  [1-10]   [11-17] 

 
 автор: кен   (15.05.2005 в 16:15)   письмо автору
 
   для: кен   (15.05.2005 в 04:27)
 

Никто ничего не знает про get_browser()? Что-то я не пойму, как инсталлировать browscap.ini?

   
 
 автор: кен   (15.05.2005 в 04:27)   письмо автору
 
   для: кен   (14.05.2005 в 04:29)
 

Вот такой совет нашёл на http://www.php.net/manual/en/ref.session.php:

wolfpack 03-Apr-2005 12:02
Search engines in general don't support cookies, and they don't do well with SIDs in the query string. If you use sessions, especially URL-based sessions, and want your site to be search engine friendly, the following works well:


<?php
   $br 
get_browser();
   if (!(
$br->crawler))
   {
       
// any session-related code goes here    
   
}
   else
   {
       
// whatever your page needs to work without sessions
   
}
?>

To use the function get_browser() you may need to install browscap.ini. See the documentation for get_browser() for more info.

Дельный ли совет? Если эта штука работает как надо, то ей ведь и в статистике роботов ловить можно. А главное, по теме, роботы будут делать "чистые" ссылки, и проблема решается очент элегантно! Но вот насколько этот get_browser() точен? Кто-нибудь такой штукой пользовался?

   
 
 автор: кен   (15.05.2005 в 04:10)   письмо автору
 
   для: JIEXA   (14.05.2005 в 19:42)
 

Это я здесь опечатался. А файл правильно называется: robots.txt. И не работает.

   
 
 автор: JIEXA   (14.05.2005 в 19:42)   письмо автору
 
   для: кен   (14.05.2005 в 16:37)
 

> Да, robot.txt в нижнем регистре.
файл должен называться robots.txt

   
 
 автор: кен   (14.05.2005 в 16:37)   письмо автору
 
   для: cheops   (14.05.2005 в 12:49)
 

Да, забыл уточнить. Нужно сделать редирект на другую страницу в той же самой папке.

   
 
 автор: кен   (14.05.2005 в 16:33)   письмо автору
 
   для: cheops   (14.05.2005 в 12:49)
 

Не по душе мне куки. Есть одна идея. Для проверки нужно организовать редирект с передачей параметров. Подскажите, как такой делается? Желательно, с помощью header. Я что-то не припомню.

   
 
 автор: cheops   (14.05.2005 в 12:49)   письмо автору
 
   для: кен   (14.05.2005 в 04:29)
 

А нельзя использовать сессионные куки? Т.е. при заходе посетителя на сайт смотреть устанавливаются у него куки или нет, если устанавливаются, тогда не передавать SID через URL - он будет передаваться через сессионные куки автоматически. Если не устанавливаются тогда передавать его через SID? Пользователи браузеры которых не поддерживают cookie очень мало и для подавляющего большинства посетителей у вас будут чистые URL. Или вообще запретить передачу SID через URL, а на сайте поставить предупреждение, что для корректной работы необходимо включить поддержку cookie. Обычно так поступают.

Например при создании новой темы на этом форуме инициируется сессия, однако в SID она не помещается и роботы нормально индексируют страницы.

   
 
 автор: кен   (14.05.2005 в 04:29)   письмо автору
 
   для: glsv (Дизайнер)   (14.05.2005 в 03:39)
 

Да, robot.txt в нижнем регистре. Почему не работает - не знаю. Но и запрет индексирования главной проблемы не решит: SID присоединён КО ВСЕМ ССЫЛКАМ НА ВСЕ СТРАНИЦЫ САЙТА от поисковиков Yandex, Yahoo!, MSN. Не запрещать же индексацию всего сайта! Раз роботам не укажешь, то остро встаёт задача: очередной человек заходит с поисковика в публично открытый сеанс, и мой скрипт должен обеспечить его новым собственным сеансом. Для определения нового гостя можно хранить в сеансе IP хозяина и сравнивать IP при каждом обращении к сеансу. А если IP не совпал, то вопрос:

- как, уже после регистрации сеанса (session_start() и session_register('IP')) и определения несовпадения IP, создать для гостя новый сеанс, никак не связанный с текущим?

Если ответа не найдётся, то вывод один: механизм сеансов (сессий) в PHP использовать НЕЛЬЗЯ! Ни в одном мало-мальски серьёзном проекте. И придётся что-то выдумывать с хранением сеансовых данных в файлах или в базе данных.

   
 
 автор: glsv (Дизайнер)   (14.05.2005 в 03:39)   письмо автору
 
   для: кен   (13.05.2005 в 23:25)
 

> - Как сделать, чтобы роботы сохраняли "чистые" ссылки, без строки параметров?
В общем случае, никак. Роботы практически никому не подвластны.
Вы можете только запретить им совсем читать данный раздел.

User-Agent: *
Disallow: /korz/

Странно, что эти строки не сработали.
robots.txt у вас в нижнем регистре записано?

   
 
 автор: кен   (13.05.2005 в 23:25)   письмо автору
 
   для: cheops   (13.05.2005 в 21:07)
 

Статья хорошая. Но в моём случае роль "неосторожного владельца сеанса", предоставляющего всем ссылку с SID, выполняет робот поисковика, а роль "злоумышленника" - любой перешедший по этой ссылке.

- Как сделать, чтобы роботы сохраняли "чистые" ссылки, без строки параметров?

И про уничтожение я не совсем понял. Есть функции session_unset() и session_destroy(), но я не понимаю,

- в каком месте сценария их надо использовать, чтобы связь страниц через сеанс не разрушалась?

   

Сообщения:  [1-10]   [11-17] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования