检查PHP的结果包括



我已经设置并运行了我的登录和会话有效性函数。我想做的是在每个页面的开头包含此文件,并根据该文件的输出,它将显示所需的信息,或者,如果用户未登录,则只需显示登录表单(这是一个包含)。

我将如何做到这一点?我不介意使用 IF 语句来测试包含的输出,但我不知道如何获取此输入。

目前,登录/会话函数根据发生的情况返回 true 或 false。

谢谢。

编辑:这是我的登录/会话检查中使用的一些代码,但我希望我的主文件基本上知道包含的文件(下面的代码)是否返回了真或假。

    if ($req_method == "POST"){
        $uName = mysql_real_escape_string($_POST['uName']);
        $pWD = mysql_real_escape_string($_POST['pWD']);
        if (login($uName, $pWD, $db) == true){
                 echo "true"; //Login Sucessful
                 return true;
            } else {
         echo "false";
         return false;
        }
    } else {
     if (session_check($db) == true){
         return true;
     } else {
        return false;
     }
    }

你可以的意思

if (include 'session_check.php') { echo "yeah it included ok"; }

登录检查.php'

if (some condition) $session_check=true;
else $session_check=false;

某处页面.php

include 'session_check.php';
if ($session_check) { echo "yes it's true"; }

或者您可能期望登录检查.php运行并回显"true",在这种情况下您做错了。

编辑:

是的,是后者。您不能从包含的文件中返回某些内容,这是过程而不是函数。请改为执行此操作并查看上文

if (session_check($db) == true){
     $session_check=true;
 } else {
    $session_check=false;
 }

实际上。。

$session_check=session_check($db); 

就够了

根据要检查的位置,可能需要声明global $session_check;或者可以改为设置常量。

你可以有一个包含的文件来设置一个变量:

<?php
$allOk = true;

并在主文件中检查它:

<?php
include "included.php";
if ($allOk) {
  echo "go on";
} else {
  echo "There's an issue";
}

你的问题似乎对php如何包含工作有一些困惑,所以我要稍微解释一下,我认为这将解决你的问题。

当您在 PHP 中包含某些内容时,就像在没有包含的情况下在该页面上运行代码一样,就像您复制和粘贴一样。所以你可以这样做:

包括我.php

$hello = 'world';

主.php

include 'includeme.php';
print $hello;

这将打印"世界"。

与其他语言不同,包含文件在 PHP 中的放置位置也没有限制。所以你也可以这样做:

if ($whatever = true) {
    include 'includeme.php';
}

现在这两个都被认为是"坏代码"。第一个是因为您使用全局作用域来传递信息,第二个是因为您有意在包含中运行全局范围的内容。

对于"好"代码,所有包含的文件都应该是类,你应该创建该类的新实例并做一些事情,但这是一个不同的讨论。

最新更新