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

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

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

Главная сайта бесплатных php скриптовГлавная сайта   ПоискПоиск  
Сегодня: 26.04.2024 - 14:04:07
Страницы:  1  

Новые объявления

Объявление - WR-Scriptы в UTF-8 кодировке

Активно обновляю скрипты и перевожу их в UTF-8 кодировку. Список перекодированных php скриптов доступен на главной странице сайта. Скачивайте скрипты и устанавливайте на свой сайт! В ближайшее время обновлю каталог знакомств, форум Про, фотоальбом, доски объявлений лайт и ЛЮКС.

На форуме, пожалуйста, пишите что модернизировать в скриптах в первую очередь. Постараюсь исправить большую часть пожеланий!
Планирую продолжить работы весь 2023 год.

АвторСообщение

vstb

V
Участник форума

Просьба автора доски помочь с исправлением следующей ошибки. Периодически новые объявления размещаются в начало раздела, хотя должны быть последними в разделе (строка с новым объявлением записывается в начало в .dat файле). На сайте http://mvtb.ru в разделе "Продаю - Дома" видно наличие объвлений с одной датой в конце и в начале раздела.

Сообщение # 1 28.10.08 - 12:56:47

Maksir

M
Участник форума


Цитата:

Просьба автора доски помочь с исправлением следующей ошибки. Периодически новые объявления размещаются в начало раздела

Там нет никакой ошибки.

Порядок объявлений, как и новостей, идёт по убыванию.

У вас всё впорядке:
1 продаю участок за Ростовским морем максим 27.10.2008 26.11.2008 - через 29 дней --- эта новость вверху, правильно?
и
20 Продаю коттедж, 50 км от Мкада по Калужскому Александр 14.10.2008 13.11.2008 - через 16 дней --- эта самая старая новость и по этому она находится внизу.

Если вам угодно переиначить порядок представления ваших объявлений, то вы можете это сделать сами, своими средствами, как вам угодно.


Цитата:
(строка с новым объявлением записывается в начало в .dat файле)


Это вообще никак не укладывается... Что вы имеете ввиду?

(!) Имею особое мнение на этот счёт, что все новые строки записываются всегда именно в конец файла, а не наоборот, как вы здесь пишите.

P.S. В системе Unix по этому правилу созданны специальные системные вызовы и утилиты, которые берут новые данные именно из конца файла и не откуда-то ещё. (например, программа tail) По такому же принцыпу работают абсолютно все программы, которыми вы ежедневно пользуетесь. Все новые строки помещаются в конец файла, что бы не перезаписывать целый кусок дискового пространства заного.

Каждая новая строка, это уже вторая строка, последующая, а не первая.

По-этому, новости всегда предоставляются на первой странице от конца файла, т.е. в обратном порядке.

Или, что вы имели ввиду?

Сообщение # 2 28.10.08 - 16:29:07

vstb

V
Участник форума

Посмотрите последнюю страницу раздела "Продаю - Дома" где должны находиться самые старые объявления. Там вы увидите объявления, поданные за последние дни. Хотя они должны быть как раз на первой странице.
Происходит это потому, что часть объявлений, по непонятным причинам, записывается в начало файла .dat. Да, новые строки должны записываться в конец, режим "а+" еще никто не отменял. Но факт таков, что часть строк оказывается в начале файла, часть в конце.
На форуме уже упоминали про такую ситуацию и предполагали, что она связана с функцией автоудаления объявлений.

Сообщение # 3 28.10.08 - 17:29:29

Maksir

M
Участник форума

vstb, там существуют следующие только разделы (или смотря что вы называете "разделами")
продаю, куплю, сдаю, сниму, обмен, услуги
Но, если так -- Продаю -> Дома
Есть только такой вариант -- Продаю -> Дома, участки

ничего не слышал про ошибку с автоудалением. Если такова проблема есть, может WR сам прокоментирует, что он думает по этому поводу. я подожду пока.

Сообщение # 4 29.10.08 - 03:13:14

vstb

V
Участник форума

Предлагаю пример попроще.

На доске http://mvtb.ru посмотрите самый первый раздел "Продаю-Коммуналки" (или подраздел, как вам боьше нравится). Первые и последние объявления датированы октябрем. Между ними находятся объявления за сентябрь. Сортировка по дате явно нарушена, так октябрьские объявления должны быть выше сентябрьских.

(На всякий случай скажу, что никаких изменений в скрипт относительно сортировки не вносилось).

Сообщение # 5 29.10.08 - 11:18:00

Maksir

M
Участник форума

vstb, ну, хорошо, теперь я вижу.
Вы то, сами, можете исправить ошибку? Здесь, в общем-то, нет ничего сложного, если можете читать переменные.
Если сделать сортировку по Unix метке, то сообщения должны выводится в правльном порядке.

P.S. лично я не пользуюсь скриптами WR. нет необходимости в этом. Могу только помочь из представленного кода, или, при возможности, скачать скрипт и посмотреть, что там. но, трафик у меня не резиновый... мне нужна ссылка на эту доску.

Сообщение # 6 30.10.08 - 01:11:48

vstb

V
Участник форума

Ошибка происходит на стадии записи объявлений в базу.

Объявления дописываются построчно в конец сответствующего разделу .dat файла.
По крайней мере так должно происходить. С кодом ничего необычного нет:

$fp=fopen("$datadir/$fid.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("$datadir/$fid.dat", 0644);

По невыясненным причинам некоторые строки оказываются записаны в начале .dat файла. Об этом я и писал с первого поста.

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

Сообщение # 7 30.10.08 - 11:11:24

vstb

V
Участник форума

Ошибка найдена. Как говорится, куда глаза мои глядели :)

Проблема, действительно, оказалась в функции автоудаления.

При поиске объявления подходящего по дате для удаления, массив с объявлениями перебирается с конца!, а пишется в новый массив в прямом порядке. В результате все объявления в разделе после сохранения нового массива переворачиваются относительно серединной строки.

Решение: заменить кусок кода в файле index.php

do {$i--; $dt=explode("|",$lines[$i]);
if ($dt[4]!="П") {$itogos++;} // строка посчитывает кол-во объявлений Спрос/Предложение
if ($dt[7]<$tekdate) {$todelete++; if ($dt[4]=="П") {$pred++;} else {$spros++;}} else {$newi++; //$newlines[$newi]=$lines[$i];}
} while($i>0);

заменить на:

$i="-1";
do {$i++; $dt=explode("&#124;",$lines[$i]);
if ($dt[4]!="П") {$itogos++;} // строка посчитывает кол-во объявлений Спрос/Предложение
if ($dt[7]<$tekdate) {$todelete++; if ($dt[4]=="П") {$pred++;} else {$spros++;}} else {$newi++; $newlines[$newi]=$lines[$i];}
} while($i<=$itogo);

Сообщение # 8 30.10.08 - 14:13:46
Помогите. :Предыдущая темаСледующая тема: Загадили доску
Страницы:  1  

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

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

Смайлы:

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