函数似乎不在php函数中运行

时间:2015-10-26 07:39:33

标签: php

我有一个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");
    }
}   
?>

6 个答案:

答案 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");
    }
}   
?>