Hallo,
ich habe angefangen eine UCP für mein SAMP Projekt zu schreiben.
Ich habe eine Session-Klasse geschrieben, die stelle ich hier mal vor.
PHP
<?php
/*
* Copyright & Script by palwal
*/
class Sessions
{
public static function Check()
{
if(isset($_SESSION['player']))
{
return true;
} else {
return false;
}
}
public static function Update()
{
global $db, $_SERVER, $_SESSION, $pdo;
if(Sessions::Check())
{
//User bezogene Daten
$ip = $_SERVER['REMOTE_ADDR'];
$browser = $_SERVER['HTTP_USER_AGENT'];
$lasttime = time();
$page = $_SERVER['PHP_SELF'];
$hits = 1;
$player = $_SESSION['player'];
$sel = $pdo->prepare("SELECT * FROM `ucp_seesion` WHERE `ucp_session`.`player`= :player LIMIT 1");
$sel->bindParam(':player', $player);
$sel->execute();
$f = $sel->fetch(PDO::FETCH_OBJ);
$neuehits = $f->hits+$hits;
if($pdo->rowCount()>=1)
{
Sessions::UpdateSQL($ip, $browser, $lasttime, $page, $hits, $player);
}
}
}
static public function UpdateSQL($ip = false, $browser = false, $lasttime = false, $page = false, $hits = false, $player = false)
{
global $pdo;
if($ip!=false&&$browser!=false&&$lasttime!=false&&$page!=false&&$hits!=false&&$player!=false)
{
$into = $pdo->prepare("UPDATE `ucp_session` SET `ucp_session`.`ip`= :ip, `ucp_session`.`browser`= :browser, `ucp_session`.`lasttime`= :lasttime, `ucp_session`.`page`= :page, `ucp_session`.`hits`= :hits WHERE `ucp_session`.`player`= :player");
$into->bindParam(':ip', $ip);
$into->bindParam(':browser', $browser);
$into->bindParam(':lasttime', $lasttime);
$into->bindParam(':page', $page);
$into->bindParam(':hits', $hits);
$into->bindParam(':player', $player);
$into->execute();
}
return true;
}
public static function Create($player)
{
global $pdo;
//User bezogene Daten
$ip = $_SERVER['REMOTE_ADDR'];
$browser = $_SERVER['HTTP_USER_AGENT'];
$lasttime = time();
$page = $_SERVER['PHP_SELF'];
$hits = 1;
$_SESSION['player'] = $player;
$into = $pdo->prepare("INSERT INTO `ucp_session` (`ucp_session`.`ip`, `ucp_session`.`browser`, `ucp_session`.`lasttime`, `ucp_session`.`page`, `ucp_session`.`hits`, `ucp_session`.`time`, `ucp_session`.`player`) VALUES (:ip, :browser, :lasttime, :page, :hits, :lasttime, :player)");
$into->bindParam(':ip', $ip);
$into->bindParam(':browser', $browser);
$into->bindParam(':lasttime', $lasttime);
$into->bindParam(':page', $page);
$into->bindParam(':hits', $hits);
$into->bindParam(':player', $player);
$into->execute();
}
public static function Destroy()
{
global $pdo;
if(Sessions::Check())
{
$player = $_SESSION['player'];
$delete = $pdo->prepare("DELETE FROM `ucp_session` WHERE `ucp_session`.`player`:player");
$delete->bindParam(':player', $player);
if($delete->execute()) {
return true;
} else {
return false;
}
session_destroy();
unset($_SESSION);
}
else {
return false;
}
}
function __autoload()
{
return require_once 'db.php';
}
}
?>
Alles anzeigen
Das System trägt die Aktivität eines Spielers in die Datenbank ein. Später sollen die Daten addiert und somit analsysisch ausgewertet werden.
Ich hoffe es ist einigermaßen verständlich. Natürlich bin ich auch gern für Verbesserungsvorschläge offen
Liebe Grüße
palwal