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