|
Формирование строки на PHP
|
|
|
|
zeroku |
Воскресенье, 29 Февраля 2004, 20:49
|
Добрый монстр
Профиль
Группа: WinCity Team
Сообщений: 1076
Регистрация: 06.06.2002
Из: г. Москва
Пользователь №: 2365
Конфигурация
Корпус: -- Процессор: Другой Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: Нет дисковода CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
может быть я неправильно задаю вопрос, но мне хотелось узнать, как происходит формирование запроса например
http://domen/?m=news или http://domen/index.php?news2102004
как происходит данное формирование?
--------------------
С уважением, Сергей
|
|
|
|
|
pan |
Понедельник, 01 Марта 2004, 8:33
|
Участник
Профиль
Группа: WinCity Team
Сообщений: 2101
Регистрация: 11.11.2001
Из: крепость Владивосток
Пользователь №: 653
Конфигурация
Корпус: -- Процессор: Другой Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: Нет дисковода CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Хм, вопрос не понял. Если угадал, то строку УРЛа ты формируешь сам. В коде это конструкции Или:
Код | switch($m): case 'news':
break; endswitch; |
А что касается:
Цитата | http://domen/index.php?news2102004 |
То тут может быть несколько вариантов. 1. Если передается именно такой УРЛ и не используется mod_rewrite Апача, то дальше идет работа с переменной $QUERY_STRING. Она и принимает значение все того, что стоит после ?. 2. Если используется mod_rewrite, то тут может быть все, что угодно. Например, с помощью регулярных выражений выбирается отдельно слово в начале и цифры. И составляется УРЛ уже другого вида. index.php?news=2102004.
P.S> Лучше всего, используя mod_rewrite делать страницу: index.php?action=news такой: http://domain/news.html. Это даст сайту большой плюс - поисковые роботы просто замечательно индексят такие страницы, поэтому и посещаемость будет расти. Если я тебя неверно понял, то поясни.
|
|
|
|
|
zeroku |
Понедельник, 01 Марта 2004, 13:53
|
Добрый монстр
Профиль
Группа: WinCity Team
Сообщений: 1076
Регистрация: 06.06.2002
Из: г. Москва
Пользователь №: 2365
Конфигурация
Корпус: -- Процессор: Другой Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: Нет дисковода CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
на самом деле все ты правильно понял... но вот я чего-то торможу! Просто где-то читал, что знак ? в адресной строке какого-либо ресурса - это есть признак динамического сайта. Вот и мне стало интересно... а вот механизма я так и не понимаю. Есть, например, файл index.php, в котором есть Код | <html> <head><title></title> </head><body>
<a href="">какая-то ссылка</a>
<? /*а здесь должно быть что-то, что скорее всего генерит подобного рода ссылку http://domen/news/?news0202.html*/
?>
</body></html>
|
я это так понимаю.... если это так?
--------------------
С уважением, Сергей
|
|
|
|
|
zeroku |
Понедельник, 01 Марта 2004, 13:54
|
Добрый монстр
Профиль
Группа: WinCity Team
Сообщений: 1076
Регистрация: 06.06.2002
Из: г. Москва
Пользователь №: 2365
Конфигурация
Корпус: -- Процессор: Другой Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: Нет дисковода CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
только вот еще и непоимаю, что надо писать в <a href="??не понимаю">test</a> ------------------------------------------------ боюсь, что запутал я тут тебя
--------------------
С уважением, Сергей
|
|
|
|
|
pan |
Вторник, 02 Марта 2004, 0:19
|
Участник
Профиль
Группа: WinCity Team
Сообщений: 2101
Регистрация: 11.11.2001
Из: крепость Владивосток
Пользователь №: 653
Конфигурация
Корпус: -- Процессор: Другой Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: Нет дисковода CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
Цитата | <html> <head><title></title> </head><body>
<a href="">какая-то ссылка</a>
<? /*а здесь должно быть что-то, что скорее всего генерит подобного рода ссылку http://domen/news/?news0202.html*/
?>
</body></html>
|
В таком случае должно быть так:
Код | <html> <head><title></title> </head><body>
<a href=" <? /* http://domen/news/?news0202.html*/ ?> ">Текст ссылки</a> |
Цитата | только вот еще и непоимаю, что надо писать в <a href="??не понимаю">test</a> |
Строку УРЛ формирует программист. Если ты построишь скрипт так, что, например, при значении переменной $action=index выводится главная страница, то именно action=index и должно стоять после ?, чтобы получить главную страницу.
|
|
|
|
|
zeroku |
Вторник, 02 Марта 2004, 1:11
|
Добрый монстр
Профиль
Группа: WinCity Team
Сообщений: 1076
Регистрация: 06.06.2002
Из: г. Москва
Пользователь №: 2365
Конфигурация
Корпус: -- Процессор: Другой Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: Нет дисковода CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
а нужны ли для всего этого какие-либо настройки в php.ini, httpd.conf...? Или есто может быть так сгенерировано?
--------------------
С уважением, Сергей
|
|
|
|
|
pan |
Вторник, 02 Марта 2004, 10:29
|
Участник
Профиль
Группа: WinCity Team
Сообщений: 2101
Регистрация: 11.11.2001
Из: крепость Владивосток
Пользователь №: 653
Конфигурация
Корпус: -- Процессор: Другой Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: Нет дисковода CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
смотри ПМ.
|
|
|
|
|
pan |
Вторник, 02 Марта 2004, 10:48
|
Участник
Профиль
Группа: WinCity Team
Сообщений: 2101
Регистрация: 11.11.2001
Из: крепость Владивосток
Пользователь №: 653
Конфигурация
Корпус: -- Процессор: Другой Материнская плата: -- Оперативная память: -- Видеокарта: -- Жесткий диск (винчестер): -- Дисковод: Нет дисковода CD/DVD: -- Модем: -- Сетевой адаптер: -- Звуковая плата: -- Монитор: -- Операционная система: -- Прочее: --
|
php.ini или конф. файл Апача тут не причем. Только, конечно, если в php.ini параметр register_globals отключен, то доступ ко всем переменным в строке запроса будет идти через массивы: 1. $HTTP_GET_VARS[название параметра] - это в PHP<4.1.0 2. В PHP >=4.1.0 этот массив имеет еще и свою копию с коротким именем $_GET.
Например, УРЛ = index.php?action=news&date=20040302 Тогда переменные такие: $_GET[action] = news $_GET[date] = 20040302
Советую из опыта всегда при обработке УРЛов или форм ссылаться на эти массивы и не уповать на то, что у юзера включен register_globals, т.к. по дефолту он отключен. Вот еще массивы: 1. Метод ПОСТ: $HTTP_POST_VARS = $_POST 2. Куки: $HTTP_COOKIE_VARS = $_COOKIE 3. Ну и метод ГЕТ я расписал выше.
|
|
|
|
|
|
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
|
0 Пользователей:
|
|
© Copyright by WinCity.Ru 2001 - 2008 | Обратная связьУслуги веб-хостинга предоставлены компанией MTW.RU
|
|