Xwab
Форумыnavigate_nextСкрипты

MadGuest v1
Сообщения
MadLion

Вот седня делать нечево было и сделал гостю для пабла
Функционал:
(*) Сообщение
-Добавление,Удаление Сообщения
-Ответ
-Вывод(По убыванию) по страницам
-Смайлы,BB Codes,Подсветка сылок,Подсветка кода
-Капча при добавлении сообщении
-Транслит(patsan>патсан)
-Запоминание ника(SESSION)
(*) Админка
//Админка находиться точнее всё управляется на главной но требуется авторизоваться
//по адресу site.domen/admin/index.php
-Ban Ip(Добавление(с главной),Удаление)
-Удаление сообщений(единично,массово)
___
буду блогадарен если вы сообщите найденные ошибки
___
Примера нет тестил на денвере

29 Апр 2011, 20:51
Akdmeh

Код смотреть можно?

29 Апр 2011, 20:54
MadLion

Akdmeh, жду твоего мнения по скрипту
П.С. Ногами не бить

29 Апр 2011, 20:55
Akdmeh

в таблице ban id не обязателен, так как есть ip, которое само по себе уникально.

название полей не очевидное.
Например, опечатка - лучше назвать поле message, а также поле browser - так более понятно.
AUTO_INCREMENT указывать не обязательно - оно и так будет считаться с единицы.

// хз кто автор, взял из dcms - в таком случае оставил бы хотя бы копирайт с дцмс, хотя и на том спасибо.
В файле captcha.php лучше в начале прописать session_start(); в начале, так как может не работать. Также лучше убрать в 67 строке ?> - по своему опыту, чтобы в конце не осталось пробела.
а также лучше назвать файл captcha, а не capatcha;))

в файле db.php много личшего, проще указать только SET NAMES utf8, этого хватает, а не повторять одно и то же по 5 раз. Кроме того, $con в конце запроса не обязателен и не нужен, если не используется несколько баз данных.

Функции head и foot - быдлокод, лучше бы перенести их в отдельный файл .tpl

Функцию u назвать более понятно.
Функцию smiles более оптимизировать, добавление смайлов неудобно.

Лучше не использовать функцию all, она не очевидна, лучше использовать bb(smiles()), не так и много места оно занимает.

В файле f в конце система бана - быдлокод. Уже бы ладно, создал отдельную функцию, дык нет же, надо чтобы функция срабатывала отдельно!

Далее. Проверку ip лучше сделать более полной, и показывать то, что разрешено, а не удалять то, что запрещено. Объясняю, почему - часто бывает, что в ip передается несколько ip через запятую (если используешь прокси) - может ошибаюсь, тогда попинайте меня быдлокодера.

Функцию бана по ip можно вообще убрать, она неэффективна, изменить ip простой перезагрузкой браузера или использованием десятков прокси не есть проблема.

Файл i.php назви лучше config.php - будет более понятно.

Не понял разницу между design и style.

А теперь индекс...

Со структурой лажа. Реализовать гостевую на свитчах - не лучшая идея...

<a href='?act=add&mode=ans&id=$x[id]'/> так ссылки лучше не делать, я писал об этом как-то в блоге. Объясняю. Пусть будет привычкой писать в одинарных скобках html-код, а двойными - отделять параметры. Вот типа того: <a href="?act=add&mode=ans&id='.$x['id'].'">
ключи массива в php обязательно должны быть в скобках, без них - код невалидный и может дать забавные баги. Дальше. Нельзя указывать просто ?, это может вызывать различные странности в разных браузерах, лучше указывать имя файла.

О шаблонах и т.д. я молчу - пока рано, все нормально.
А вот тут код можно оптимизировать:
echo 'Лoгин:<br>
<input type="text" name="login" value="'.@$_SESSION['user'].'"><br>';
если имя пользователя будет пустое - то ошибки не будет.

Лучше не <br>, а <br /> писать - так более валидно и красиво.

Также лучше переписать хранение имени автора не на сессиях, а на куках - ник будет дольше держатся, в сессиях данные пропадают после перезагрузки браузера, если не настроить по-другому в конфигах пхп (и даже если настроить - то будут пропадать, гг).

Вообще добавление сообщения надо значительно изменить. Но это позже, как опыта наберешься.

|http://|i глупый код, заменить можно на str_ireplace


echo "Ты что-то хотел???"; - лучше такие ошибки не делать.

Если данные не записываются в базу данных, то mysql_real_escape_string не нужен, это я о $pass=htmlspecialchars(mysql_real_escape_string(trim($_POST['pass'])));
, хватит только трима и htmlspecialchars, а вообще только trim;)

<div class='yes'/> div не закрывается, код не валиден правильно <div class="yes">

Короче, к сердцу не принимай близко. На дыры особо не проверял, просто код смотрел, чтобы что-то подсказать.
Все мы учились, и у меня был похожий код.

На счет скрипта... Ну в принципе, не лучший код, видел и более функциональные аналоги. Но для себя - сойдет.
Удаление ip забаненых лучше сделать постраничную навигацию. И отдельной ссылкой, так как если ip будет хоть 100 - занимать будет оченнннь много места.


Вот и все. Удачи!

29 Апр 2011, 21:26
manyrus

Akdmeh, как ты не поленился это написать...

29 Апр 2011, 21:32
Akdmeh

5, вспоминаю, как мне своего времени это не написали

29 Апр 2011, 21:36
MadLion

Akdmeh, а объязательно указывать сесион старт ибо в хтаче автостарт стоит
А на чем реализовывать еси не на свича
Спасибо большое за советы учту на будущее

29 Апр 2011, 22:21
Akdmeh

Лучше в отдельных файлах разносить разные логические части скрипта, то есть, отдельно add.php, edit.php и т.д. Да в принципе для маленьких скриптов - нормально.

29 Апр 2011, 22:49
StingerIce

Акдмех, пора деньги брать за такие подсказки))
Ты как сэнсэй для начинающих кодыроф, все понятно разьясняеш и не ленишся. Вобщем уважаю))

13 Май 2011, 21:59
Sashon

Akdmeh, на счет bad id - чтобы наверняка

14 Май 2011, 22:23
Ответить на тему