Можно ли переключить сессии PHP в сессию?

WHERE работает только в одном ряду. Таким образом, условие никогда не выполняется.

Я думаю, вы хотите:

SELECT post_id
FROM wp_postmeta
WHERE meta_key IN ('artikul', '_thumbnail_id')
GROUP BY post_id
HAVING COUNT(*) = 2;

Это возвращает сообщения, которые имеют два ключа. Это предполагает, что у вас нет повторяющихся значений ключей в сообщении. Если так, то используйте:

HAVING COUNT(DISTINCT meta_key) = 2
10
задан 4 March 2009 в 08:52
поделиться

5 ответов

Примечание: ответ ниже не корректен, не используйте или голосуйте. Я оставил его здесь как место для обсуждения

Вы решение должно работать (не, что я когда-либо пробовал что-то как этот), за исключением того, что необходимо вручную закрыть предыдущий сеанс перед любым вызовом к session_name() поскольку иначе это тихо перестанет работать.

Можно попробовать что-то вроде этого:

session_write_close();
$oldsession = session_name("MY_OTHER_APP_SESSION");
session_start();

$varIneed = $_SESSION['var-I-need'];
session_write_close();
session_name($oldsession);
session_start;

Нет никакой потребности на самом деле смешать со Значением идентификатора сессии, или через идентификационные стандартные программы управления сессией PHP или посредством ручного искажения cookie - PHP будет заботиться обо всем, что самом и Вы не должны смешивать с этим.

3
ответ дан 4 December 2019 в 01:03
поделиться

session_regenerate _id ()

Руководство объясняет это вполне прилично, но здесь является некоторым примером из руководства

session_start();

$old_sessionid = session_id();

session_regenerate_id();

$new_sessionid = session_id();

echo "Old Session: $old_sessionid<br />";
echo "New Session: $new_sessionid<br />";

print_r($_SESSION);
1
ответ дан 4 December 2019 в 01:03
поделиться

Необходимо использовать session_id, можно использовать его для установки / получают идентификатор сессии (или имя).

Таким образом вместо того, чтобы использовать session_name (в Вашем псевдо коде), используйте session_id.

0
ответ дан 4 December 2019 в 01:03
поделиться

Zend_Session предлагает Пространство имен для сессий.

Экземпляры Zend_Session_Namespace являются объектами средства доступа для namespaced частей $ _SESSION. Компонент Zend_Session переносит существующее расширение/сессию PHP с интерфейсом администрирования и управления, а также обеспечение API для Zend_Session_Namespace для сохранения пространств имен сессии. Zend_Session_Namespace обеспечивает, стандартизированный, объектно-ориентированный интерфейс для работы с пространствами имен сохранил стандартный механизм сессии внутреннего PHP. Поддержка существует и для анонимного и для аутентифицируемого (например, "вход в систему") пространства имен сессии.

0
ответ дан 4 December 2019 в 01:03
поделиться

Это возможно. Но я думаю, что необходимо сделать сессию, обрабатывающую себя:

session_name('foo');
// start first session
session_start();

// …

// close first session
session_write_close();

session_name('bar');
// obtain session id for the second session
if (ini_get('session.use_cookies') && isset($_COOKIE[session_name()])) {
    session_id($_COOKIE[session_naem()]);
} else if (ini_get('session.use_trans_sid') && !ini_get('session.use_only_cookies') && isset($_REQUEST[session_name()])) {
    session_id($_REQUEST[session_naem()]);
}
// start second session
session_start();

// …

Но обратите внимание, что Вы могли бы сделать некоторые из других вещей обработки сессии как cookie, устанавливающий также. Я не знаю, делает ли PHP это в этом случае также.

0
ответ дан 4 December 2019 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: