Hej, jeg har lidt problemer med mit login script og logud.
+ at mit point system ikke virker helt som jeg gerne vil have det

.
når man logger ind bliver man ikke altid logget ind

.
Når man logger ud så er ens log ud time forkert
klokken er 09:23 - 21-07-2010 men der står 2021-07-10 07:22:58.
når man logger ud så får man rigtig rigtig mange point, men har ikke lavet sån et point system før så ved ikke helt hvad jeg gør forkert, man burde få 5 point i timen.
det med at den sætter af til offline efter nogen min, hvordan kan jeg sikre at den ikke os smider mig selv af?, hvis jeg nu satte den til fx. 5min.
her er min kode
- session_start();
- require 'include/connect.php';
- #Sætter den nyværene tid så man kan sætte alle til offline der ikke har været online indenfor 10 sec /TEST.
- $tid = time();
-
- $mysql = connect();
- $stmt = $mysql->prepare("UPDATE users SET online = '0' WHERE onlinetid <= $tid - 10") or die($mysql->error);
- $stmt->execute();
-
- #Er loggetind session ikke sat, sæt den til false
- if (!isset($_SESSION['loggetind']))
- {
- $_SESSION['loggetind'] = false;
- }
-
-
- if(isset($_SESSION['loggetind']) && $_SESSION['loggetind'] == true) {
- if(time()-$_SESSION["timestamp"] >= 1200) { // 1200 kicker en efter 20 min.
-
- $mysql = connect();
- $stmt = $mysql->prepare("UPDATE users SET online = '0' WHERE username = '$_SESSION[username]'") or die($mysql->error);
- $stmt->execute();
-
- session_destroy(); // sletter alle dine sessioner
-
- }else{
-
- $_SESSION["timestamp"] = time();
-
- $mysql = connect();
- $stmt = $mysql->prepare("UPDATE users SET onlinetid='$_SESSION[timestamp]' WHERE username='$_SESSION[username]'") or die($mysql->error);
- $stmt->execute();
-
- }
- }
-
-
- #Hvis perosnen logger af
- if(isset($_GET['logaf']) && $_GET['logaf'] == "ja")
- {
- session_destroy();
- $logout_time = time();
- $additional_online_seconds = $logout_time - $login_time;
- $additional_points = ($additional_online_seconds / 60) / 15;
-
- $sidst_set = date("d-m-y - h:i:s");
- //Retter online til 0
- $mysql = connect();
- $stmt = $mysql->prepare("UPDATE users SET online = '0', onlinetid = onlinetid+$additional_online_seconds, point = point+$additional_points, sidst_set = '$sidst_set' WHERE username = '$_SESSION[username]'") or die($mysql->error);
- $stmt->execute();
-
- header("location:index.php");
- }
-
-
- #logger en person ind
- if(isset($_POST['login'])) {
-
- $username = $_POST['username'];
- $password = sha1($_POST['password']);
-
- $mysql = connect();
- $sql = "SELECT id,username,password,fornavn,efternavn,level FROM users WHERE username = ? AND password = ? LIMIT 1";
- $stmt = $mysql->prepare($sql);
- $stmt->bind_param("ss", $username, $password);
- $stmt->execute();
- $stmt->store_result();
-
- if( $stmt->num_rows == 0)
- {
- #echo "Brugernavn eller er kodeord forkert";
- }
- else
- {
- $stmt->bind_result($id,$username,$password,$fornavn,$efternavn,$level);
- $stmt->fetch();
-
- $stmt = $mysql->prepare("UPDATE users SET online = '1'") or die($mysql->error);
- $stmt->execute();
-
- $_SESSION['username'] = $username;
- $_SESSION['fornavn'] = $fornavn;
- $_SESSION['brugerid'] = $id;
- $_SESSION['efternavn'] = $efternavn;
- $_SESSION['level'] = $level;
- $_SESSION['loggetind'] = true;
- $login_time = time();
- $_SESSION['timestamp'] = time();
- $sti = $_SERVER['SCRIPT_NAME']; // Finder URL'en til header location
- header("location: ".$sti ."");
-
- }#Lukker else
- }#Lukker isset login