Здравствуйте, armancho7777777. Я помню, тот же вопрос задавал здесь. Так ответы вроде Вашего жутко раздражали Это я сейчас понимаю, что ответ-то верный, а тогда казалось, что ООП это тайна покрытая мраком и никто ею делиться не хочет)
igosja, у меня в арсенале два мною недописанных движка. Первый кагбэ готов, но там говнокода много, он не расширяем толком, + ещё тысяча и один недостаток. А второй просто не дописал, т.к. пропала нужда и свободное время. Когда-нибудь обязательно второй допишу.
Так вот, к чему я это. Первый я начинал писАть в далекие времена, когда Е.Попов был для меня кем-то на уровне Бьёрна Страуструпа. Но главное, как я его начал писать...
Создал файл index.php в корне, в нем написал <?php и начал по мере поступления идей в мозг, их реализовывать. В итоге получил черт-ногу-сломит архитектуру с хрен-че-найди реализацией. Оно-то работает, но когда нужно что-то изменить/доделать/переделать - капец.
А ко второму я подошел серьезнее. Сначала я начал продумывать архитектуру приложения. Я нарисовал на бумаге, что и как у меня будет работать. Схема не из сложных: несколько блоков, соединенных линиями, каждый из которых за что-то отвечает. Один - за пользователей (авторизацию|регистрацию|бан и т.д.), другой - за текущую страницу, третий - за работу модулей, четвертый - за базу данных, и т.д.. Так вот когда есть такой "план", а он должен быть, если Вы собираетесь разрабатывать что-либо более-менее серьезное, то в данном случае как минимум удобно для каждого блока нашей схемы написать класс.
Представьте себе, что Ваш сайт это предприятие. Классы - это работники. И цех - один php-файл, допустим, init.php. В нем работают объекты классов, проходит весь "процесс" работы на более высоком уровне, а все глубинные процессы описаны в самих классах. Это очень удобно. Важно понимать, что класс это не набор функций и переменных, а будущая сущность, которая что-то умеет и обладает какими-то свойствами. Опять же, преимущества становятся очевидными, когда поработаешь над чем-то более-менее крупным. А если ещё и в команде, то сразу видно разницу.
И когда наступает момент, что без инкапсуляции, полиморфизма и наследования нет так уж и удобно, приходит прозрение
Сейчас прочитал слова, которые хорошо описывают преимущества ООП
habrahabr пишет:
Вкусив запретного плода расширенного синтаксиса, программисты не остановились и возжелали модульности: ведь это так удобно — вызывать отдельно написанный модуль программы и не вникать в его алгоритм. Главное — это знать как он принимает на вход данные и как возвращает результат.
То есть, сейчас при нажатии на "редактировать" голосование не редактируется, так? Тогда мне нужен остальной код, который идет до того, что Вы выше написали + структура базы данных (имена таблиц и полей). Если выше этого кода ничего нет, значит файл инклюдится из другого места и мне нужен код из этого места, т.к. в Вашем коде отсутствует, как минимум, mysql_select_db, которая необходима перед mysql_fetch_array, а так же не объявлена $poll_name['name'].
А скрипт-то Вы писали? Если да, то проблем вообще быть не должно, а если нет, то код и структуру БД в студию, тогда, возможно, Вам помогут. На данном этапе разговора я Вам даже ничего посоветовать не могу, т.к. не имею представления, как работает Ваш скрипт и как организовано хранение данных в Базе.
Эхх... Понятия не имею, что там у Вас за $i=0 до цикла, что за $i++ после, а также на какую кнопку Вы нажимаете, но у меня есть один добрый друг-экстрасенс. Он предположил, что у Вас есть скрипт голосования, в котором есть баг - после процесса голосования отображаются неверные результаты голосования, т.к. не учтен последний голос самого проголосовавшего.
Так и есть? Тогда проблема очевидна. Участок кода, добавляющий голос в базу данных, расположен ниже участка кода, который делает выборку. Решение столь же очевидно - перенести участок кода, отвечающий за добавление голоса, выше участка кода с выборкой.
Экстрасенс ошибся?Бывает. Тогда опишите проблему подробнее.
Коли кого посетит какая светлая идея, буду признателен если поделитесь
Уже столько умов думали над этим вопросом. Думаю, выхода тут нет. Уникальный контент воровали, воруют и будут воровать, увы.
Продолжайте трудиться над Вашим сайтом, а негодяи пусть воруют. Имхо, первоисточник все равно будет более посещаем. Главное в дизайне и юзабилити не проигрывать Удачи!
А вообще смысла в подобных защитах нет, только зря провозитесь...
Это точно. Хотите, я приду к Вам на сайт и докажу. Будете меня блокировать по ip, ua, чему угодно, а я все равно буду доступ получать вааще без труда. При том, что я не взломщик и не кулхацкер, а обычный пользователь.
Мне бы самому очень хотелось иметь в арсенале панацею от кибернегодяев, но, увы...
А на эти устройства фильтр распространятся не будет?
Если только мобильный, планшет и компьютер с одного wi-fi роутера в интернеты ходят, то адрес один на всех будет. Юзер-агенты разные будут (не факт).
Ehonod пишет:
А можно ограничение на устройство вводить?
Это Вам связка IP+юзерагент нужна. Только все равно нет 100% гарантий. На мобильных устройствах, как правило (если не через вафлю), динамический IP. Представим ситуацию, что злоумышленник серфит с последней Opera Mini (как 70-80% пользователей моб.интернета). Закрывать доступ нужно будет по маске, т.к. адрес динамический. Т.к. вся подсеть принадлежит сотовому оператору, а 70-80% пользователей моб. интернета сидят с Opera Mini, из них [пусть] у половины она последняя, потеряете часть ни в чем не виновной аудитории.
Мне, если честно, более интересно, как Вы собрались злоумышленника ловить? Откуда узнаете что именно этот ip/ua Ваш клиент? Он что, Вас Ддосит, или перед кражей контента в гетах-постах подписывается?
Привет, коллеги. Если у кого есть время и возможность, напишите плагин к Monstra CMS для кеширования в memcached всего, что движок хранит в xml. Желательна возможность смены префиксов для имен ключей, чтоб на одном сервере можно было несколько сайтов размещать. Спасибо!
Первый раз я гитару взял в 99-м году, тогда и учиться сам начал. Мне брат двоюродный аккорды по почте (аналоговой ) присылал, а я брынькать пробовал. Так вот, в то время в нашей провинции было две гитары - Ленинградская и электрогитара А Вы Flight, Musima....