Отправляет email-рассылки с помощью сервиса Sendsay

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

  Все выпуски  

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


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

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

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

Выпуск № 826
от 02.12.2007, 01:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 450, Экспертов: 48
В номере:Вопросов: 2, Ответов: 6


Вопрос № 111109: Здравствуйте, господа программеры! у меня есть такие 2 вопроса: 1\если есть страница регистрации .../index.php, как сделать из нее что-то вроде .../?L=$referer_name , где $referer_name - логин зарегистрированного пользователя, давшего эту с...
Вопрос № 111110: Здравствуйте, эксперты! Подскажите, как узнать количество он-лайн пользователей на сайте и как отслеживать уход юзера с сайта? Мне надо производить некие манипуляции с MySQL-базой как только пользователь уходит с сайта...

Вопрос № 111.109
Здравствуйте, господа программеры!
у меня есть такие 2 вопроса:
1\если есть страница регистрации .../index.php, как сделать из нее что-то вроде .../?L=$referer_name , где $referer_name - логин зарегистрированного пользователя, давшего эту ссылку? ()
и к этому же
2\как сделать,Что бы в случае, если по этой ссылке кто-то зарегистрируется, то это записывалось в БД и рефереру и даному пользователю?
Пожалуста, подскажите!
Большая благодарность тем, кто ответит =)
Отправлен: 26.11.2007, 19:56
Вопрос задала: Pasquill None (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 3)

Отвечает: Миленин Александр
Здравствуйте, Pasquill None!
После регистрации выдавать пользователям ссылку для приглашения вида: http://ваш_сайт.ru/index.php?L=логин_пользователя,
а в странице регистрации добавить нечто вида:

if ($_REQUEST['L'])
{
1) Проверить, существует ли такой пользователь
2) Зарегистрировать нового пользователя, где в поле referer (или как у вас в БД?) переменная $_REQUEST['L']
3) Обновить данные реферала, добавив нового зарегистрировавшегося.
}
Ответ отправил: Миленин Александр (статус: 7-ой класс)
Ответ отправлен: 26.11.2007, 20:14
Оценка за ответ: 5

Отвечает: Емельянов Данил Юрьевич
Здравствуйте, Pasquill None!
Решение зависит от структуры БД. Лично я советую вам генерировать ссылки по id-ключу таблицы реферов.
Пример ссылки:index.php?ref_id=123
Теперь можно через GET['ref_id'] обратиться к передаваемому параметру.
Дальше:
1) Обновить таблицу с рефером у которого id=123(конструкция UPDATE таблица SET поле=значение WHERE поле=id).
2) Создать новую запись в таблице рефером или зарегестрированных (INSERT INTO...)пользователей.

С помощью условного функции if можно проверять значение $_GET['ref_id']

Приложение:

---------
Жить хорошо, а хорошо жить еще лучше!

Ответ отправил: Емельянов Данил Юрьевич (статус: 3-ий класс)
Ответ отправлен: 26.11.2007, 22:43
Оценка за ответ: 5
Комментарий оценки:
ДА, это хорошая идея

Отвечает: Hid
Здравствуйте, Pasquill None!
попробую объяснить сам принцип, точнее одно из решений этой задачи.
Я думаю, у Вас уже есть таблица пользователей (если нет, то ее нужно будет создать), в нее нужно будет добавить несколько полей: referer (ключ к пользователю, давшему юзеру ссылку, в него будет заноситься ID пользователя), далее на странице с параметрами профиля каждого юзера даем ему ссылку реферера вида
.../index.php? $referer_name=vasia_pupkin
значение переменной $referer_name берем из таблицы пользователей (поле скорее всего называется user_name) ссылка будет формироваться примерно так:
после запроса к базе данных и получения значения полей в соответствующие переменные формируем ссылку
echo '.../index.php? $referer_name='.$user_name
Далее при регистрации проверяем наличие на странице регистрации переменной $referer_name это делается с помощью функции isset
if (!isset($referer_name) // если переменной нет, то выполняется обычная регистрация без реферера
{код регистрации}
else// иначе проводим регистрацию с реферером
{здесь к коду регистрации дописываем код, добавляющий в поле referer ID пользователя давшего ссылку. Значение ID мы получаем делая запрос к таблице юзеров по значению поля user_name равному переменной $referer_name (полученной из урла)}
замечу, что записывать в БД рефереру чего-либо не нужно, а получить количество пользователей пришедших по его ссылке можно запросом к той же таблице по значению поля referer. То есть сколько строк в таблице со значением поля referer равным ID этого реферера, столько и пользователей, зарегистрировавшихся по его ссылке.
Надеюсь понятно. Если будут сложности пишите на мыло gordeev@admsurgut.ru
Удачи!
Ответ отправил: Hid (статус: 2-ой класс)
Ответ отправлен: 27.11.2007, 07:46
Оценка за ответ: 5


Вопрос № 111.110
Здравствуйте, эксперты!
Подскажите, как узнать количество он-лайн пользователей на сайте и как отслеживать уход юзера с сайта? Мне надо производить некие манипуляции с MySQL-базой как только пользователь уходит с сайта
Отправлен: 26.11.2007, 20:03
Вопрос задал: Tossha (статус: 2-ой класс)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 12)

Отвечает: Миленин Александр
Здравствуйте, Tossha!
Существует несколько способов слежения за колличеством пользователей на сайте, самый актуальный - отслеживание обращений по IP.
Для начала нам нужна таблица, в которой будет содержаться IP адрес, время последнего обращения(можно и другие данные, но этого достаточно).

Общий алгоритм такой:
1) При обращении пользователя к странице получить его IP адресс ($_SERVER['REMOTE_ADDR'])
2) Проверить, есть ли в базе записи с таким IP, если есть обновить время последнего обращения, если нет - добавить новую запись (IP,TIME)
3) Удалить записи, время последнего доступа которых больше 5 мин.(или другое)

Таким образом в базе будет содержаться информация о юзерах на сайте и их колличество.
Ответ отправил: Миленин Александр (статус: 7-ой класс)
Ответ отправлен: 26.11.2007, 20:23
Оценка за ответ: 5
Комментарий оценки:
Ответ хороший, спасибо. Можно поставить 5. Но мне надо было не совсем это. Это я сам уже сделал. Как извесно, сайт vkontakte.ru написам на php. И там если оставить его в браузере ты будешь оставаться в он-лайне, закроешь браузер - в офф-лайне

Отвечает: Мусихин А И
Здравствуйте, Tossha!
При помощи php точно никак, php не работает на стороне клиента и никоим образом не может определить уход пользователя. Вероятно, нужно либо пользоваться демоном на сервере, либо экспериментировать с javascript (например, с функцией onbeforeunload - http://content.1nsk.ru/spravka/javascript/event/b.html#onBeforeUnload).
Ответ отправил: Мусихин А И (статус: 1-ый класс)
Ответ отправлен: 27.11.2007, 00:22
Оценка за ответ: 3
Комментарий оценки:
это делается как-то с помощью сессий

Отвечает: Nexus
Здравствуйте, Tossha!

С помощью сессий ты это никак не отследишь. Можно либо поставить довольно небольшой таймаут сессии - т.е. пользователя будет "выкидывать" из профиля после 5 минут неактивности, например. Либо попытаться на каждую страницу вставлять джаваскрипт, который будет через определенные небольшие промежутки времени "дергать" серверный скрипт. А на сервере проверяешь - если клиент не "отозывался" уже больше, чем положено - значит он оффлайн. Параметры при этом передавать не нужно, так что трафик будет тратиться по минимуму, и здесь таймаут можно сделать совсем небольшой...
Ответ отправил: Nexus (статус: 10-ый класс)
Ответ отправлен: 27.11.2007, 12:09
Оценка за ответ: 5
Комментарий оценки:
Хороший совет, спасибо. Но я не знаком с джавой)


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.64 от 24.11.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное