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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема переноса сайта на том же хостинге 
V
    Опции темы
anjo
  Дата 23.2.2011, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ситуация такова, меня попросили решить одну проблему, но я не могу понять в чём дело.

Был осуществлён перенос сайта на том же хостинге, тоесть хостинг не менялся, сайт скопирован (PHP), MySql база вроде импортирована корректно. Перенос делал не я, а тот кто делал пропал с концами.

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

Может кто знает, где собака зарыта?

вот сам сайт http://scomfort.lv
PM MAIL   Вверх
Wolf1994
Дата 23.2.2011, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Посмотрите в сторону .htaccess. Если правила рерайта адресов были прописаны прямо в конфиге Apache, вполне вероятно, что они не были перенесены на новое место - поэтому ссылки не обрабатываются корректно.
PM MAIL WWW   Вверх
anjo
Дата 23.2.2011, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



вот собственно содержимое файла .htaccess


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.php/$1 [L]
</IfModule>


К сожалению знания этого файла минимальны, но как ме кажется всё есть.
Или тут как то в ручную нужно прописывать каждый релативный линк?

И,к сожалению, всё, что было на предыдущем уже не посмотреть.

Это сообщение отредактировал(а) anjo - 24.2.2011, 00:10
PM MAIL   Вверх
Wolf1994
Дата 24.2.2011, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(anjo @  23.2.2011,  20:57 Найти цитируемый пост)
RewriteRule (.*) /index.php/$1 [L]

Это правило обрабатывает слова в URL. Можно в index.php добавить print_r ($_GET), чтобы убедиться, что передача параметров работает, как надо - если так, значит дело не в параметрах, а в их обработчике.

Добавлено через 4 минуты и 10 секунд
Цитата(Wolf1994 @  24.2.2011,  07:24 Найти цитируемый пост)
print_r ($_GET)

...или print_r ($_SERVER) - точно не знаю.
PM MAIL WWW   Вверх
anjo
Дата 25.2.2011, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Да, print_r ($_GET); показал, что проблема в обработчике.
Выдаёт: Array ( [0] => main)

Вот код php, из index.php

Код

    #ob_start();
    $is_frontend = true;
    require('startup.php');
    require('./lib/frontend.php');
    
    echo $_SERVER["PATH_INFO"];

    if(!isset($_SESSION['lang']))
        $_SESSION['lang'] = 'ru';

    parse_path_info();
    


    //pre-processing
    if(isset($_GET[0]))
    {
        switch($_GET[0])
        {
            case 'lang':
                $_SESSION['lang'] = mysql_real_escape_string($_GET[1]);
                unset($_GET[0]);
                unset($_GET[1]);
                header('Location: '.$base.implode( '/', array_values($_GET) ));
                die();
                break;
            case 'contacts':
                if(isset($_GET[1]))
                {
                    switch($_GET[1])
                    {
                        case 'form':
                            if(isset($_POST['name']))
                            {
                                mail('[email protected]', 'SmartComfort message',
    "Name: $_POST[name]\n
    Email: $_POST[email]\n
    Phone: $_POST[phone]\n
    \n
    $_POST[message]",
                                "From: admin <[email protected]>\r\n" .
                                "MIME-Version: 1.0\r\n" .
                                "Content-type: text/plain; charset=utf-8");
                            }
                            break;
                    }
                }
                break;
        }
    }

    if(!isset($_GET[0]))
    {
        $_GET[0] = 'main';

    }



похоже был дописан этот кусок
    if(!isset($_GET[0]))
    {
        $_GET[0] = 'main';

    }


, если менять 'main', на другие, то контент меняется, $_GET[1] за $_GET[0] выдаёт подкаталог.

Похоже придётся все прописать вручную, не подскажете как? что то с switch-case у меня не получается, видимо опыта маловато.

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


Эксперт
***


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

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



У Вас в .htaccess правило немного изменено. Оно передаёт не в $_GET, а в $_SERVER. Посмотрите $_SERVER ['REQUEST_URI'], кажется. Попробуйте присвоить его значение в $_GET [0].

Добавлено через 2 минуты и 1 секунду
Если значений несколько, разбейте их: $_GET=explode ("/", trim ($_SERVER ['REQUEST_URI'], '/'));
PM MAIL WWW   Вверх
anjo
Дата 25.2.2011, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Огромное спасибо.
$_GET=explode ("/", trim ($_SERVER ['REQUEST_URI'], '/'));
практически решил задачу.

+1, как только наберу 100 постов smile

Это сообщение отредактировал(а) anjo - 25.2.2011, 19:29
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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