PHP http включает не сохраняющиеся сессии - PullRequest
0 голосов
/ 05 мая 2010

В основном я ненавижу спутниковый сайт, который включает form.php с совершенно другого сервера.

<?php
    include("http://blah.com/form.php");
?>

Файл form.php в других сеансах загружает классы и все другие вещи и динамически генерирует форму на основе тонны данных MySQL. Несущественны. Моя проблема в том, что когда форма вызывается, я также начинаю сеанс. Все же удаленный сервер фактически никогда не посещается клиентом. Сеанс, что остаться. Каждый раз, когда страница обновляется, старый сеанс сбрасывается.

Причина в том, что мне нужно отправить обратно ошибки проверки в исходную форму и показать их. (Это массив таких вещей, как «Имя - это обязательное поле»)

Код на главном сервере выглядит примерно так ...

<?php
    include("config.php"); // This is loading the config file with the session_start()
    Process($id) {
        // Do a bunch of form processing and store errors in $this->errors
        $_SESSION['errors'] = $this->errors;
    }

    ShowForm($id) {
        // This loads the form and everything.
        echo '<div id="errors">'.print_r($_SESSION['errors']).'</div>'; // This is what is returning nothing on the other page.
    }
?>

Так что в основном этот скрипт вызывается с удаленного сайта, но сеансы не сохраняются и сбрасываются при обновлении ... Я предполагаю, что это так, потому что фактически главный сервер никогда не загружается в браузере пользователей.

Кто-нибудь знает способ обойти это / способ исправить это? Или, возможно, другое решение? Все работает.

Спасибо

1 Ответ

0 голосов
/ 05 мая 2010

это действительно ужасный дизайн.

include("http://blah.com/form.php?var=1&error=First%20name%20is%20a%20required%20field");

вам нужно подумать о XMLRPC или каком-то другом цивилизованном способе обмена данными

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...