Как передать SID через include?

Freetz

Guest
Как передать SID через include?

Есть проблема. Файл скрипта ссылается на footer.php (через include). А в footer-e у нас происходят некоторые действия для которых необходимо продолжение сессии. При попытке написания:

include "http://$DATING_SITE/design/footer.php?SID";

Сессия не передается. При попытке написания следующей конструкции:

$var=SID;
include "http://$DATING_SITE/design/footer.php?$var";
скрипт вообще подвисает.

Вопрос - как правильно передать сессию в такой ситуации? Заранее спасибо за ответ.
 

Фанат

oncle terrible
Команда форума
include $_SERVER['DOCUMENT_ROOT']."/design/footer.php";
И БОЛЬШЕ НИКОГДА не инклюдь, как ты это делал раньше
 

Freetz

Guest
2Фанат
Случай чуть-чуть сложнее. Представь, что один скрипт юзают несколько сайтов.
Если делать так, как сказал ты, т.е.:
include $_SERVER['DOCUMENT_ROOT']."/design/footer.php";
То в этом случае при обращении к футеру с другого сайта выведется футер того сайта, на котором лежит документ со строкой
include $_SERVER['DOCUMENT_ROOT']."/design/footer.php";
Т.е. выведется чужой футер. А этого мне не надо.
ЗЫ Возможно я просто что-то не понял (к тому же наверное слишком запутанно объяснил).
 

Фанат

oncle terrible
Команда форума
если эти сайты на одном сервере, то путь к ним можно прописать локальный.
если эти сайты на разных серверах, то и сессии у них будут разныыми, и задача станет бессмысленно.

Ты не понял главноего - что такое инклюде, для чего он служит.
 

Serguitar

Новичок->продвинутый
include "http://$DATING_SITE/design/footer.php?SID";
Ты что инклудишь, файл или сессию?:)
А в footer-e у нас происходят некоторые действия для которых необходимо продолжение сессии.
session_start();
Определись чё те надо, народ не понимает.
 

Freetz

Guest
2Фанат
Сайты на одном сервере, но тем не менее, $DOCUMENT_ROOT включает в себя и $SERVER_NAME. Соответственно это не подходит.
А на счет инклуда - возможно, в этом случае он и не нужен. Но как же все-таки тогда сделать то, о чем я писал?
 

Фанат

oncle terrible
Команда форума
локальный путь - это не только DOCUMENT_ROOT.
если кто еще не догадался.
ты вообще понмаешь, чем путь на диске отличается от url?

-~{}~ 22.11.04 15:08:

а сделать очень просто. использовать include по назначению
 

Freetz

Guest
2Фанат
А если сайтов очень много, то для каждого прописывать локальный путь (я понимаю чем он отличается от урл) "немного" напряжно.

-~{}~ 22.11.04 16:21:

И к тому же, ты считаешь что использовать include для подключения footer-a это не по назначению?
 

Фанат

oncle terrible
Команда форума
так, стоп

-~{}~ 22.11.04 16:29:

"немного" напряжно.
а придется.
К тому же, писать путь к файлу НИЧУТЬ не напряжнее, чем урл.

правда, пхп может автоматом иклюдить ко всем сайтам выбранный файл.
Но чем больше, тем больше, я убеждаюсь, что делаешь ты что-то через технологическое отверстие.
счетчик у тебя, что ли, в этом инклюде?
ты считаешь что использовать include для подключения footer-a это не по назначению?
покажи пальцем, где я такое написал?
 

Freetz

Guest
В инклуде у меня (т.е. в футере) меню пользователя - всякие там выходы, входы, ссылки и проч.

покажи пальцем, где я такое написал?

А написал ты так: использовать include по назначению.

я его использую:

include "http://$DATING_SITE/design/footer.php?SID";

т.е для футера.
 

Фанат

oncle terrible
Команда форума
Вот это и есть использование не по назначению.
инклюде служит для включения в код PHP-кода,а а не HTML!

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

Freetz

Guest
Кстати, а как можно реализовать использование одного скрипта (который лежит на одном сервере) разными сайтами с разных серверов? (Вопрос, возможно, ламерский, но все же).

-~{}~ 22.11.04 16:40:

2Фанат
В том то и дело, что меню пользователя не совсем у всех одинаковое. $DATING_SITE - название конкретного сайта. т.е. для каждого сайта свое меню. Скрипт просто один на все сайты. и я прекрасно понимаю, что используя http:/ я получаю обратно только хтмл.
 

Фанат

oncle terrible
Команда форума
если прекрасно понимаешь - значит, должен бы и понимать, что используешь инклюд неправильно.
Что-то у тебя с понималкой не то. Вроде бы, все по отдельности понимаешь, ва выводы делаешь неправильные.

Ты, как-то, вопрос замял, а мне интересно.
Не расскажешь ли, чем путь к файлу писать "немного" напряжнее, чем урл? И почему тебя это "немного" так пугает?
 

Freetz

Guest
Расскажу:
Дело в том, что (как я уже говорил) на одном скрипте несколько сайтов. Если делать непосредственно в ручную локальный путь, то уже получается, что для каждого сайта нужен свой скрипт.
Вот так.
 

Фанат

oncle terrible
Команда форума
Не понял.
Вот как раз это я тебя и спрашиваю - почему ПОЛУЧАЕТСЯ?
Зачем каждому сайту свой скрипт?
Что плохого будет, если скрипт будет один?

Кстати, а сессия между этими сайтами общая должна быть?
 

Freetz

Guest
Сессия-то, по сути, у каждого своя. Просто переменные сессии совпадают по именам. И это не важно. Так как фактически (может я плохо объясняю) задача стоит следующая: этот единственный скрипт подгружает футер того сайта, который к нему обратился.
Если это будет один скрипт, то у меня несколько вопросов.

1)include "local/path/footer.php"; Но надо определить, какой сайт обратился. Т.е. в тот моент, когда в файле "сайта" инклудится файл "скрипта" опять таки надо передавать параметр.

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

Фанат

oncle terrible
Команда форума
Расскажи - я объясню тебе, что в ней неправильно.
Судя по всему, тебе лавры гениальной мамбовской маркетинговой политики не дают покою? :)

А момент-то ты выбрал неподходящий.
Наоборот, человеческое использование инклюда снимает ВСЕ твои проблемы.
в СКРИПТ-то ПЕРЕДАВАТЬ ничего и не надо! В нем и так уже все есть! И СИД, и САМА СЕССИЯ, и вообще ВСЕ переменные того скрипта, который его инклюдит.
Неужели среди них нету той, которая определяет сайт? Хочешь, подскажу?
 

Freetz

Guest
Рассказываю.
Все сайты состоят из файлов вида примерно следующего:

----------
<?php
session_name("user_account");
session_start();
include_once "conf.php";
include "design/header.php";
include "path/to/script//script.php";
//include 'design/footer.php';
?>
--------
Сам же скрипт, который path/to/script//script.php находится только на одном из сайтов.

Вкратце, вот так.

Иногда скрипту приходится самому загружать хедеры-футеры. Как правильно на них сослаться .(чтобы они соответствовали нужному файлу). Подскажи, плиз.

-~{}~ 22.11.04 17:43:

А на счет того, что файл, который был загружен инклудом содержит все переменные файла, которй его загрузил, это верно. Но если для примера, в том же файле скрипта содержится форма,то при нажатии на кнопку submit все переменные, насколько я понимаю, пропадают (есс-но если в action тот самый файл скрипта).
 
Сверху