[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Имя файла = переменная
SunSet
Подскажите, пожалуйста, может ли имя файла одновременно быть переменной в ссылке, например, site.ru/page1?id=3 и вытягивать по запросу инфу с таблицы где строка в таблице (page) = "page1.php" и id = "3" ? То есть из поля адреса браузера брать имя файла как и id в даном примере.



Спустя 11 минут, 29 секунд (17.08.2009 - 00:54) FatCat написал(а):
Да, именно так обычно и делается.

Спустя 6 минут, 13 секунд (17.08.2009 - 01:01) SunSet написал(а):
FatCat
То что ID передается то я понимаю, а вот имя файла - без понятия. Щас будем пробовать smile.gif

Спустя 9 часов, 50 минут, 25 секунд (17.08.2009 - 10:51) FatCat написал(а):
В простейшем случае как-то так:
PHP
$nav = Array(
'1' => 'about.php',
'2' => 'contact.php',
'3' => 'reply.php'
)
$GET['action'] = intval($GET['action']);
if(
 $nav[ $GET['action'] ] )include $nav[ $GET['action'] ];
else include 'main.php';


Соответственно, по запросу index.php?action=1 будет показана about.php

Спустя 16 минут, 6 секунд (17.08.2009 - 11:07) Nikitian написал(а):
А лучше так:
PHP
if(!file_exists('/path/to/modules/'.basename($_GET['action']).'.php'))
{
//Алярм, загружается несуществующий модуль!
}
else
{
include_once(
'/path/to/modules/'.basename($_GET['action']).'.php');
}

Спустя 4 минуты, 49 секунд (17.08.2009 - 11:12) SunSet написал(а):
FatCat
Нет-нет, я чуть по-другому имел ввиду. Может ли сам файл page1.php быть условием? То есть если запрос делается со страницы p1.php значит из баззы вытягиваем строку где page = p1. А если с другой страницы, значит подставляем p2 (p2.php сама страница).
В примере повыше там включается страничка в зависимости от того что нажато, а мне нужен поиск в зависимости от того, с какой страницы запрос был. Просто планируется большое колличество файлов типа стр1, стр2, стр2 ... и чтоб в каждой не менять SELECT и далее сделать вот такую проверку.

Спустя 47 минут, 38 секунд (17.08.2009 - 12:00) FatCat написал(а):
Цитата (SunSet @ 17.08.2009 - 12:12)
Может ли сам файл page1.php быть условием?

Да.


Цитата (SunSet @ 17.08.2009 - 12:12)
если запрос делается со страницы p1.php

PHP
if(stristr($_SERVER['HTTP_REFERER'],"p1.php"))
{
// Действия для посетителей, перешедших со страницы p1.php
}
elseif(
stristr($_SERVER['HTTP_REFERER'],"p2.php"))
{
// Действия для посетителей, перешедших со страницы p2.php
}
else
{
// Действие для тех, кто пришел из незапланированных мест.
}


Если вариантов очень много, компактней код написать через switch.

Спустя 5 часов, 24 минуты, 26 секунд (17.08.2009 - 17:24) SunSet написал(а):
FatCat
А разве будет корректно выводиться страница, например, site.ru/page1.php?id=2, если не заходя на страничку page1 просто ввести в браузер адресс site.ru/page1.php?id=2. Просто если пользователь сохраняет в избранное, то при заходе в следующий раз он ведь может не перейти с page1.php, а просто напрямую по полной ссылке.

Спустя 3 часа, 20 минут (17.08.2009 - 20:44) SunSet написал(а):
ап sad.gif

Спустя 2 минуты, 29 секунд (17.08.2009 - 20:46) Krevedko написал(а):
Цитата (SunSet @ 17.08.2009 - 14:24)
FatCat
А разве будет корректно выводиться страница, например, site.ru/page1.php?id=2, если не заходя на страничку page1 просто ввести в браузер адресс site.ru/page1.php?id=2. Просто если пользователь сохраняет в избранное, то при заходе в следующий раз он ведь может не перейти с page1.php, а просто напрямую по полной ссылке.

не понял вопроса.
в site.ru/page1.php?id=2

на page1.php передается через метод гет параметр $_GET['id'] =2
а как ты им распорядишься на page1.php..это уже другой вопрос. тот же свич

Спустя 23 минуты, 47 секунд (17.08.2009 - 21:10) SunSet написал(а):
Krevedko
В идеале это вижу так: есть куча файлов по типу page1.php, page2.php ... и есть один файл, который подгружается тем же свитчем, например, файл res.php. Этот файл один и будет выводить ту инфу, в зависимости от того какой из файлов page1 или page2 его запросил. Но и чтоб вся эта схема работала, если пользователь вручную ввел полный адресс к странице.
Как вот с этом единственном файле придумать чтоб он определял с какого файла запрос и делал выборку из базы подстраиваясь под это.
Ссылка должна выглядеть примерно так site.ru/page1.php?id=res, для файла page2.php точно такая же и т д. Без дополнительных параметров . blink.gif


_____________
... и помните! Каким бы ни был PHP, главное - чтобы он был защищенным! :) (PHP с Анфисой Чеховой)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.