我老板买了一些网络软件(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;
}
仍然没有打印用户名,只是一个' ',所以我仍然需要解决这个问题。丑陋的按钮消失了,它给用户一个很好的,明显的通知,他们已经注销了。我想使按钮重定向,所以现在工作的一部分出来。