我有一个functions.php
文件,我有一个check_login
函数,这个函数应该检查是否已经在每个页面加载时设置了会话变量,那么它应该什么也不做,但是此时它似乎没有执行该功能。
我做错了吗?
我添加了代码以允许我查看if语句的哪一侧执行,但它不会回显任何值。
索引页:
require_once 'functions/functions.php';
check_login;
的functions.php:
<?
function check_login(){
session_start();
if (isset($_SESSION['user_id']) and ($_SESSION['user_id'] != '')and ($_SESSION['user_id'] != NULL)){
echo '<p>Logged in</p>';
}else{
echo '<p>Not Logged in</p>';
header("Location: login.php");
}
}
?>
答案 0 :(得分:4)
用圆括号调用你的函数
require_once 'functions/functions.php';
check_login();
答案 1 :(得分:3)
要调用函数,您应该使用括号()
。当您的项目正在开发中时,请添加此行以跟踪错误。 error_reporting(E_ALL);
这应该是
check_login();
而不是
check_login;
因此,
require_once 'functions/functions.php';
check_login();
的functions.php:
<?
function check_login(){
session_start();
if (isset($_SESSION['user_id']) and ($_SESSION['user_id'] != '')and ($_SESSION['user_id'] != NULL)){
echo '<p>Logged in</p>';
}else{
echo '<p>Not Logged in</p>';
header("Location: login.php");
}
}
?>
有关详情,请参阅this
答案 2 :(得分:3)
从
改变check_login;
要
check_login();
答案 3 :(得分:2)
check_login
应为check_login()
。
还
if (isset($_SESSION['user_id']) and ($_SESSION['user_id'] != '')and ($_SESSION['user_id'] != NULL))
可以浓缩成这个
if (!empty($_SESSION['user_id']))
答案 4 :(得分:1)
如果调用函数,则应在函数名后使用()
。试试这个:
check_login();
而不是:
check_login;
答案 5 :(得分:1)
在调用函数之前使用()
: -
require_once 'functions/functions.php';
check_login();
或session_start
必须位于第一行: -
<?php
session_start();
function check_login(){
if (isset($_SESSION['user_id']) and ($_SESSION['user_id'] != '') and ($_SESSION['user_id'] != NULL)) {
echo '<p>Logged in</p>';
} else {
echo '<p>Not Logged in</p>';
header("Location: login.php");
}
}
?>