diff options
| author | cassio <cassiopc@gmail.com> | 2018-10-29 16:31:34 +0000 |
|---|---|---|
| committer | cassio <cassiopc@gmail.com> | 2018-10-29 16:31:34 +0000 |
| commit | bb97007d9a72641a1c8f2bfa2d837b9de37d9d55 (patch) | |
| tree | a0883308eb5329bf18834657882964bd47325c7e | |
| parent | 61ce4a0eb58d0e1632b2a1dc87195ce1faada78e (diff) | |
| download | boca-bb97007d9a72641a1c8f2bfa2d837b9de37d9d55.tar.gz boca-bb97007d9a72641a1c8f2bfa2d837b9de37d9d55.zip | |
better control of logins
| -rw-r--r-- | src/flog.php | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/flog.php b/src/flog.php index 0134b1c..1e6e6cb 100644 --- a/src/flog.php +++ b/src/flog.php @@ -163,13 +163,13 @@ function DBLogInContest($name,$pass,$contest,$msg=true) { unset($_SESSION["usertable"]); return false; } - $ccode = explode(' ',trim($_SERVER['HTTP_USER_AGENT']),100); - $ccode = $ccode[count($ccode)-1]; + $ccode = trim($_SERVER['HTTP_USER_AGENT']); $ds = DIRECTORY_SEPARATOR; if($ds=="") $ds = "/"; $dircode=$_SESSION["locr"] . $ds . "private" . $ds . "agentcode"; @mkdir($dircode); $dircode .= $ds . $contest . '-' . $name; + @file_put_contents($dircode . '.log', $ccode . "\n", FILE_APPEND | LOCK_EX); if(@file_exists($dircode)) { if(($prevuser = @file_get_contents($dircode)) === false) { LOGLevel("User $name tried to log in contest $contest but computer file cannot be read.",2); @@ -177,14 +177,15 @@ function DBLogInContest($name,$pass,$contest,$msg=true) { unset($_SESSION["usertable"]); return false; } - if($prevuser != $ccode) { - LOGLevel("User $name tried to log in contest $contest but computer is invalid.",2); + if($prevuser != $ccode && $a["usertype"] == "team") { + LOGLevel("User $name tried to log in contest $contest but computer is invalid ($ccode).",2); if($msg) MSGError("Invalid computer (3)."); unset($_SESSION["usertable"]); return false; } } else { - @file_put_contents($dircode, $ccode); + if($a["usertype"] == "team") + @file_put_contents($dircode, $ccode); } $gip=getIP(); |