Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Несколько вопросов
Форумы портала PHP.SU » PHP » Программирование на PHP » Несколько вопросов

Страниц (1): [1]
 

1. dropoff - 20 Февраля, 2011 - 10:26:49 - перейти к сообщению
Привет всем. В виду того, что cms из коробки для меня сложны, а переделывать сложные коды мне пока не под силу
я решил попробовать написать для себя свой скрипт, который будет такой как мне хочется.
Конечно некоторые части позаимствовал с этого сайта, такие как постраничная навигация, хлебные крошки и т.д.., за что огромное спасибо людям которые их выложили!

1 вопрос - Какие данные как лучше фильтровать?

Например при авторизации пользователь вводи
имя, фамилия, ник, мыло, пароль

Ему так же будут доступны
комментирование
добавление сообщений на странице своего акаунта
переписка с админом

При добавлении новости или комментария пользователю будут доступны несколько HTML тегов для форматирования



Второй вопрос про авторизацию

Сейчас у пользователей есть группа group, где два параметра
1 - админ
0 - просто пользователь

Как лучше делать авторизацию?
1 - общая для всех, для меня и для юзеров
2 - отдельная, для админа своя, для пользователей своя

проверка админ или не админ после авторизации идет через сессии
типа
CODE (text):
скопировать код в буфер обмена
  1. if ($row['group'] == '1')
  2.         $_SESSION['admin'] = true;




3 вопрос - ЧПУ.
Сейчас у меня так

index.php
CODE (text):
скопировать код в буфер обмена
  1. $_URL = preg_replace("/\/+/",'/',$_SERVER['REQUEST_URI']);
  2. $_URL = preg_replace("/^\/(.*)\/?$/U",'\\1',$_URL);
  3. $_URL = preg_replace("/^(.*)\?.*$/U",'\\1',$_URL);
  4. $_URL = explode("/", $_URL);
  5.  
  6. switch (@$_URL[0])
  7. {
  8.         case 'user':
  9.                 include "inc/user.php";
  10.         break;
  11.         case 'news':
  12.                 include "inc/news.php";
  13.         break;
  14.         default:
  15.                 include "inc/default.php";
  16. }


Далее, например
news.php
CODE (htmlphp):
скопировать код в буфер обмена
  1. switch (@$_URL[1])
  2. {
  3.         case 'one':
  4.  
  5. //........
  6.  
  7.                 break;
  8.  
  9.         default:
  10.  
  11. //ТУТ ПОСТРАНИЧНЫЙ ВЫВОД НОВОСТЕЙ
  12.  
  13. }


Постраничный вывод реализовал как ту http://php.su/articles/?cat=examples&page=062, малость его переделав.

Вот как правильно сделать ЧПУ с постраничностью?

Сейчас у меня так
site.ru/news - все новости
site.ru/news?page=1 etc...

Как реализовать, чтобы было
site.ru/news/1
или
site.ru/news/page/1

и чтобы ЧПУ было у новости
site.ru/news/moya-stranica

moya-stranica - будет браться из БД

С ЧПУ реально тяжко. Перерыл кучу сайтов и форумов, но ГОТОВОГО решения, описанного от корки до корки не нашел.

Если у кого-то будет минут 5 свободного времени, ответьте пожалуйста!
Заранее спасибо.
2. Волк - 20 Февраля, 2011 - 10:47:34 - перейти к сообщению
на первые два вопроса можно ответь что это зависит от требований к твоей цмски и от вкуса. По поводу чпу, у меня друг написал цмску и у него там блыло довольно сложно сделано, через конфигурации сервера (он использовал nginx), и каждый раз когда юзер добовлял новую страницу то скрипт переписывал файл конфигурации nginxa и .htaccessы. А вообще писать свою цмску нужно когда у тебя лет 5 опыта программирования, и ты перекопал все цмски и знаеш все их нюансы, все их плюсы и минусы.
3. dropoff - 20 Февраля, 2011 - 10:51:08 - перейти к сообщению
Ну, я не полноценную же пишу)
я для себя, для мелкого сайтика)
4. Волк - 20 Февраля, 2011 - 11:01:37 - перейти к сообщению
цмска дело серьезное, я совершил однажды одну ошибку, когда решил написать собсвенную браузерную игру прочитав один учебник по пхп. Тоже думал что напишу её один и за неделю или максимум за две. Я её писал гораздо больше чем неделю а когда более мение её завершил, стали появлястя игры гораздо более навороченые чем моя. И моя игра оказалось не конкурентно способной (да и как я сейчас понимаю взломать её было довольно просто, уязвимостей там было очень много).

Поэтому для своего сайта советую использовать какую нибудь уже готовую цмску, секономиш время..
5. dropoff - 20 Февраля, 2011 - 11:19:05 - перейти к сообщению
В том, то и дело, что готовые использовать совсем нет желания.
+ изучаю PHP пока делаю. Я сам дизайнер, мне PHP нужно только для решения банальных проблем с которыми часто сталкиваюсь. Ну и работа со smarty. Встроил его в свой сайт.

Обрисую свое ТЗ
новости, страницы, контакты, портфолио, клиенты

сайт по сути будет только для клиентов.

Из всего вышеперечисленного нет только обычных страниц
все остальное уже реализовано. Но пока там банально на уровне: список, добавление, редактирование, регистрация, авторизация...

Функции на примитивном уровне понимаю: передать значение, обработать, вернуть. С классами - пока совсем туго.
Но пока без них обхожусь.
6. Волк - 20 Февраля, 2011 - 11:42:56 - перейти к сообщению
http://spectator[dot]ru/technology/p[dot][dot][dot]er_friendly_urls вот ссыка про то как делать ЧПУ.. надеюсь поможет...
7. dropoff - 20 Февраля, 2011 - 17:10:14 - перейти к сообщению
Спасибо за ссылку, там я уже был)

Не могу понять как использовать то, что у меня уже есть.
Я имею ввиду $_SERVER['REQUEST_URI']. Не хочу забивать .htaccess, когда можно это не делать

Может у кого-то есть готовая реализация такого ЧПУ с постраничной навигацией?
Или подскажите как прикрутить к этой постраничности http://php.su/articles/?cat=exam...les&page=062

 

Powered by ExBB FM 1.0 RC1