簡體   English   中英

在PHP函數中設置會話變量

[英]Setting sessions variables in php functions

我在一個函數內設置了SESSION,並且嘗試從另一個函數訪問它。 我認為該會話僅針對該功能設置,我可以對此做任何事情嗎?

謝謝!

編碼:

    $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;
        }
    }

編輯:我試圖在另一台服務器上運行此頁,它工作。 誰能說明原因? 再次感謝!

我建議您閱讀會話變量的基礎知識: http : //www.w3schools.com/php/php_sessions.asp

會話變量對於該頁面訪問(即會話)而言是完全全局的,任何調用了session_start()的頁面/函數都可以訪問它。

我建議您將這段代碼<?php session_start(); ?> <?php session_start(); ?>在每個要使用$_SESSION變量的頁面上。

我一直在為我工作,因此它也應該與您一起工作。 並注意:您應該使用session_start(); 每當您想使用$_SESSION變量時都可以使用該函數。 祝好運!

看到您的最新編輯后,我認為您服務器上的php配置不正確,無法支持會話,

要進行配置,請打開php.ini文件並定義以下參數,

定義保存會話的路徑

session.save_path = "C:\php\sessiondata\"

定義處理程序

session.save_handler = files

是否使用cookie。

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/zh/session.configuration.php

參考: http : //support.qualityunit.com/021373-How-To-Enable-Session-Support-for-PHP

很有幫助的螺紋: 啟用會話的PHP.ini示例?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM