[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Одна $_SESSION два сайта, передача данных
Страницы: 1, 2
asstral
Собственно: есть 2-ва сайта. На 1-м ФОРМА, на втором обработчик.
Естественно для заполнения ФОРМЫ, нужно пройти регистрацию ($_SESSION['USER_YN'] = true).
И конечно же проблема в том, чтобы второй сайт узнавал пользователя. У них одна БАЗА ДАННЫХ.
Передавать пароль с мылом, по моему не правильно...
Может Вы подскажите куда податься за ответом.
asstral
Немного поразмышляв, подумал, по-чему бы во время регистрации повторно отдавать данные и на 2-й сайт?
inpost
А что за 2 сайта? Объясни, почему должна быть общая сессия.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
asstral
Цитата
А что за 2 сайта? Объясни, почему должна быть общая сессия.

На одном стоит движок самого сайта, а 2-й служит как и обработчик, так и для хранения картинок.
В большем случае, как для хранения картинок. Что снижает загружаемость первого.
AllesKlar
asstral
Хранение картинок никак не влияет на загружаемость сайта.
Если только картинки не отдаются скриптом по какому-нибудь жутко ресурсоемкому алгоритму.
Например, картинка графика функции, которая сначала должна быть вычислена.
Но, раз ты говоришь об именно хранении картинок, то это не твой случай.


_____________
[продано копирайтерам]
asstral
AllesKlar
Сервер даёт 40% загрузку процессора, иначе отключает.
Сайт держит 4000 пос./день, загрузка при этом ~40%
После переноса всех картинок, стало ~20%.
Плюс, в моём случае, картинки хранятся из-за занимаемых ими место.
inpost
А зачем для картинок сессия? Просто отдавай картинку и всё. Все логические операции делай на основном сервере.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
asstral
inpost
Только зарегестрированные пользователи могут сохранять картинки и вообще создавать посты.
Второй то сайт не знает тот ли это пользователь или не тот.
inpost
asstral
После того, как на основной сервер добавлена картинка - её перекидываешь на второй сервер. Но ссылку о картинке хранишь на первом.
При этом скрипт, который получает картинку на втором сервере с первого будет иметь легкую защиту, а именно возможность загрузить только с IP первого сервера и возвращать ссылку картинки. Вот и всё, никакие сессии не нужны для ЭТОЙ задачи.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
stump
Если уж очень хочется то надо делать авторизацию сайта на втором сервере - генерировать какой-то токен по известному серверу проверочному алгоритму.

Также можно сделать простенький рест-фулл который будет принимать запросы по определенному алгоритму.

А если надо именно сессию то можно передать SESSID, по записать его в куку и попробовать стартануть сессию (не пробовал так) или же найти файл сессии, открыть и выбрать нужный-параметр - это небезопасно.

_____________
Трус не играет в хокей
sergeiss
asstral, не знаю, насколько поможет... Можно так сделать, нечто похожее на работу с сессиями.
При регистрации на первом сайте создаешь некий токен (типа как stump говорит), передаешь его скрипту, который отправил запрос. И одновременно создаешь на первом же сайте файлик в определенном месте, с именем, состоящим из этого токена. Внутрь прописываешь еще что-нибудь, например некий ключ, вычисляемый из токена на основе определенного алгоритма. Когда данные приходят на второй сайт, то там сначала на основании токена, по тому же алгоритму, вычисляешь тот же ключ. Курлом запрашиваешь некий скрипт с первого сайта, передавая ему токен и вычисленный ключ. Корректную пару токен:ключ может передать только твой скрипт, поэтому безопасность обеспечивается нормальная. На первом сайте берешь тот самый файл с именем токена, сравниваешь ключи... Если совпали, то аутентификация пройдена smile.gif Значит, дальше можно данные принимать и сохранять под именем этого юзера.

Возможно, на первый взгляд это выглядит запутанно, но на самом деле просто и должно быть весьма надежно.

Ну и, естественно, нужно периодически удалять эти файлы аутентификации.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
inpost
А зачем всё это? К тому же общая сессия? Как синхронизируете? Или данные в сессии меняться не будут и это лишь для авторизации? А зачем тогда их объединять, если там лишь идентификатор пользователя хранится...

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
asstral
stump
Цитата
Если уж очень хочется то надо делать авторизацию сайта на втором сервере - генерировать какой-то токен по известному серверу проверочному алгоритму.

Как вариант, только я его немного упростил под себя =)
Повторюсь у сайтов БазаДанных у них одна. Тогда:

1. Регистрация проходит всё же на 1-м сайте. ОК.
2. Пользователь зашёл на страницу заполнения формы. При этом сайт генерирует какой-то КОД занося его в Базу Данных вместе с его обладателем (id пользователя (который храниться в $_SESSION))
3. Жмём отправить форму на 2-й сайт прилепляя к ней ещё и id-пользователя и сгенерируемый КОД.
4. На 2 сайте, уже, смотрим есть ли такая запись.
5. Если всё ок, заносим в эту запись, что она использована. Дальше сохраняем данные формы.
6. Если Записи с таким пользователем и кодом отсутствуют ИЛИ она есть но использована => ничего не делаем.

Охох , как-то так.


inpost
Цитата
осле того, как на основной сервер добавлена картинка - её перекидываешь на второй сервер.

Тоже неплохо, но как-то думал, что есть попроще варианты.

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

Спасибо всем за ответы!
inpost
asstral
Проще? Просто скопировать картинку на другой сервер и всё, что может быть проще? А вот лепить авторизацию сразу на двух серверах...


_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
asstral
inpost
Цитата
А зачем всё это? К тому же общая сессия? Как синхронизируете? Или данные в сессии меняться не будут и это лишь для авторизации? А зачем тогда их объединять, если там лишь идентификатор пользователя хранится...


Данные менять не будут.
2-й сайт должен знать, что на 1-м сайте переменная, к примеру $_SESSION['USER_VOSHOL'] = true
А чтобы она была true нужно пройти авторизацию.
Быстрый ответ:

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