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 :: Версия для печати :: Про ЧПУ и не только.. [6]
Форумы портала PHP.SU » Разное » Обсуждение статей » Про ЧПУ и не только..

Страниц (9): « 1 2 3 4 5 [6] 7 8 9 »
 

76. DeepVarvar - 11 Ноября, 2012 - 01:00:21 - перейти к сообщению
Ну в этом логе ничего нету, это точно эррорлог?
77. NEMOGY - 11 Ноября, 2012 - 11:01:27 - перейти к сообщению
DeepVarvar пишет:
Ну в этом логе ничего нету, это точно эррорлог?

Ну наверное)... Z:\usr\local\apache\logs\error.log
(Добавление)
DeepVarvarМожет на реальном хосте будет работать?
78. DeepVarvar - 11 Ноября, 2012 - 12:33:52 - перейти к сообщению
А чем ваш хост хуже реального?
79. NEMOGY - 11 Ноября, 2012 - 13:00:40 - перейти к сообщению
DeepVarvar пишет:
А чем ваш хост хуже реального?

Не знаю, так вот не делает рерайт... Никак не получается уже это сделать... Может вы можете сделать эти ЧПУ??? Или подскажите кто может помочь реализовать ЧПУ, сколько будет стоить? 10 wmz достаточно?
80. DeepVarvar - 11 Ноября, 2012 - 13:05:22 - перейти к сообщению
Э, нее, никаких денег, вы так решите для себя, либо всегда платить, либо делать все самому.
Загуглите по фразе "ЧПУ денвер"
81. NEMOGY - 11 Ноября, 2012 - 13:09:53 - перейти к сообщению
DeepVarvar пишет:
Э, нее, никаких денег, вы так решите для себя, либо всегда платить, либо делать все самому.
Загуглите по фразе "ЧПУ денвер"

Так понимаешь делаю сайт для себя, без всяких знаний начинал, а тут еще диплом сдавать через месяц по строительству, так хочу закончить с этим делом, пусть потихоньку индексируется, а сдам диплом, так уже можно будет поднажать, нужно очень срочно... ну плиззз
(Добавление)
DeepVarvar
Что никак?
82. Evgenius - 08 Марта, 2013 - 19:35:40 - перейти к сообщению
DeepVarvar пишет:
Мы просто ВООБЩЕ ВСЕ что к нам приходит перенаправим в один единственный файл:

Здравствуйте!
А как прописать правила в .htaccess, если сайт расположен не в корне сервера, а во вложенной папке.
Т.е. если .htaccess и index.php лежат в корне сайта, то все отлично работает, проверял.
Но в корне сайта у меня работающий сайт, пока делаю новый, решил сделать его временно в папке site.ru/test. Как в этом случае прописать правила для mod_rewrite?
Перечитал тысячу статей по mod_rewrite, выдрал все волосы, но не могу заставить работать.

P.S. Пока печатал сообщение, пришла мысль, что может быть парсинг запроса нужно изменить для этого, а не правила реврайта?

Я начинающий... сильно не ругайте
83. DeepVarvar - 09 Марта, 2013 - 10:17:53 - перейти к сообщению
Сделайте себе поддомен и экспериментируйте на здоровье.
Всеравно потом выливать на старое место.
84. Evgenius - 09 Марта, 2013 - 11:28:18 - перейти к сообщению
DeepVarvar пишет:
Сделайте себе поддомен и экспериментируйте на здоровье.
Всеравно потом выливать на старое место.

Решено.
В модреврайте нужно только поменять Rewrite Base / на Rewrite Base /test/ (в моем случае)
А ошибку выдавала mysql_real_escape_string, т.к. у меня не было выполнено на тот момент подключение к базе. Либо нужно было пока убрать строчку очистки от иньекций при парсинге запроса..
Теперь все заработало.
85. Evgenius - 11 Марта, 2013 - 09:02:22 - перейти к сообщению
DeepVarvar пишет:
А сам файл может содержать все что вам надо исключительно для работы с регистрацией пользователей.
Кстати самый смысл в том, что он ведь может обработать и $params[1], скорее даже должен.
Ведь именно для него мы передаем второй параметр.


DeepVarvar, здравствуйте!
Не могу понять, как обрабатывать дальнейшие запросы...
Сайт я сделал таким образом.
Если упростить, для удобства, на сайте три странички - главная, о нас и продукция
Для каждой странички у меня два файла - в папке modules/main.php и в папке template/tpl_main.php (это для главной страницы сайта, которая загружается, если набрать site.ru).
В файле main.php задается title, готовятся данные, которые присваиваются переменным и массивам, вызывается шаблон этой страницы (там эти переменные вставляются как
к примеру), и вызывается главный шаблон сайта, в который уже подставляется title и страница, которую мы вызвали. Ну как бы ничего нового, умнее ничего не придумал.

Вот с первым "уровнем" понятно. Если мы только зашли на сайт, то

PHP:
скопировать код в буфер обмена
  1. if (count($params) == 0) $params[0] = "main"


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

Но вот на странице каталога продукции у меня циклом из БД собирается табличка всей продукции, и если нажать на картинку продукта, то должна открыться страница с подробным описанием конкретного продукта. Если для кнопок меню делается свой файлик, который собирает эту страницу, то для каждого продукта должен же быть "один для всех" файл, который по переданному параметру подставляет из БД инфу именно для этого продукта. Эту страничку я сделал, к примеру назовем ее product_view.php
И вот я не могу понять где должно стоять условие перехода на нее? Все возможные пересечения условий собирать в индексном файле? Но ведь чем больше сайт, тем больше будет "пухнуть" index.php... или это нормально?
Измучался уже весь... не могу сделать...

Ссылка для каждого продукта на странице продукции у меня собирается следующим образом. В БД в таблице продукции у каждого продукта есть английское название и я подставляю ее вот так:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <a href="products/<?=$row['engname']?>"><img src="images/products/<?=$row['engname']?>.jpg" alt="<?=$row['name']?>" /></a>

и получается

CODE (htmlphp):
скопировать код в буфер обмена
  1. <a href="products/product_1"><img src="images/products/product_1.jpg" alt="Продукт 1" /></a>

ну вот так сделал... не придумал, как по другому.
Т.е. при нажатии на ссылку продукта у меня $params[0]="products" и $params[1]="product_1".

А вот где должно стоять условие запуска страница product_view.php?
86. DeepVarvar - 11 Марта, 2013 - 09:10:08 - перейти к сообщению
Evgenius пишет:
href="products/product_1"
Неа, вот так:

href="/products/1"

Тогда вот эта еденичка будет доступна в $params[1], а это ж айдишник товара, пральна?
(Добавление)
Evgenius пишет:
А вот где должно стоять условие запуска страница product_view.php?
Ну естессно явно в модуле products. Если мы обнаружили что есть еще и $params[1], то явно надо идти в базу искать товар с этим айди и явно выводить не список товаров, а описание одного товара.
(Добавление)
DeepVarvar пишет:
href="/
И вот не прошу, а требую писать хрефы всегда от корня, как в моем примере.
87. Evgenius - 11 Марта, 2013 - 13:43:11 - перейти к сообщению
[quote=DeepVarvar][/quote]
исправил... не работает...

Я правильно понимаю процесс?:
1. Загрузили сайт, пока в $params[0] ничего нет, по условию загружаем главную страницу.
2. Нажимаем на кнопку "Продукция", в $params[0] появляется "products", загружается страница "Продукция"
3. На странице "Продукция" нажимаем на ссылку какого-нибудь продукта, в $params[1] появляется, нарпимер, "product_1", сервер заново начинает с индексной страницы, раз уже есть $params[0]="products", он переходит на products.php, там по условию определяем есть ли что-то в $params[1] и если есть, то переходим на products_view.php и там в зависимости от параметра показываем тот продукт.

так происходит?

Не могу понять, где косяк...

в файле products.php, в начале файла у меня стоит условие

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. if ($params[1] != 0)
  3.    require_once file_exists('modules/products_view.php')
  4.    ? 'modules/products_view.php' : 'modules/404.php';*/

Или обязательно нужно, что бы было "/products/1", а не "/products/products_1" при формировании ссылок на продукты?
(Добавление)
Все, нашел косяк... условие переписал вот так

PHP:
скопировать код в буфер обмена
  1. if (isset($params[1]))
  2.    require_once file_exists('modules/products_view.php')
  3.    ? 'modules/products_view.php' : 'modules/404.php';


и все заработало.

DeepVarvar, спасибо за помощь!
(Добавление)
ну и в догонку задам еще один глупый вопрос...

в файле products.php у меня, после условий выполнять его или переходить на products_view.php стоят две строчки

PHP:
скопировать код в буфер обмена
  1. echo 'это параметр 1';
  2. echo $params[1];

это я делал, для поиска ошибок... При заходе на страницу Продукция они писались в самом верху, что бы мне следить за данными $params()

Так вот при переходе со страницы Продукция на страничку конкретного продукта они все равно выводятся на экран, в самом низу.
Как такое может быть? Такое ощущение, что страница не обновляется, а просто сдвигается вниз...
88. DeepVarvar - 11 Марта, 2013 - 15:04:23 - перейти к сообщению
"двигается вниз", чем больше параметров в $params тем больше вы сами подключаете.
И теперь вдруг спрашиваете что случилось Улыбка
89. Evgenius - 11 Марта, 2013 - 15:10:47 - перейти к сообщению
DeepVarvar пишет:
И теперь вдруг спрашиваете что случилось Улыбка


так а я почему-то думал, что страницы каждый раз заново рисуются...
т.е. это нормально?

сделал такие же строчки в main.php (это главная страница), при переходе на другие страницы эти строчки пропадают...

или это из-за того, что products_view.php как бы вложена в products.php и перед показом инфы отдельного продукта мы уже загружали список продуктов?
(Добавление)
нет, не пропадают... сделал такие же строчки в индексном файле, они сразу перешли на main.php

ну а если представить такую гипотетическую ситуацию, что эти строчки нужны (я то их уберу)... получается они будет кочевать с одной страницы на другую?
90. Морозов Семен - 06 Мая, 2013 - 18:12:35 - перейти к сообщению
DeepVarvar, а как выполнить следующее:

PHP:
скопировать код в буфер обмена
  1. $_SESSION['now_link'] = $params[0];

Вместо содержимого $params[0], переменная сессии выглядит так: now_link|N;

Что это такое? Уже весь день голову ломаю по этому поводу.

Это мне собственно для чего нужно: в сессию записывается ссылка текущей страницы в виде $params[0], пользователь проходит либо авторизацию, либо комментирует статью (в общем, обращается к обработчику данных). И после обработки данных обработчик пользователя переадресовывает на ту ссылку, которая записана в сессии, как текущая, т.е. now_link

А так всё работает замечательно. У меня на этой системе построен весь сайт, спасибо огромное за подробно предоставленный материал.

 

Powered by ExBB FM 1.0 RC1