Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с mod_rewrite, не видит переменные 
:(
    Опции темы
Prompt
Дата 13.12.2006, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 22.2.2006

Репутация: нет
Всего: нет



Не вижу ошибки. Помогите мне!!!
Все постоянные, определенные функцией define, не видны в файлах, к-ые подключает index.php (require_once). Массив $_GET также не виден в подключаемых файлах.

файл .htaccess

Код

RewriteEngine on
Options +FollowSymlinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L,QSA] 


в файле index.php
Код

$_GET = explode( '/' , $_SERVER['REQUEST_URI'] ); 
define('DIRECT', $_SERVER['DOCUMENT_ROOT']."/");
require_once("file.php");


файл file.php
Код

require_once(DIRECT."file2.php");            //ошибка, не предопределена константа
function1($_GET[1]);                    //ошибка, не существует индекса 1.  


в папке admin находится index.php
Код

<?php
  $adm = "../";
  require_once($adm."index.php");                
?>


Вызываются все те же функции и файлы, но никаких ошибок не выдает. В папке admin лежит точно такой же .htaccess

Т.е. если в адресной строке браузера набрать domain.ru/admin/avto/5, то все работает, 
а domain.ru/avto/5 приводит к ошибке. 

В операциях с элементами массива $_GET я не забываю учитывать, что при admin надо начинать со второго элемента, а в обычном случае с первого. 
Где ошибка?




PM MAIL   Вверх
Wolf1994
Дата 13.12.2006, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 5.10.2004

Репутация: 7
Всего: 29



Код

RewriteRule ^(.*)$ index.php?$1 [L,QSA] 

PM MAIL WWW   Вверх
Mal Hack
Дата 13.12.2006, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Wolf1994, а тогда смысл юзать QSA???

Prompt, что и из чего ты преобразуешь?
mod_rewrite (RewriteRule) НЕ ПРЕОБРАЗУЕТ QUERY_STRING, если ты ее сам не перезапишешь.

И какого черта тут PHP???
PM ICQ   Вверх
Prompt
Дата 13.12.2006, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 22.2.2006

Репутация: нет
Всего: нет



Наверное, никакого. Надо переместить.
Цитата

что и из чего ты преобразуешь?


Это что? Я совсем не понимаю в этом. 
А разве вот здесь у тебя не то же самое написано?
(Это просто вопрос, я действительно не понимаю)

mod_rewrite
PM MAIL   Вверх
Mal Hack
Дата 13.12.2006, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Prompt, правила правилами.
Я спашиваю что ты хочешь получить на выходе и что даешь на вход.
PM ICQ   Вверх
Prompt
Дата 13.12.2006, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 22.2.2006

Репутация: нет
Всего: нет



У меня есть файл index.php, который в зависимости от первой переменной в адресной строке подключает те или иные модули. 
Т.е. строка, которая должна была бы выглядеть вот так 

http://mysite.ru/index.php?id=module&cars=lada

а я хочу 

http://mysite.ru/module/lada

обращение всегда к index.php

Все мои ссылки везде прописаны таким образом http://mysite.ru/module/lada. Я понимаю, что их надо перезаписать.

И все хорошо работает без ошибок в папке admin, т.е. когда все ссылки вот такие http://mysite.ru/admin/module/lada. (Хотя это уже написано выше)

PM MAIL   Вверх
Mal Hack
Дата 13.12.2006, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Prompt, внимательно прочитал мою статью?
Что там сказано относительно обработки полученного перезаписанного URI в скрипте?
PM ICQ   Вверх
Prompt
Дата 14.12.2006, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 22.2.2006

Репутация: нет
Всего: нет



Ты имеешь в виду вот это?

Код

<?php 
$arr = explode( '/' , $_SERVER['REQUEST_URI'] );
// Разбиваем переменную $_SERVER['REQUEST_URI'] на массив элементов по символу '/'.
?>


В самом начале index.php у меня это прописано.
PM MAIL   Вверх
Mal Hack
Дата 14.12.2006, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Соответственно, где у тебя при запросе /module/data будет module, а где data?
PM ICQ   Вверх
Prompt
Дата 14.12.2006, 00:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 22.2.2006

Репутация: нет
Всего: нет



Я не понимаю. 

$arr[1] = module (т.е. без mod_rewrite $_GET['module'])
$arr[2] = data      ($_GET['data'])

Разве не так? 

Так у меня ведь постоянные не видны

Это сообщение отредактировал(а) Prompt - 14.12.2006, 00:55
PM MAIL   Вверх
Mal Hack
Дата 14.12.2006, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



1. При чем тут $_GET ???
Это - служебный массив.
PM ICQ   Вверх
Prompt
Дата 14.12.2006, 01:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 22.2.2006

Репутация: нет
Всего: нет



Я имею в виду если бы без mod_rewrite, аля $_GET
Если не подключать никакие файлы через require_one, то все проходит нормально, без ошибок. Но если надо подключить файл, то выдаются ошибки из подключаемого файла. 
PM MAIL   Вверх
Mal Hack
Дата 14.12.2006, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Prompt, читай внимательнее:

Цитата(Mal Hack @  14.12.2006,  01:00 Найти цитируемый пост)
Это - служебный массив. 

Воспользуйся моим примером и заюзай $arr.
PM ICQ   Вверх
Prompt
Дата 14.12.2006, 01:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 22.2.2006

Репутация: нет
Всего: нет



Мой массив называется $param. И думаю дело не в названии. Почему у меня все работает, когда я захожу из другой папки? Обращаюсь к тому же самому файлу.
PM MAIL   Вверх
Mal Hack
Дата 14.12.2006, 01:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



короче...
print_r(explode( '/' , $_SERVER['REQUEST_URI'] )) и отлаживай

PM ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0549 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.