Max_Borisov: наверное, вы применяете htmlspecialchars лишний раз, либо не разобрались в самом ckeditor. Ищите, что делаете не так именно при выводе. Может вы уже записываете отфильтрованный контент в базу данных? Это делать не обязательно.
Во всем остальном вы описали все правильно.
Также кроме, собственно, контента страницы не лишним будет добавить поле "Заголовок страницы" и "адрес страницы" (типа делать page/my-adress.html) и сделать роутинг этих параметров - неплохо влияет на поисковую оптимизацию.
Всегда говорю себе: ну окей, хочу я свой фреймворк. Так может мне и свой язык программирования написать? На своем веб-сервере? На своей операционке? На своем компьютере, процессор которого я тоже сделал сам и написал к нему свой диалект ассемблера?..
Иногда нужно остановится. Вы правы ;-)
ILoveYAnny: начните с PHP фреймворка, если вас интересует именно PHP. Затем, при необходимости, изучите JS-фреймворк, а потом их можно соединить между собой в случае необходимости.
//Миллиард библиотек на JS. А ведь несколько миллионов фреймворков тоже изобрели для того, чтобы не делать свои велосипеды.
Неоднозначности, которые при этом возникают. Особенно - "какой метод использовать, если в классах их встречается несколько". Запросто получается лапша, когда один аргумент обрабатывает метод с одного класса, а в другом участке кода обрабатывает другой метод с другого класса. Если вы делаете наследование по принципу "в одного класса есть один родитель" - этим поведением можно хоть как-то управлять с помощью self:: и parent.
Иначе можно получать трудноуловимые баги.
Наверное, вы немного не поняли суть вопроса.
При подходе автора все возможные пути будут направляться уже на index.php, и уже с его помощью можно реализовать роутинг
Согласен, немного код с запахом. Сейчас есть смысл использовать array_filter или array_map. Но факт в том, что код есть.
К счастью, никаких нарушений для его работоспособности не происходит.
Это не уязвимость, об этом сообщили в документации. Поэтому я спросил, нужно ли переписывать подобный код, которого у меня, к сожалению, немало и, уверен, что немало его и у других.
Игорь Касперский: а какие ошибки в консоли Chrome? Правой кнопкой "проверить элемент", затем в окошке ищите вкладку консоль. Должно быть красными буквами ошибка. Вот ее текст и поищите в гугле.
Евгений Конкин: ведь ответ состоит в том, чтобы сделать отдельную таблицу для дружбы и отдельную - для подписки. Вот на счет первой таблицы я и спросил.
Выборку делать через where userid=:id OR friendid=:id или дублировать данные дважды - как будет оптимальнее?
И еще вопрос - есть ли смысл вообще в хранении автоинкрементного id в этом поле, может сделать соединение этих двух полей как unique?
3 вопрос - нужно ли прописывать key(), если поля уже сделаны unique?
Во всем остальном вы описали все правильно.
Также кроме, собственно, контента страницы не лишним будет добавить поле "Заголовок страницы" и "адрес страницы" (типа делать page/my-adress.html) и сделать роутинг этих параметров - неплохо влияет на поисковую оптимизацию.