2017-12-05 7 views
0

私は、PHPでユーザ追跡システムを作成し、その情報をMySQLデータベースに格納することが任されています。 私が持っている制約は、私が作成したコードは1つのPHPファイルでなければならず、 "require( 'filename.php');"という形式で使わなければならないということです。トラッキングされるすべてのページに表示されます。 私が抱えている問題はセッションとユーザーを一意にすることです。目的は、ユーザーがいずれかのページに移動したときに、ユーザーがデータベース間でテーブルをリンクするために使用する番号を与えることです。 トラッキングページが呼び出されたとき(ユーザーが次のページに移動したとき)にセッションが引き継がれるようにする方法と、ページが更新されたときではなくユーザーごとに増やすユーザー番号を正しく取得する方法のガイダンスを探しています。任意の指導をいただければ幸いですPHPとmySQLのユニークなユーザ追跡

<?php 
$mins = 30; 
ini_set("session.gc_maxlifetime", $mins * 60); 
session_start(); 

//Change for database 
$serv = "xxx"; 
$username = "xxx"; 
$pass = "xxx"; 
$db = "xxx"; 

$conn = mysqli_connect($serv,$username,$pass,$db); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

//getuserID 
//Check what the user count is at and set users id number 

$checkSQL = "SELECT MAX(UserID) from User"; 
$result = mysqli_query($conn,$checkSQL); 
while($row = mysqli_fetch_array($result, MYSQLI_NUM)) 
{ 
$highest = $row[0]; 
//echo $highest; 
} 
$UserID = $highest + 1; 
$_SESSION["UserID"] = $UserID; 
echo "The session user id: "; 
echo $_SESSION["UserID"]; 

//to make a list of all the pages a user has gone to 
//Page tracker for user 
$pagetrack = array(); 
array_push($pagetrack, $page); 
$_SESSION["pageT"] = $pagetrack; 
$arrlength = count($_SESSION["pageT"]); 
for ($i = 0; $i<$arrlength; $i++){ 
echo $_SESSION["pageT"][$i]; 
} 

//There are other functions that don't require sessions 
?> 

:ここ

は私がこれまで持っているコードです。もし誰かが知っているだけでなく、このような試合のようなものである任意のオンラインチュートリアルを知っているだけでなく、高く評価されます。

乾杯。

+0

では、Google Analyticsを使用して考えられていることが、衝突の問題に取り組む必要がありますか?それはあなたのためにすべてのものを行います。 – kloddant

+0

@kloodantプロジェクトでは、Googleアナリティクスが提供するすべてのものが必要です。追跡される細部、ブラウザ、デバイス、ユーザーがどのページに行くかだけがあります。だから、単純な解決策だけが必要ですが、この部分は今すぐ私が困っています – sammcd75

+0

...あなたが家を作り出す必要があれば...あなたはそれを計画して、絶対に必要なものを書き留めて、プラグアンドチャージビットで。この質問は、それほど多くのことをカバーし、非常に多くの方法でそれを検討するように、少し広いです。私は最初の一歩が...あなたが持っているように正しく働いていないと思いますか? – IncredibleHat

答えて

0

私は答えを解決したと思います。この

<?php 
$mins = 30; 
ini_set("session.gc_maxlifetime", $mins * 60); 
if (session_status() == PHP_SESSION_NONE) { 
session_start(); 
} 

//Change for database 
$serv = "xxx"; 
$username = "xxx"; 
$pass = "xxx"; 
$db = "xxx"; 

$conn = mysqli_connect($serv,$username,$pass,$db); 
// Check connection 
if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
//getuserID 
//Check what the user count is at and set users id number 
if(!isset($_SESSION["UserID"])){ 
$checkSQL = "SELECT MAX(UserID) from User"; 
$result = mysqli_query($conn,$checkSQL); 
while($row = mysqli_fetch_array($result, MYSQLI_NUM)) 
{ 
$highest = $row[0]; 
//echo $highest; 
} 
$UserID = $highest + 1; 
$_SESSION["UserID"] = $UserID; 
echo "The session user id: "; 
echo $_SESSION["UserID"]; 
} 
else{ 
$UserID = $_SESSION["UserID"]; 
echo $UserID; 
} 

その少し厄介が、私はそれが動作信じるを使用することによって、私は次の@AlexHowanskyコメント

関連する問題