Всем добрый вечер! Я опишу задачу а вы подскажите пожалуйста. домен номер 1 скрипт php отправка запроса POST на домен номер 2 делаю вот так Код (Text): $postdata = http_build_query( array( 'var1' => 'myvalue', 'var2' => 'myvalue' ) ); $opts = array('http' => array( 'method' => 'POST', 'header' => 'Content-Type: application/x-www-form-urlencoded', 'content' => $postdata ) ); $context = stream_context_create($opts); $result = file_get_contents('http://example.com/submit.php', false, $context); header('Location: http://example.com/obrabotka.php'); exit; скрипт который находится на втором домене по адресу в примере http://example.com/submit.php создает сессию и сохраняет параметры данных которые пришли с post запроса итог переходя скрипт на страницу примера http://example.com/obrabotka.php не имеет данных сессии не уверен что очень понятно объяснил если кратко два домена: скрипт с первого домена отправляет пост запрос во второй домен скрипт которого получает пост данные и записывает в сессию и далее переходит на страницу того же второго домена и работает с данными сессии
Вы точно понимаете что такое сессия, для чего она и как работает? К чему эти фокусы вообще - какую задачу вы решаете так?
мне нужно из одного домена передать параметры в другой домен --- Добавлено --- если кратко два домена: скрипт с первого домена отправляет пост запрос во второй домен скрипт которого получает пост данные и записывает в сессию и далее переходит на страницу того же второго домена и работает с данными сессии
Просто сделай форму (возможно, со скрытыми полями) с обработчиком на др. домене. --- Добавлено --- А то ты авторизуешь сервер, а не пользователя.
тогда пользователь их будет видеть и сможет отредактировать, а мне нужно чтобы параметры которые отправляются не могли быть отредактированы
я опишу задачу более простым примером первый домен вот с него запускаем скрипт который в свою очередь знает идентификатор пользователя который его запустил мне нужно чтобы этот скрипт отправил идентификатор на второй домен уже другому скрипту и далее я работал с этим скриптом и скрипт знает что это мой идентификатор так как он был получен с моего запроса и чтобы также могли скриптом пользоваться другие пользователи и скрипт понимает что он получает идентификатор с первого скрипта с первого домена --- Добавлено --- понимаете ли вы что мне нужно? --- Добавлено --- возможно код который я привет это пример для объяснения и чтобы решить эту задачу нужно понимать как это лучше всего сделать и каким методом поэтому я спрашиваю у вас совета и возможно примера
Если это просто идентификатор, а не полноценные аутентификационные данные, помести его в скрытое поле формы.
но получается тогда можно будет отсылать без проверки то есть вы откроете в браузере редактор кода и впишете свое значение разве это не так? --- Добавлено --- мне нужно чтобы запрос вида POST отправлялся получается както анонимно чтобы пользователь не смог отредактировать посылаемые данные и даже чтобы не видел что посылается на другой скрипт, так можно сделать?
Так. Но если у меня есть свой идентификатор, нафиг мне нужна твоя прокладка? --- Добавлено --- Тогда сделай на первом домене полноценную прокладку, не перенаправляя пользователя на др. домен.
потому что сервер номер 1 знает что вы это вы, а второй сервер отдельный мне нужно второму отослать идентификатор и обрабатывать через второй сервер то что мне нужно --- Добавлено --- мне нужна работа именно при взаимодействии двух серверов - один главный, а второй обработчик делает тяжелые обработки. у них у обоих разные домены. --- Добавлено --- по сути мне просто нужно передать параметры с первого сервера на второй и чтобы это было анонимно и пользователь не мог ничего отредактировать и увидеть в пересылаемых данных
Тогда у тебя было приблизительно правильно. Но, естественно, авторизовать пользователя ты так не сможешь.
как передать параметр с одного сервера на другой причем они на разных доменах и чтобы передаваемые параметры нельзя было посмотреть или отредактировать пользователям
Ок, давай приведем к человекопонятному виду? 1. Пользователь обращается к серверу1 (domen1.com) и скажем передает ему переменную var которая равна 1 2. Сервер1 передает эту переменную серверу2 (domen2.com) с помощью, скажем, GET-запроса. а дальше что предполагается?
отправление запроса должно быть анонимно смотрите пользователь обратился к серверу №1 где скрипт смог идентифицировать пользователя и говорит ему твой идентификаторв var = 17 вот скрипт с первого сервера должен передать этот var второму серверу но так чтобы нельзя было посмотреть какие данные передал сервер номер 1 серверу номер 2 я имею ввиду что если в html <form> посылаешь запросы то данные можно а) увидеть какие были отправлены б) пользователь может модифицировать отправляемые данные для отправки далее нужно чтобы сервер 2 на котором скрипт получит переменную var с первого сервера смог работать с этой переменной например скрипт что-то делает и переключается на другой скрипт внутри сервера номер 2 и дальше продолжает работать --- Добавлено ---
чем дальше, тем непонятней)) ок, смотри: 1. Я (юзер от первого лица))) запрашиваю https://domen1.com?var=17 domen1.com: PHP: <?php $var = $_GET['var']; $var = $var + 100500; $result = file_get_contents('https://domen2.com?var='.$var); echo $result; domen2.com: PHP: <?php $var = $_GET['var']; $var = $var + 100500100500100500; echo $result; Так? Или чего-то не хватает здесь? (я пытаюсь тебя понять))) --- Добавлено --- btw, уже до завтра доброй ночи.
все так только вот в domen1.com: получается так: скрипт получил данные с пост запроса и далее должен перейти на новую страницу другого скрипта и работать с данными которые были получены header('Location: http://example.com/obrabotka.php');// этот скрипт содержится на domen2.com exit; --- Добавлено --- вообще как я подумал что если в domen2.com в скриптах я открою сессию то смогу работать с этими данными но когда domen1.com: делает всю скриптовую часть и в конце делает переход header('Location: http://example.com/obrabotka.php'); то сессии нету возможно потому что не так сделан принцип, поэтому я и попросил у вас помочь мне как этого добиться если все равно не понятно напишите мне об этом где и что не понятно
Хейдж, давай поступим иначе: ты можешь просто описать что именно должно делать это приложение? Без "пост-запросов" и "сессий". Какой вообще смысл скакать с одного домена на другой? То есть что должно получиться в конечном итоге и почему именно таким образом?
Про сессию забудьте. Делаете на втором домене api, в которое посылаете необходимые данные с первого домена. Задача выполнена? А вообще сдается мне - выне можете абстрагироваться от выбранного решения и просто описать словами, что делает пользователь вообще, зачем два домена. Сделайте это и возможно вам подскажут другой способ решения
@Хейдж, сессия - это как раз и есть те данные которые пользователь не может модифицировать. Если мало сессии, то есть база данных. На кой ляд два домена покамест не понятно. Но в любом случае реализация дикая. Все можно сделать на одном домене включая api для обращения хоть из космоса, а не то что с другого домена.
@Хейдж, сессии как таковые тут действительно не помогут, потому что. В развитие #8: пользователь обращается к domain1 за авторизацией... domain1 обращается к domain2 domain2 сохраняет у себя в базе id пользователя и свежесгенерированный UUID, например, который возвращает domain1. domain1 передаёт (возращает) пользователю UUID пользователь обращается к domain2, передавая UUID. domain 2 сверяется с базой и выполняет, или не выполняет аутентификацию с авторизацией... тут уже актуальна "сессия", поскольку обращение к domain2 выполняет пользователь... *** Так-то речь наверняка идёт о протоколе OAuth и прочих access-токенах...
Задача следующая: два сервера между собой обмениваются данными, один другому посылает, (звучит прям как анекдот) мне нужно чтобы сервер А: который знает идентификатор пользователя передал серверу Б этот идентификатор и далее внутри сервера Б можно было работать обрабатывая данные исходя из идентификатора который он получил передача идентификатора (назовем лучше переменными) должна быть анонимна тоесть пользователь чтобы не мог увидеть что передается и отредактировать (речь об html form submit имею ввиду что такое смысла нет предлагать)
@Хейдж, ты безнадёжен. Тебя триста раз попросили описать, что ты хочешь сделать, но ты описываешь своё виденье решения проблемы, вместо того чтобы написать для чего тебе это нужно и озвучить изначальную проблему.
ок, вот этот мой пример (это выше по треду): https://php.ru/forum/threads/rabotaem-s-dvumja-domenami-otpravka-zaprosa-i-sessii.83293/#post-619455 в принципе данный функционал реализует т.е. если мы предположим что $var - это идентификатор, то это оно и есть. чего там еще не хватает до полного счастья?)) --- Добавлено --- ...то есть просто скажи чего не хватает - прикрутим, не вопрос )))