Бесплатные PHP скрипты - форум техподдержки

Бесплатные PHP скрипты - форум техподдержки

Форум техподдержки WR-Скриптов на php. Обсуждаем: основы программирования на PHP 5 - 7 версий, различные подходы к написанию скриптов на php 7 без MySQL. А также WR-скрипты: бесплатные доски объявлений, скрипты форумов, Гостевые книги, Каталог ссылок, Галерея, Фотоальбом, Счётчики, Рассылки, Анекдот и другие. Принимаются пожелания для новых версий. Сообщите какой скрипт нужен для Вашего сайта, постараемся найти или реализовать. Скачать скрипты можно бесплатно. Вместе мы сделаем бесплатные php скрипты лучше и доступнее!

Главная сайта бесплатных php скриптовГлавная сайта   ПоискПоиск  
Сегодня: 14.07.2024 - 16:35:55
Страницы:  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]&#124;$mass_id[$i_mas]&#124;$mas_name[$i_mas]&#124;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("&#124;", $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
HackPack :Предыдущая темаСледующая тема: Какие моды вы бы хотели видеть?
Страницы:  1  2  3  4  5  ... 6

Сообщение
Имя E-mail
Сообщение

Нажмите на точку возле имени для обращения к участнику

Смайлы:

Ещё смайлы
Эмодзи
         
Защитный код: (введите цифры, которые на синем фоне)
Ответ на вопрос: (Какой сейчас год?)
   
WR-Счётчик
Powered by WR-Forum Professional © 2.3 UTF-8 beta версия