Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Программирование » PHP » использование категорий в качестве переменных
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
MUR2iK
Участник

Зарегистрирован: Aug 2002
Место проживания: +372 [EST] TALLINN
Публикаций: 23
Статус: MUR2iK в оф-лайне
использование категорий в качестве переменных [сообщение #66308]

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

я хочу зайти в раздел «новости» на сайте www.***.com, нажимаю на соответствующую ссылку и адрес у меня соответственно меняеться на www.***.com/news, причем каталога «news» физически на сервере не существует.

я пытался делать такую вещь:

прописывал в .htaccess на ошибку 404 (файл не найден) файл index.php, в которм написал:


PHP:


<?

$req_uri 
= $_SERVER['REQUEST_URI'];
$dirname = explode("/", $req_uri);

if (!isset(
$dirname[1]) or $dirname[1] == "") {

  include 
"./main.html"; // в файле main.html находиться то, что будет показываться при заходе на www.***.com

} else {

  if (
$dirname[1] == "news"){
    echo 
"THIS IS NEWS DIVISION"; // то, что будет отображаться если заходить в раздел «новости»
  
} else {
    include 
"404.html"; // если страницы не существует
  
}
}
?>



тоесть я пересматривал содержимое $_SERVER['REQUEST_URI'] и если оно то, что мне нужно — включал соответствующий файл.

но не всё так просто. вроде бы всё логично, но не работает.

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

__________________

**censored**

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 07-05-2004 18:02
Нажмите сюда для просмотра профайла MUR2iK Отправить Персональное сообщение MUR2iK Посетить домашнию страничку MUR2iK! Найти сообщения от MUR2iK Добавить MUR2iK в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
GenUS
Участник+
Средний рейтинг: 4.63 | Оценок: 19
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Apr 2003
Место проживания: 127.0.0.1
Публикаций: 334
Статус: GenUS в оф-лайне
[сообщение #66310]

Не надо извращаться с ErrorDocument 404 ...
Не лучше-ли юзать Rewrite Engine? ... намного эстетичней будет ... и роботы не будут обламываться при индексации страниц ...

__________________
.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 07-05-2004 18:17
Нажмите сюда для просмотра профайла GenUS Отправить Персональное сообщение GenUS Посетить домашнию страничку GenUS! Найти сообщения от GenUS Добавить GenUS в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
MUR2iK
Участник

Зарегистрирован: Aug 2002
Место проживания: +372 [EST] TALLINN
Публикаций: 23
Статус: MUR2iK в оф-лайне
[сообщение #66312]

GenUS
можно пояснить что есть «Rewrite Engine» и с чем его едять?

__________________

**censored**

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 07-05-2004 18:24
Нажмите сюда для просмотра профайла MUR2iK Отправить Персональное сообщение MUR2iK Посетить домашнию страничку MUR2iK! Найти сообщения от MUR2iK Добавить MUR2iK в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Vanish
-= n0b0dy =-
Средний рейтинг: 4.29 | Оценок: 24
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Oct 2001
Место проживания: rus|53
Публикаций: 624
Статус: Vanish в оф-лайне
[сообщение #66313]

quote:
и роботы не будут обламываться при индексации страниц ...

а откуда сведенья что они обламываются?

__________________
No pity, no mercy, no regret.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 07-05-2004 18:28
Нажмите сюда для просмотра профайла Vanish Отправить Персональное сообщение Vanish Найти сообщения от Vanish Добавить Vanish в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
MUR2iK
Участник

Зарегистрирован: Aug 2002
Место проживания: +372 [EST] TALLINN
Публикаций: 23
Статус: MUR2iK в оф-лайне
[сообщение #66314]

нашел, что нужно сделать:

PHP:


if ($dirname[1] == "news"){ 
    
header("HTTP/1.0 200 Ok"); // посылаем заголовок, что то что у нас есть, это вообще, собственно и есть нужная страница
    
echo "THIS IS NEWS DIVISION"; // то, что будет отображаться если заходить в раздел «новости» 
  
}

__________________

**censored**

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 07-05-2004 18:42
Нажмите сюда для просмотра профайла MUR2iK Отправить Персональное сообщение MUR2iK Посетить домашнию страничку MUR2iK! Найти сообщения от MUR2iK Добавить MUR2iK в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
GenUS
Участник+
Средний рейтинг: 4.63 | Оценок: 19
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Apr 2003
Место проживания: 127.0.0.1
Публикаций: 334
Статус: GenUS в оф-лайне
[сообщение #66315]

Что-то вроде этого:
code:

RewriteEngine On
RewriteBase /
RewriteRule ^([a-zA-Z0-9_]*).htm$ /index.php?data=$1

после этой обработки имя виртуальной страницы передается скрипту в переменную $data ...
Пример:
Пользователь набирает: http://coolsite.ru/news_page1.htm
Скрипту передается: $data = "news_page1"
Ну и затем эту строку обрабатываешь, разделяешь на составляющие (раздел, страница, пр.) ...

__________________
.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 07-05-2004 19:07
Нажмите сюда для просмотра профайла GenUS Отправить Персональное сообщение GenUS Посетить домашнию страничку GenUS! Найти сообщения от GenUS Добавить GenUS в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
MUR2iK
Участник

Зарегистрирован: Aug 2002
Место проживания: +372 [EST] TALLINN
Публикаций: 23
Статус: MUR2iK в оф-лайне
[сообщение #66316]

GenUS
этот код надо в index.php или в .htaccess прописать?

MUR2iK добавил 07-05-2004 в 19:24:51:
GenUS
ага, прописал в .htaccess всё работает чётко. а есть у этого способа минусы? например мой метод наверняка хорошенько грузит сервер

вот к примеру:

при вложености катологов:
www.***.com/news/may
у меня
$dirname[1] = news
$dirname[2] = may

тоесть легко создавать эмитацию вложености. как поступить с Rewrite Engine?

к тому же..
побаловался я на сервере и вот, что он мне написал:
«Error description:
mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use 'RewriteOptions MaxRedirects' to increase the limit if neccessary».

тоесть видимо стоит число ограничений, поэтому такой способ не всем подходит..

__________________

**censored**

Сообщение было отредактировано MUR2iK 07-05-2004 в 19:32

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 07-05-2004 19:17
Нажмите сюда для просмотра профайла MUR2iK Отправить Персональное сообщение MUR2iK Посетить домашнию страничку MUR2iK! Найти сообщения от MUR2iK Добавить MUR2iK в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
GenUS
Участник+
Средний рейтинг: 4.63 | Оценок: 19
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Apr 2003
Место проживания: 127.0.0.1
Публикаций: 334
Статус: GenUS в оф-лайне
[сообщение #66319]

MUR2iK
Смотря как пользоваться ... вот ты что-то кажется не так сделал, вот у тя RE и стал грузить сервер, хотя у мня этот метод как часы работает ...
В том примере, который я дал разделитель между категориями переменных должен быть значком "_", слэши он не обрабатывает, хотя можно научить и этомы, подправив RE ...

__________________
.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 07-05-2004 19:48
Нажмите сюда для просмотра профайла GenUS Отправить Персональное сообщение GenUS Посетить домашнию страничку GenUS! Найти сообщения от GenUS Добавить GenUS в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
MUR2iK
Участник

Зарегистрирован: Aug 2002
Место проживания: +372 [EST] TALLINN
Публикаций: 23
Статус: MUR2iK в оф-лайне
[сообщение #66321]

GenUS
понятно. ну я во избежании глюков и перегрузок тогда буду использовать свой метод. кстати, можно посмотреть сайт, где ты используещь свою систему

__________________

**censored**

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 07-05-2004 20:19
Нажмите сюда для просмотра профайла MUR2iK Отправить Персональное сообщение MUR2iK Посетить домашнию страничку MUR2iK! Найти сообщения от MUR2iK Добавить MUR2iK в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
GenUS
Участник+
Средний рейтинг: 4.63 | Оценок: 19
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Apr 2003
Место проживания: 127.0.0.1
Публикаций: 334
Статус: GenUS в оф-лайне
[сообщение #66324]

MUR2iK
К сожалению он находится только в домашней сетке ...

__________________
.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 07-05-2004 20:33
Нажмите сюда для просмотра профайла GenUS Отправить Персональное сообщение GenUS Посетить домашнию страничку GenUS! Найти сообщения от GenUS Добавить GenUS в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
rio
Power in your mind !
Средний рейтинг: 3.67 | Оценок: 3
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Sep 2002
Место проживания: Moscow
Публикаций: 172
Статус: rio в оф-лайне
[сообщение #66344]

Ну это обыкновенный ЧПУ, вот вам ссылки по теме :
http://spectator.ru/technology/php/user_friendly_urls

__________________
Ковчег построили дилетанты, а профессионаллы построили "Титаник" - не бойтесь спрашивать то , чего вы не знаете , а так же делать то - чего не умеете !

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 08-05-2004 09:29
Нажмите сюда для просмотра профайла rio Отправить Персональное сообщение rio Посетить домашнию страничку rio! Найти сообщения от rio Добавить rio в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
MUR2iK
Участник

Зарегистрирован: Aug 2002
Место проживания: +372 [EST] TALLINN
Публикаций: 23
Статус: MUR2iK в оф-лайне
[сообщение #66381]

rio
спасибо за ссылочку, очень позновательно было почитать!

__________________

**censored**

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 08-05-2004 23:10
Нажмите сюда для просмотра профайла MUR2iK Отправить Персональное сообщение MUR2iK Посетить домашнию страничку MUR2iK! Найти сообщения от MUR2iK Добавить MUR2iK в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
rio
Power in your mind !
Средний рейтинг: 3.67 | Оценок: 3
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Sep 2002
Место проживания: Moscow
Публикаций: 172
Статус: rio в оф-лайне
[сообщение #66449]

Всегда пожалуйста

__________________
Ковчег построили дилетанты, а профессионаллы построили "Титаник" - не бойтесь спрашивать то , чего вы не знаете , а так же делать то - чего не умеете !

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 10-05-2004 10:05
Нажмите сюда для просмотра профайла rio Отправить Персональное сообщение rio Посетить домашнию страничку rio! Найти сообщения от rio Добавить rio в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
whisk
Участник
Средний рейтинг: 4 | Оценок: 1

Зарегистрирован: Oct 2003
Место проживания:
Публикаций: 31
Статус: whisk в оф-лайне
[сообщение #66493]

MUR2iK
Кажется, ошибка у тебя заключается в бесконечном редиректе. Т.е. например, test.html подходит под паттерн .*, заменяется на index.php, рерайт делается заново. Далее index.php опять подходит под .*, и все зацикливается. (это можно обойти, прописав рерайт в главном файле конфигурации - тогда рерайт делается один раз).
Кстати, метод обработкой урлов апачем будет быстрее - скомпилированный код на С все же быстрее PHP.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 11-05-2004 00:10
Нажмите сюда для просмотра профайла whisk Отправить Персональное сообщение whisk Найти сообщения от whisk Добавить whisk в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
MUR2iK
Участник

Зарегистрирован: Aug 2002
Место проживания: +372 [EST] TALLINN
Публикаций: 23
Статус: MUR2iK в оф-лайне
[сообщение #69233]

в конце концов стал использовать FilesMatch

столкнулся с такой проблемой:
при отправки из формы на реално существующую папку все переменные сохраняються, если же посылать содержимое формы на виртуальный каталог — всё убиваеться.

.htaccess:
_____________________________

Action throw /blah/index.php

<FilesMatch "^([^.]+)$">
ForceType throw
</FilesMatch>

<FilesMatch index.php>
ForceType application/x-httpd-php
</FilesMatch>
_____________________________


если учесть что папка /news/ не сущесвует реально на сервере www.***.com, то послать содержимое формы на адрес www.***com/news/?login невозможно.

есть ли способ обойти такую неприятность или придёться во всех формах писать абослютный адрес, типа www.***.com/?login независимо от расположения на сайте?

__________________

**censored**

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 24-07-2004 13:19
Нажмите сюда для просмотра профайла MUR2iK Отправить Персональное сообщение MUR2iK Посетить домашнию страничку MUR2iK! Найти сообщения от MUR2iK Добавить MUR2iK в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя



Формат времени GMT. Текущее время 11:26.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 0.24139190 seconds (97.32% PHP - 2.68% MySQL) with 26 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.