postavkin

Рейтинг
601
Регистрация
06.01.2009
maldivec:
Т.е. у вас физически будут 100500 файлов совершенно одинаковых?
Какой в них смысл? Сделайте один index.php и все.

Согласен и понимаю, что даже 300 страниц с абсолютно одинаковым кодом плодить смысла нет. Но пока не осилил и не понял - как обойтись без физических страниц с красивыми урлами вида - /ford-focus.php Понимаю, и видел сайты где не настроен ЧПУ (mod_rewrite я так понимаю) и урлы имели вид index.php?id=24632 или index.php/?tovar=379&id=387378

Но мне бы так не хотелось делать и сейчас надо понять как это реализуется.

Иду читать про mod_rewrite

---------- Добавлено 23.10.2012 в 16:54 ----------

Ayavryk:

Потратьте немного времени на изучение ООП и посмотрите на какой-нибудь простой php-фреймворк.
В них уже заложены структура простых приложений и адресации. В БД лезть совершенно необязательно, если вы этого по-началу боитесь.

Ответьте, пожалуйста, а то ввели меня в заблуждение.

Т.е. как можно обойтись без БД? а от куда берутся данные (переменные) при получении того или иного значения ($_SERVER['REQUEST_URI']) ? Как понять простой php-фреймворк или нет...

Это жесть. Читаю про mod_rewrite http://habrahabr.ru/company/sprinthost/blog/129560/ и понимаю, что наверное мне это не осилить.

---------- Добавлено 23.10.2012 в 17:41 ----------

Спасибо ivan-lev.

Подсказал, что нужно мне использовать


RewriteEngine ON
#
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Я понял, что какой бы адрес в строке браузера не ввели, страница будет редиректиться на index.php в которой мы типа будем получать инфо какой был запрошен урл первоначально и выдавать данные.

Но я не могу понять, как пс поймет какая страница реально существует, а какая нет...Ну просто принцип действия в голове не укладывается.

Ну ввел я в адресной строке www.site.ru/auto-audi.php - редирект на index.php и выводит нужные данные. А допустим страницы www.site.ru/auto-audi2.php - не существует, но все равно идет на редирект, и пустой шаблон получаем.

ivan-lev, повторюсь - я не профи, но на бытовом уровне так можно сделать?

любая страница сайта содержит только такой код

  <? include('includes/shablon.php'); ?> 

файл shablon.php выглядит условно говоря так


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


---------- Добавлено 23.10.2012 в 14:36 ----------

Ayavryk:
В БД лезть совершенно необязательно, если вы этого по-началу боитесь.

Так я храню названия title, description, keywords, h1 и другие некоторые поля в зависимости от раздела в БД. Или вы не про это?

ivan-lev:
нет. Рекомендую ещё раз внимательнее прочитать статью. Погуглить про ЧПУ.
Посмотрите, как работают сайты на любом современном движке (drupal|wordpress) - у них ведь "красивые" адреса.. =)

Спасибо ещё раз, но самописный движек мне не осилить :) Далеко не тот уровень 😒

ivan-lev:
Вообще, ИМХО, более понятна (и уместна для Web-приложений) единая точка входа и MVC (с бонусами роутерами (это который sobiraet-dannye и передаёт дальше) -хелперами в виде отдельных/слабосвязанных классов)

Спасибо за инфо. Но если я правильно понял, то урлы будут вида www.site.ru/index.php?* . Да? Но я бы хотел сохранить в url внутренних страниц такими www.site.ru/plitka-atlas-concord.php Спасибо, буду читать. Я самоучка, прошу понять, мне весьма сложно освоить такие сложные технические вещи без помощи.

LEOnidUKG:
strip_tags
и если идёт добавление в БД, то mysql_real_escape_string

Спасибо. С strip_tags порядок, а вот второй дает ошибку.


Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'stroyka'@'localhost' (using password: NO) in /home/stroyka/domains/plitka-r.ru/public_html/zapros.php on line 47

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /home/stroyka/domains/plitka-r.ru/public_html/zapros.php on line 47

LEOnidUKG, спасибо.

Я своими кривыми руками (кривые от недостатка знаний) и с вашей помощью сделал что в таблицу из формы данные заносятся читаемыми, в полях формы (если юзер недозаполнил поля) тоже читаемые показывает и в странице вывода контента тоже всё ок. Но столько лишних строк, меня просто убивает эта кодировка.

LEOnidUKG, может стоило всё оставить как было когда то в windows-1251 и не париться? Не вижу преимуществ для себя от utf-8

А то теперь даже чтобы ФИО юзера перевестив заглавные первые буквы вместо простого ucwords приходится писать

$username = mb_convert_case($username, MB_CASE_TITLE, "utf-8");


---------- Добавлено 21.10.2012 в 15:56 ----------

bukachuk:
У вас у полей CP1251 в таблице

Специально некоторые так оставил, чтобы видеть какие норм выводятся какие нет. В итоге - не влияет. Я вообще запутался и нигде материал найти не могу, что в какой кодировке надо оставить. Мне же с полями потом ещё дальше работать нужно - переводить в верхний регистр, удалять символы и т.д.

Всю голову сломал и понять не могу, почему нужно писать после подключения к бд

mysql_query("SET CHARACTER SET 'utf8'", $db); // приводим в кодировку utf-8

mysql_query("SET NAMES 'utf8'", $db); // приводим в кодировку utf-8

если у нас и так всё в utf-8.

и вот что получается после заполнения формы

jpg 115263.jpg
ivan-lev:
У бд, у таблицы - ок. А collation у самих текстовых полей таблицы?
p.s. а запросы "set names" выполняются и при сохранении и при показе формы?

вот так сейчас

jpg 115261.jpg
jpg 115262.jpg
Всего: 5509