|
Бесплатные PHP скрипты - форум техподдержки |
Форум техподдержки WR-Скриптов на php. Обсуждаем: основы программирования на PHP 5 - 7 версий, различные подходы к написанию скриптов на php 7 без MySQL. А также WR-скрипты: бесплатные доски объявлений, скрипты форумов, Гостевые книги, Каталог ссылок, Галерея, Фотоальбом, Счётчики, Рассылки, Анекдот и другие. Принимаются пожелания для новых версий. Сообщите какой скрипт нужен для Вашего сайта, постараемся найти или реализовать. Скачать скрипты можно бесплатно. Вместе мы сделаем бесплатные php скрипты лучше и доступнее!
|
| Сегодня: 21.11.2024 - 19:03:32 Размышления о структуре хранения данныхОбъявление - WR-Scriptы в UTF-8 кодировке |
---|
Активно обновляю скрипты и перевожу их в UTF-8 кодировку. Список перекодированных php скриптов доступен на главной странице сайта. Скачивайте скрипты и устанавливайте на свой сайт! В ближайшее время обновлю каталог знакомств, форум Про, фотоальбом, доски объявлений лайт и ЛЮКС.
На форуме, пожалуйста, пишите что модернизировать в скриптах в первую очередь. Постараюсь исправить большую часть пожеланий! Планирую продолжить работы весь 2023 год.
|
Автор | Сообщение |
---|
Владимир •
В гость
|
Здравствуйте, уважаемый автор WR-скриптов и все участники форума.
В процессе поиска движка форума я нашел этот ресурс. WR, большое спасибо за ту работу, которую вы делаете.
Полазил я и по вашему форуму. Как я вижу, большинство вопросов связано с тем, что скрипт не запускается. Видел в одной теме сообщение "а у меня скрипт работает на хостинге, где ничего нельзя". А я хочу добавить, что у меня скрипт НЕ работает на хостинге, где МОЖНО ВСЁ. А конкретнее: не происходит запись. То есть сами страницы форума загружаются. Это происходит даже при правах доступа 777 на все файлы.
В итоге я подумал, а почему автор в качестве базы данных использует текстовые файлы? Михаил, я вам писал как-то по электронной почте, но вы видимо не получили моё письмо.
В процессе размышлений я пришел к выводу, что большинство проблем при работе со скриптом возникает именно из-за структуры хранения данных. Боюсь спросить (как бы меня здесь не побили), Михаил, а почему вы не используете MySQL в качестве СУБД ? Есть множество преимуществ по сравнению с текстовыми файлами. Или есть и недостатки? Возможно, они вас останавливают? Опишите пожалуйста. Я буду рад, если вы мне ответите.
На моём сайте работает форум. Размещен только сегодня, поэтому там столько зарегистрированных пользователей и сообщений :) Внизу нет ссылки на этот сайт, потому что от Вашего форума остался только внешний вид. Форум хранит данные в MySQL. В итоге исходный текст переписан полностью. Однако я все равно благодарен Михаилу, потому что на этих исходных текстах я "выучился" писать форум.
Извините за мои рассуждения. Буду благодарен за ответ. | |
|
Сообщение # 1 |
25.02.08 - 20:39:30
| | Rootman •
R гость
|
То есть вы WR-Forum на mysql перевели? А можно где исходный код поглядеть? | |
|
Сообщение # 2 |
26.02.08 - 05:53:43
| | Владимир •
В гость
|
Вы знаете, Rootman, честно говоря я уж не знаю, можно ли его после этого назвать WR-форумом. Поскольку я переписал исходный код полностью, фактически написал новый форум. Оставил только структуру вывода на экран (то есть таблицы, вложенные таблицы, таблицу стилей).
Что касается исходного текста. Я рассчитываю сделать подробное описание "своего" (прошу прощения у Михаила) форума и выложить исходники на бесплатной основе. Только чуть позже - я еще не сделал поиск и личные сообщения. Но я думаю, что это дело двух-трех недель. Могу выслать вам файл index.php. Без других файлов он не заработает - то есть именно "поглядеть". Не хочу показывать "сырой" продукт. | |
|
Сообщение # 3 |
26.02.08 - 13:40:15
| | Rootman •
R гость
|
Чтож, тогда думаю лучше будет подождать официального релиза. В любом случае спасибо за пояснения. | |
|
Сообщение # 4 |
26.02.08 - 14:03:32
|
| ВИD •
В гость
|
|
Сообщение # 5 |
26.02.08 - 14:31:30
| | Владимир •
В гость
|
Могу оставить некоторые комментарии по поводу WR-форума. Это будет небольшая критика с точки зрения обычного пользователя (а не программиста), если позволите? Касается не только структуры хранения данных | |
|
Сообщение # 6 |
26.02.08 - 18:57:22
| | Rootman •
R гость
|
Если она будет конструктивной, я думаю автор не будет против. | |
|
Сообщение # 7 |
27.02.08 - 05:47:39
| | Владимир •
В гость
|
Попробую. Выражаю своё личное мнение и не претендую на его 100 % искренность.
1. Неверно формируются ссылки на темы. В ссылке присутствует номер раздела и номер темы. Пользователь может добавлять ссылку на тему в избранное, и если тема будет перенесена администратором в другой раздел, то предыдущая ссылка работать не будет. Далеко не каждый пользователь поймет, в чем же дело.
2. Очень неудобно формируются метки о непрочитанности темы. Пользователю дается N минут с момента входа, чтобы он прочитал все новые сообщения. Если не успел прочитать - темы все равно становятся для него прочитанными. Если прочитал раньше - метки о непрочитанности остаются. Согласитесь это неудобно и неправильно. Правильно, когда метка о непрочитанности темы снимается только тогда, когда пользователь открыл последнюю страницу этой темы.
3. Слабоватый HTML-редактор. Не очень симпатично выглядит, малофункциональный и неправильно работает. А именно: если в окне сообщения написан текст и курсор стоит где-то в середине текста, то при нажатии на "тег" он появляется в конце сообщения - а должен появляться в том месте, где находится курсор; то же происходит, если в сообщении выделена часть текста - а в таком случае выделенный текст должен обрамляться с обеих сторон открывающим и закрывающим тегами. Вот ява-скрипт, который это делает:
function metatags(u, c) { var bb_obj = document.REPLIER.message;
if(document.all && window.navigator.userAgent.toLowerCase().indexOf('opera')) { bb_obj.focus(); selecttext = document.selection.createRange().text;
if((selecttext && c) || bb_obj.isTextEdit) { if(bb_obj.isTextEdit && !selecttext) { var sel = document.selection; var nrn = sel.createRange(); nrn.colapse; nrn.text = u; if(c) { nrn.text = c; } } else { document.selection.createRange().text = u+selecttext+c; } } else { bb_obj.value += u; if(c) { bb_obj.value += c; } } } else { if(!c) { c = ''; } bb_obj.value += u+c; } bb_obj.focus(); selecttext = ''; }
Соответственно, в функцию передаются два параметра: открывающий тег и закрывающий. К сожалению, он правильно работает только в Internet Explorer. Предполагаю, что его можно оптимизировать и под другие браузеры.
4. Если я нахожусь в теме, в которой несколько страниц, но не последней странице, и пишу оттуда новое сообщение, то моё сообщение отображается внизу текущей страницы. При повторном обновлении страницы все отображается правильно.
5. Часто бывает удобно выводить сообщения с сортировкой в обратном порядке - новые сообщения выводить вверху (зависит от типа обсуждаемой темы). Здесь, как я понял, такой возможности нет.
6. В окне "дополнительные смайлы" не прописана кодировка. Первый раз мой эксплорер открыл это окно в японской кодировке. Второй раз в кои-8. Пустячок, а неприятно)))
7. Поиск работает довольно странно, иначе говоря - с точки зрения рядового пользователя - не работает вовсе. Об этом уже писали на форуме. И вообще, если что-то работает неправильно, то пользователь воспринимает это как "не работает вообще".
8. Я думаю, что "ругачки" типа "попытка взлома форума" - не есть хорошо. Программисты и админы меня поймут - пользователи бывают разные, и очень часто некоторые "секретные действия" пользователя могут привести к непредсказуемым последствиям. Я вот о чем: представьте себе тупого начинающего пользователя, который пытается зарегистрироваться на форуме или сделать что-то еще, и получает от форума ответ: "попытка взлома форума". Скорее всего, он отвернется от этого форума и пойдет на другой. Понимаю желание автора показать, что его форум суперзащищен от взлома, но моё мнение таково - надо тактично написать, что "произошла неизвестная ошибка, обратитесь за помощью к администратору форума". Уж поверьте, настоящий хакер поймет, что его обломали.
9. Здесь обсуждалась тема редактирования своих постов. Тоже считаю, что это нужно. Не понимаю слов автора о том, что это может привести к потере информации. Если пользователь сам намеренно удалил свое сообщение - тут ничего не поделаешь, это такой пользователь. А если информация потерялась из-за ошибок в скрипте - то это такой программист. Думаю, что вполне оправдано предоставлять автору сообщения возможность редактировать свое сообщение в течении N минут с момента его создания.
10. Также обсуждался вопрос о том, что если админ удалил тему, то в информации "обновления" или "последние сообщения" эта тема остается. Это очень сильно сбивает с толку пользователей. | |
|
Сообщение # 8 |
27.02.08 - 09:29:35
| | Владимир •
В гость
|
11. Думаю, что вполне логично и очень удобно предоставлять некоторые административные права прямо из учетной записи администратора, не заходя в админку.
12. Небольшое замечание про возврат из поиска - об этом также уже говорили, что вполне достаточно ткнуть на картинку. Прошаренным пользователям достаточно, но прошу вас не забывать о рядовых пользователях обычных форумов, для которых "ткнуть по картинке" - совершенно не очевидно. Мелочь, а неприятно.
13. Автор как то писал о том, что сделал редирект на последнюю страницу темы при отправке нового сообщения, и добавил, что это просто фантастика. Михаил, это не фантастика, это так и должно быть. А то, что было до этого - неверная работа программы.
14. Думаю, что весьма полезно делать редирект на предыдущую страницу после логина. Поясню: я зашел в тему, ткнул кнопку "новая" и форум мне говорит - гости не могут создавать темы. Я - ой, залогиниться забыл. Пошёл залогинился, и меня отправили на главную страницу. И я опять пошел гулять по ссылкам в нужный мне раздел. А можно после логина кидать меня сразу в тот раздел, где я был до этого. Это очень удобно.
Несколько слов об исходном коде:
15. В тексте нет отступов, часто необходимых комментариев в больших блоках. В то же время некоторые комментарии просто поражают: "эта функция отрезает пробелы". И еще, меня очень удивил комментарий после закрывающей фигурной скобки "определить, что здесь заканчивается". Господа, если вы будете использовать отступы в тексте и нормальный редактор (боюсь назвать, боюсь сочтут за рекламу) - таких проблем не возникнет.
16. В коде ОЧЕНЬ МНОГО на 100 % повторяющихся частей. Например, чтобы заменить основной набор смайлов на тот, который мне больше нравится, я перерыл весь исходный код, чтобы ничего не пропустить. Гораздо удобнее и правильнее такие части кода объединять в функции. И даже если эти части кода иногда отличаются - можно сделать функцию, которая выполняет немного отличающиеся действия в зависимости от полученного параметра.
16. Данные хранить гораздо лучше в исходном виде, то есть в том, как написал пользователь. И заменять спецсимволами непосредственно перед печатью на экран. Это удобней с точки зрения программирования, уменьшит вероятность ошибок при поиске да и вообще, это правильно с точки зрения хранения данных.
17. Небольшое замечание по поводу замены спецсимволов перед выводом на экран. В коде использовано много строчек с использованием функии str_replace. Зачем? А стандартная функция htmlspecialchars не подходит? | |
|
Сообщение # 9 |
27.02.08 - 09:30:03
| | Владимир •
В гость
|
18. Мне почему то кажется, что использование той же самой htmlspecialchars решит проблему XSS атак, или ошибаюсь? Помогите пожалуйста разобраться
19. Думаю, что выставлять рейтинг участнику, нажимая на кнопку под его аватаром - не очень правильно. Лучше предоставлять участнику возможность оценить КОНКРЕТНОЕ СООБЩЕНИЕ пользователя, чтобы рейтинг был реальным, то есть участник получал оценку за конкретное сообщение. | |
|
Сообщение # 10 |
27.02.08 - 14:49:57
| | Rootman •
R гость
|
Цитата:
16. В коде ОЧЕНЬ МНОГО на 100 % повторяющихся частей. Например, чтобы заменить основной набор смайлов на тот, который мне больше нравится, я перерыл весь исходный код, чтобы ничего не пропустить. | Вот это действительно напрягает, мне, когда я писал свои моды к форуму тоже пришлось изрядно повозиться с повторениями. Впрочем и я не безгрешен, и в моем моде есть такие повторы. Кстати вы видели мои моды, что думайте?
Цитата: 18. Мне почему то кажется, что использование той же самой htmlspecialchars решит проблему XSS атак, или ошибаюсь? Помогите пожалуйста разобраться | Я-бы сказал что strip_tags это проблему решает в лучшей степени чем htmlspecialchars.
| |
|
Сообщение # 11 |
28.02.08 - 10:29:43
| | Владимир •
В гость
|
И в моем тексте пока еще есть повторы, но я свел их количество к минимуму. В некоторых местах они действительно не столь важны, когда это две-три строчки. Я же говорил про те места, где повторяются целые блоки по 25 - 40 строк.
Пусть strip_tags.
Моды.. я видел графическую защиту от авторегистраций, собственно говоря в своем форуме я использовал именно вашу функцию, только изменил работу с цветом. И еще личные сообщения.
Не в обиду никому - ваш код более читабельный, чем код WR-форума. Но я думаю, что это далеко не самое важное. Скажу честно, я не особо внимательно изучал мод личных сообщений. Я думаю так, что в своей версии форума сделаю личку чуть позже, а пока займусь описанием. Мне кажется, очень важно подробно описать именно исходный код, что-то типа подробного комментария. | |
|
Сообщение # 12 |
28.02.08 - 13:00:38
| |
|