在php函数中设置会话变量

时间:2014-01-18 07:46:14

标签: php session

我在一个函数中设置了一个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;
        }
    }

编辑:我试图在另一台服务器上运行此页面,但它确实有效。有人能说出原因吗?再次!!

3 个答案:

答案 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

类似有用的线程:PHP.ini example to enable sessions?