Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 函数仍然在没有活动会话的情况下从链接执行_Php_Session_Get - Fatal编程技术网

Php 函数仍然在没有活动会话的情况下从链接执行

Php 函数仍然在没有活动会话的情况下从链接执行,php,session,get,Php,Session,Get,我得到了一些在$\u GET中使用值执行的代码,以及一些检查活动会话的代码。然而,当我在没有活动会话的情况下直接访问链接时,它仍然执行该函数,然后返回登录页面 我的代码: 我的登录头: <?php session_start(); if (!isset($_SESSION['Username'])|| $_SESSION["Actief"] == 0|| $_SESSION["Actief"] == 2) { return header("Location: main_l

我得到了一些在
$\u GET
中使用值执行的代码,以及一些检查活动会话的代码。然而,当我在没有活动会话的情况下直接访问链接时,它仍然执行该函数,然后返回登录页面

我的代码:

我的登录头:

<?php
session_start();
if (!isset($_SESSION['Username'])|| $_SESSION["Actief"] == 0|| 
    $_SESSION["Actief"] == 2) {
    return header("Location: main_login.php");
    exit();
}
AdminOnlyHeader
只是检查管理员状态。这似乎也可以通过输入链接来绕过

因此,如果你仍然不明白我的意思,下面是我所做工作的简短总结:

  • 我制作了一个包含执行它所需的get数据的链接
  • 我注销并返回登录页面
  • 我输入我以前建立的链接
  • 加载一段时间后,我仍然在登录页面上,但当我查看数据库时,我看到记录已更新,因此执行了函数(
    ExecuteQuery

  • 从中删除
    return

    return header("Location: main_login.php");
    
    我们需要两个参考来理解这一点:

    • 第部分:
    如果从全局范围调用,则当前脚本文件的执行将结束。如果包含或需要当前脚本文件,则控制权会传递回调用文件

    • 部分:
    如果重定向,但不执行
    die()
    /
    exit()
    ,则始终执行并显示代码



    基本上,由于您返回了,它将不会到达
    exit()
    部分,这意味着它将把执行返回到主脚本—在这种情况下不应该执行的函数。

    或多或少起作用,它不执行该函数(是的)但是它返回一个404 not found,而不是登录页面。您有
    main\u login.php
    文件吗?浏览器中的url是否正确@米格尔普。它以前起作用了吗?啊,我找到了引起它的原因。我在另一个目录里。一旦我弄清楚如何返回而不更改登录头文件,如果你的方法有效,我将进行更新。是的,现在一切都正常了。我确实删除了要求,并在那个特定的网站上对标题重新编码了一点,这样评委们就不会太高兴了,但是,嘿,它起作用了。谢谢你的帮助!
    return header("Location: main_login.php");