【发布时间】:2017-08-27 20:04:17
【问题描述】:
表单提交后我设置的会话丢失了。
我已经建立了会话类来设置新的会话,取消设置等等。在wordpress模板的function.php中。
函数.php
if (!session_id()) {
session_start();
}
include get_template_directory() . "/custom/session.php";
Session.php
class session {
function __construct() {
}
function set_flashdata($name, $value) {
$_SESSION[$name] = $value;
}
function flashdata($name) {
if (isset($_SESSION[$name])) {
$str = $_SESSION[$name];
return $str;
} else {
return FALSE;
}
}
function userdata($name) {
if (isset($_SESSION[$name])) {
return $_SESSION[$name];
} else {
return FALSE;
}
}
function set_userdata($name, $value) {
$_SESSION[$name] = $value;
}
function unset_userdata($name) {
if (isset($_SESSION[$name])) {
unset($_SESSION[$name]);
}
}
}
我尝试将会话设置为:
<?php
$sess = new session();
$sess->set_userdata('sess_name',"some value");
?>
<form action="get_permalink(212);">
//input buttons
</form>
提交表单后,它会转到永久链接(212)。然后我试了一下。
<?php
$sess = new session();
$value = $sess->userdata('sess_name');
var_dump($value); //returns false. That means session is lost after form submit. Why?
?>
【问题讨论】:
-
你用的是什么主机?一些主机在使用 PHP 会话和 WordPress 时遇到问题。也许检查这个插件:wordpress.org/plugins/wp-native-php-sessions
标签: php wordpress forms session