まず、tableをつくります。
create table cookie.analytics( host varchar(255), host_name varchar(255), port varchar(255), request varchar(255), code varchar(255), browser varchar(255), version varchar(255), platform varchar(255), useragent varchar(255), referer varchar(255), domain varchar(255), screen_w varchar(255), screen_h varchar(255), ip varchar(255), access datetime );
次に、ajaxで、アクセスがあったらデータをpostします。
<style> .box{ width:200px; height: 200px; background-color:#ddd; } </style> <body> <div class="box"></div> <button id="ajax-button">送信</button> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script> </body> <script> $(function(){ $(document).ready(function(){ var postData = {"HOST": location.host, "HOST_NAME":location.hostname, "PORT": location.port, "REQUEST":location.pathname, "CODE": navigator.appCodeName, "BROWSER":navigator.appName, "VERSION": navigator.appVersion, "PLATFORM":navigator.platform, "USERAGENT": navigator.userAgent, "REFERER": document.referrer, "DOMAIN": document.domain, "SCREENW":screen.width, "SCREENH": screen.height, "IP":"<?php echo $_SERVER['REMOTE_ADDR']; ?>"}; $.post( "test1.php", postData, ); }); }); </script>
ajaxで送られてきたデータをdbに格納します。
$date = date("Y-m-d H:i:s"); $host = $_POST['HOST']; $host_name = $_POST['HOST_NAME']; $port = $_POST['PORT']; $request = $_POST['REQUEST']; $code = $_POST['CODE']; $browser = $_POST['BROWSER']; $version = $_POST['VERSION']; $platform = $_POST['PLATFORM']; $useragent = $_POST['USERAGENT']; $referer = $_POST['REFERER']; $domain = $_POST['DOMAIN']; $screen_w = $_POST['SCREENW']; $screen_h = $_POST['SCREENH']; $ip = $_POST['IP']; $dsn = "mysql:dbname=cookie;host=localhost"; $user = "hoge"; $password = "hogehoge"; try { $dbh = new PDO($dsn, $user, $password); } catch (PDOException $e){ print('connection failed:'.$e->getMessage()); } $stmt = $dbh -> prepare("INSERT INTO analytics (host, host_name, port, request, code, browser, version, platform, useragent, referer, domain, screen_w, screen_h, ip, access) VALUES(:host, :host_name, :port, :request, :code, :browser, :version, :platform, :useragent, :referer, :domain, :screen_w, :screen_h, :ip, :access)"); $stmt->bindParam(':host', $host, PDO::PARAM_STR); $stmt->bindParam(':host_name', $host_name, PDO::PARAM_STR); $stmt->bindParam(':port', $port, PDO::PARAM_STR); $stmt->bindParam(':request', $request, PDO::PARAM_STR); $stmt->bindParam(':code', $code, PDO::PARAM_STR); $stmt->bindParam(':browser', $browser, PDO::PARAM_STR); $stmt->bindParam(':version', $version, PDO::PARAM_STR); $stmt->bindParam(':platform', $platform, PDO::PARAM_STR); $stmt->bindParam(':useragent', $useragent, PDO::PARAM_STR); $stmt->bindParam(':referer', $referer, PDO::PARAM_STR); $stmt->bindParam(':domain', $domain, PDO::PARAM_STR); $stmt->bindParam(':screen_w', $screen_w, PDO::PARAM_STR); $stmt->bindParam(':screen_h', $screen_h, PDO::PARAM_STR); $stmt->bindParam(':ip', $ip, PDO::PARAM_STR); $stmt->bindParam(':access', $date, PDO::PARAM_STR); $stmt->execute();
ユーザーのアクセス開始のデータがdbに格納されました。
1.cookieの使い方が良くわからない。
2.サイトにscriptタグを埋め込んで、jsにidの配列を送るとした場合、js側はajaxの処理ができるのか?
3.ユーザーが訪問ページを離れた時に、ajax・jsでは、どのように書いたらいいのか?
なんだかんだ難しいな。。