|
Бесплатные PHP скрипты - форум техподдержки |
Форум техподдержки WR-Скриптов на php. Обсуждаем: основы программирования на PHP 5 - 7 версий, различные подходы к написанию скриптов на php 7 без MySQL. А также WR-скрипты: бесплатные доски объявлений, скрипты форумов, Гостевые книги, Каталог ссылок, Галерея, Фотоальбом, Счётчики, Рассылки, Анекдот и другие. Принимаются пожелания для новых версий. Сообщите какой скрипт нужен для Вашего сайта, постараемся найти или реализовать. Скачать скрипты можно бесплатно. Вместе мы сделаем бесплатные php скрипты лучше и доступнее!
|
| Сегодня: 02.11.2024 - 01:37:40
Страницы: 1 2 3 4 5 ... 6 On-line UsersОбъявление - WR-Scriptы в UTF-8 кодировке |
---|
Активно обновляю скрипты и перевожу их в UTF-8 кодировку. Список перекодированных php скриптов доступен на главной странице сайта. Скачивайте скрипты и устанавливайте на свой сайт! В ближайшее время обновлю каталог знакомств, форум Про, фотоальбом, доски объявлений лайт и ЛЮКС.
На форуме, пожалуйста, пишите что модернизировать в скриптах в первую очередь. Постараюсь исправить большую часть пожеланий! Планирую продолжить работы весь 2023 год.
|
Автор | Сообщение |
---|
vladik-kiev •
V гость
|
надо уже весь форум на БД переводить и все будет намного легче | |
|
Сообщение # 25 |
21.09.06 - 15:34:14
| | Maksir •
M Участник форума
|
А мне нравится когда всё труднее!!! | |
|
Сообщение # 26 |
21.09.06 - 15:49:42
| | Maksir •
M Участник форума
|
Значит так, в обоих скриптах содержатся такие ошибки/недоделки:
В первом, тот который предложил Maksir, 1) Не сделана функция "удалять данные из файла del.dat , в который записываются данные о посищении. 2) глюк скрипта -- "Сервак, после некоторго времени, выдаёт сессии совершенно беспорядочно..."
Второй скрипт, который предложил Артур, Первое и последний недостаток -- скрипт записывает данные не соблюдая порядок строк, точнее, через какой-то определённый интервал количества строк (пропуская пустые строки)
Главный вопрос: ИЗ-ЗА КАКОЙ ХРЕНИ ЭТО МОЖЕТ БЫТЬ!!!!? | |
|
Сообщение # 27 |
21.09.06 - 16:04:17
| | Maksir •
M Участник форума
|
Цитата: $us="1"; $file=fopen("session.dat","r"); $i=count($lines); flock ($fp,LOCK_EX); for ($us;$us<$count;$us++){} echo "Всего пользователей On-line: $count"; flock ($fp,LOCK_UN); fclose($fp);
@chmod("del.dat", 0644); |
Глюк снаружи, как грится, а не в нутри... Переменную $count следует заменить на $i Вот так Код: $us="1"; $file=fopen("session.dat","r"); $i=count($lines); flock ($fp,LOCK_EX); for ($us;$us<$i;$us++){} echo "Всего пользователей On-line: $i"; flock ($fp,LOCK_UN); fclose($fp); @chmod("session.dat", 0644); |
Вы не поверите, но я вчера тестил в локальной сети этот скрипт и этот скрипт вёл подсчёт! Правда, всё очень поздно ночью было... (а мне между прочим, рано на работу..) | |
|
Сообщение # 28 |
21.09.06 - 16:16:33
|
| Артур •
А гость
|
Maksir,
Цитата: ервое и последний недостаток -- скрипт записывает данные не соблюдая порядок строк, точнее, через какой-то определённый интервал количества строк (пропуская пустые строки) | В строке "добавления данных в файл" обязательно в конце надо добавлять перевод строк - обратный слеш n обратный слеш r просто здесь форум удаляет отбратные слеши поэтому получается непонятные символы nr в конце Код: fputs($fp ,"$mas_sess[$i_mas]|$mass_id[$i_mas]|$mas_name[$i_mas]|nr");//работа с файлом |
И еще, скрипт on-line предназначен не только для простого подсчета количества в on-line но и вывод списка кто в on-line отдельный модуль вывода списка он-лайн Код: $il=0; $file=fopen("session.dat","r"); while (!feof($file)) { $il++; $lines=fgets($file); if ($lines<>'') { $iss=explode("|", $lines); echo"<a href=tools.php?event=profile&pname=".UrlEncode($iss[2]).">$iss[2]</a> "; } } $il=$il-1; echo"<b>сейчас в on-line - $il</b>"; |
Оба модуля подключаются includ-ом поэтому не требуют модификации исходного кода форума | |
|
Сообщение # 29 |
25.09.06 - 11:53:47
| | Maksir •
M Участник форума
|
Артур, Спасиб Артур! Я знаю, что значит nr в конце. Это очевидно и я сразу же это заметил, когда послал свой скрипт. На этот вопрос даже уже ответили. Дело не в этом nr Я делал тест в сети. Дело в том, что сессии выдаются сервером и, они немного не коретно фиксируются и записываются в файл. Когда происходит этот глюк, (все начинают кликать, обновлять страницу) то сесси вообще начинают выдоваться беспорядочно. Все сессии имеют не одинаковые значения. Можно, сделать функцию, - фильтровать по количеству значений в ключе сессии. Это поможет и это не сложно сделать функцией fgets
while ($lines = fgets($fp, 32)) 32 это количество знаков сессии. Конечно, нужно приплюсовать ещё и количесвто знаков времени. Ровно столько, сколько в файле дат определены. Всё остально скрипт обрежит, запишит лишь определённое количество значений.
Второй способ, - не использовать сессии... А подключить функцию определения по Ip-адресу. Там всё работает без сбоев. Можно посчитать всех пользователей по IP а не по сессии :) | |
|
Сообщение # 30 |
26.09.06 - 02:02:15
| | Артур •
А гость
|
Maksir, Цитата: Второй способ, - не использовать сессии... А подключить функцию определения по Ip-адресу. Там всё работает без сбоев. Можно посчитать всех пользователей по IP а не по сессии | Это тоже не корректно, т.к. бывает, что несколько пользователей имеют 1 IP (выходят из 1 корпоративной сети)
Тогда вариант брать за ID = IP и Логин (имя автора) т.е. IP_Login но в этом случае возникнет проблема с гостями. | |
|
Сообщение # 31 |
26.09.06 - 08:46:32
| | Maksir •
M Участник форума
|
Артур, мне тут подсказали, что это будет большая нагрузка на сервер, с этим подсчётом On-Line Грят, что лучше всего сделать на MySQL и не париться. А если дело идёт чисто сугубо по PHP, то лучше всего, сделать эту функцию с помощью регулярных выражений... Правда, я даже не знаю, каким образом это делается... Перевариваю сейчас. Это непостижимо... Знаю основы, но там же, как бы... работа с текстом... А сессии каким образом счетать(?) Можно пока обойтись и этим скриптом, там будет видно. У тебя в скрипте встречаются очень интересные функции и знаки, похоже очень на работу с регулярными выражениями. | |
|
Сообщение # 32 |
26.09.06 - 20:17:36
| | Артур •
А гость
|
Регулярные выражения здесь не помогут, т.к. принцип остается тот же. Т.е. каждый раз после очередной перезагрузки надо лезть в файл и выполнять действия. Можно намного облегчить нагрузку если обращатся к скрипту для каждого пользователя только 1 раз при первом заходе, после этого присваивать прольщзователю id через сессию (считаем, что он авторизован). В результате нагрузка на сервер будет очень небольшая т.к. наш скрипт будет работать на записть только в момент появления нового посетителя. Это что касается записи в файл.
А вот подсчет посетителей, нам надо каждый раз после перезагрузки показывать информацию кто в он-лайн. Вот это и будет создавать основную нагрузку. Может проверять файл на размер? Размер хранить в сессии, если изменился, тогда считывать, а если нет то выводить то, что первый раз считали?
| |
|
Сообщение # 33 |
27.09.06 - 04:41:18
| | Артур •
А гость
|
Maksir, Советую почитать про регулярные http://phpclub.ru/detail/article/regexp_1
| |
|
Сообщение # 34 |
27.09.06 - 04:50:58
| | Артур •
А гость
|
Здесь вторая часть http://phpclub.ru/detail/article/regexp_2 | |
|
Сообщение # 35 |
27.09.06 - 04:58:35
| | Patti •
P гость
|
Вы чего-то наплели нифига не понятно что куда вставлять... Если сделали реальный подсчёт on-line, поделитесь. Только поподробнее - что и куда. Вешь реально нужна, пользователи жалуются.. | |
|
Сообщение # 36 |
23.12.06 - 14:36:09
| | Страницы: 1 2 3 4 5 ... 6
|