我在一个函数中设置了一个SESSION,我试图从另一个函数中获取它。 我认为会话仅针对该功能设置,我可以对此做些什么吗?
THX!
代码:
$admin_password = sha1(md5('1234')); // סיסמת מנהל
function login($password,$admin_password) {
$password = sha1(md5($password));
if ($password == $admin_password) {
$_SESSION['admin_ver'] = $admin_password;
return true;
} else {
return false;
}
}
function log1($admin_password) {
if (isset($_SESSION['admin_ver'])) {
if ($_SESSION['admin_ver'] == $admin_password) {
return true;
} else {
return false;
}
} else {
return false;
}
}
编辑:我试图在另一台服务器上运行此页面,但它确实有效。有人能说出原因吗?再次!!
答案 0 :(得分:1)
我建议您阅读会话变量的基础知识:http://www.w3schools.com/php/php_sessions.asp
会话变量对于该页面访问(也称为会话)是完全全局的,任何页面/函数都可以访问它,它调用了session_start();
答案 1 :(得分:0)
我建议您将此代码<?php session_start(); ?>
放在要使用$_SESSION
变量的每个页面上。
我一直都在为我工作所以它也应该与你合作。请注意:只要您想使用session_start();
变量,就应该使用$_SESSION
函数。祝你好运!
答案 2 :(得分:0)
在看到您的最新编辑后,我认为您的服务器上的php未正确配置以支持会话,
要配置,请打开php.ini文件并定义以下参数
定义保存会话的路径
session.save_path = "C:\php\sessiondata\"
定义处理程序
session.save_handler = files
是否使用cookies。
session.use_cookies = 1
会话名称(用作cookie名称)。
session.name = PHPSESSID
以cookie为单位定义生命周期,如果为0则定义生命周期,直到浏览器重新启动。
session.cookie_lifetime = 0
Cookie有效的路径。
session.cookie_path = /
Cookie有效的域名。
session.cookie_domain =
处理程序用于序列化数据。 php是PHP的标准序列化器。
session.serialize_handler = php
有关会话配置的更多信息:http://www.php.net/manual/en/session.configuration.php
参考:http://support.qualityunit.com/021373-How-To-Enable-Session-Support-for-PHP