不是如何在Php中创建会话超时,而是在哪里



我老板买了一些网络软件(PC Repair Tracker…这太棒了),让我负责在我们的域名上安装它,配置数据库,定价,外观(html/css)。售票系统等。它基本上是一个模板,您可以购买并完全定制以满足您的需求。

配置它不是太糟糕,即使考虑到我仍然是一个PHP MySQL等的新手。我的老板要求我"在一段时间后注销它",因为它包含敏感信息,并且员工会跟踪维修,以便知道在我们商店的设备上需要信息时该找谁。他的意思是我需要写一个超时函数。

问题不只是创建超时函数,但知道把它放在哪里?网站文件夹中大概有将近100个文件,每个文件都是。php文件(除了css和图片)。我是否使用直观的方法并从login.php开始?

我怎么知道如何称呼我的变量呢?

界面以登录表单从登陆页面开始。我不希望从login。php开始,因为它们至少需要登录。

我为Firefox安装了FirePHP,我注意到一个函数正在被调用:它说:

    GET ajaxhelpers.php?func=refreshnotifications

大约每分钟就会出现一次。当我找到。php文件时,它很短,上面写着:

    if (array_key_exists('func',$_REQUEST)) {
$func = $_REQUEST['func'];
} else {
$func = "";
}
function nothing() {
}
function refreshnotifications() {
require("deps.php");
require_once("common.php");
echo pcrtnotify();
}
switch($func) {
    default:
    nothing();
    break;
    case "refreshnotifications":
    refreshnotifications();
    break;
}
?>

我还发现了一个"validate.php",它将用户发送到登录页面。我可以在这里写一个函数吗?

<?php
        include("deps.php");
$validated = false;
//Use $_COOKIE to get the cookie data . same usage as $_POST
if(isset($_COOKIE["username"])&&isset($_COOKIE["password"])) {
$user = $_COOKIE["username"];
$pass = $_COOKIE["password"];
//Begin validation code
if(isset($passwords[$user])) if($passwords[$user]== $pass) $validated = true;
//End validation code
}
if($validated) {
//Ok; don.t need to do anything
} else {
//Make user go to login page
die("<a href=../store/login.php class="linkbuttonmedium linkbuttongray radiusall">please login</a>");

exit;
}
?>

这是一个好的开始吗?对不起,我的问题太长了。我不是在问作业建议什么的。我只是试着以速成班的方式学习php,因为他想要昨天的结果。Lol .

似乎我可以在这里加一个条件,说,

    if($validated && idle_time > time_allowed) {
       go to logout.php
    }

但话说回来,我是个php新手。

搜索session_start(),并在该行之前添加以下

session_set_cookie_params(3600,"/");

以秒为单位。3600代表一小时。

好的。我做了更多的研究,发现了validate2.php和logout.php文件。我已经知道logout.php的存在,我只是仔细看了一下代码。在内部,它包含变量$ cookieddomain的条件逻辑,并且还包含用户的cookie过期时的值。如果我说错了,请原谅我。我还在学习php。我只是想把基本的逻辑应用到这里面。

validate.php文件最终做的是检查布尔值$validated是否为真。如果这是真的,它会继续并给你刷新的能力。如果未验证,则屏幕上会显示一个小按钮,上面写着"请登录"。1)这是令人难以置信的草率和难以找到。2)时间设定为10小时。

因此,出于测试目的,我将validate.php和logout.php中的数字设置为20,如下所示(我在代码中使用新值- 120,因为20秒显然太短了,所以我更改了它):

login。

if(isset($cookiedomain)) {
setcookie("username", $user, time()+120, "/","$cookiedomain");
setcookie("password", $pass, time()+120, "/","$cookiedomain"); 
} else {
setcookie("username", $user, time()+120, "/");
setcookie("password", $pass, time()+120, "/");
}

logout.php

        if(isset($cookiedomain)) {
setcookie("username", $user, time()-120, "/","$cookiedomain");
setcookie("password", $pass, time()-120, "/","$cookiedomain");
} else {
setcookie("username", $user, time()-120, "/");
setcookie("password", $pass, time()-120, "/");
}

validate2.php

        if($validated) {
  //Ok. don't need to do anything
} else {
//Make user go to login page
echo '<script type ="text/javascript">alert("Sorry, ' . $user . ', but you have been logged out due to inactivity.");</script>';
 exit;
}

仍然没有打印用户名,只是一个' ',所以我仍然需要解决这个问题。丑陋的按钮消失了,它给用户一个很好的,明显的通知,他们已经注销了。我想使按钮重定向,所以现在工作的一部分出来。

相关内容

  • 没有找到相关文章

最新更新