1

以下のコードは、ユーザーがページを開いて更新したときに挿入されます。別のページに移動するか、X をクリックしてページ内のリンクをクリックしてユーザーがページを離れたときに、訪問テーブル セット leaveTime=$time を更新します。または ALT+F4 を押します ...... ここに私の試みがあります:

session_start();
if (!isset($_SESSION["visits"]))
    $_SESSION["visits"] = 0;
    $_SESSION["visits"] = $_SESSION["visits"] + 1;
if ($_SESSION["visits"] > 1){
    mysql_query("INSERT INTO najd_visit( visit_userId, visit_staticId, visit_page, visit_enterTime,visit_refreshTime)VALUES ('$userId', '$Sid', '$title','$Stime' ,'$date') ");
    echo "You hit the refresh button!";}else{
    mysql_query("INSERT INTO najd_visit( visit_userId, visit_staticId, visit_page, visit_enterTime)VALUES ('$userId', '$Sid', '$title', '$date') ");
    echo "This is my site".$_SESSION["visits"];
}
4

4 に答える 4

2

ページを離れるユーザーを登録することはできません。ユーザーのアクティビティに基づいて見積もりを行うこともできますが、それだけです。

ただし、できることは、ユーザーがどこから来たのかを検出することです。ユーザーが1:00にindex.phpで開始し、1:02にpage2.phpに到達した場合、$ _ SERVER-superglobalをチェックして、ユーザーがindex.phpから来たことを検出し、その特定の統計を更新できます。

しかし、それを除けば、ユーザーがいつページを離れるかを知ることはそれほど興味深いことではありません。

于 2012-06-09T12:48:13.933 に答える
2

PHPは、訪問者がいつサイトを離れたかを検出できません。

ただし、JavaScriptを使用してページunloadイベントを検出し、AJAXリクエストをすばやく作成して出発を記録することはできます...これは、ブラウザがブラウザの読み込みを開始するときにネットワークレイテンシによってスクリプトが「スキップ」される可能性があるため、常に機能するとは限りません。次のページ。

自分のページのリンクからのサイトの逸脱を検出するには、すべてのリンクをサーバー上の小さなリダイレクトスクリプトに移動させることができます。これは、訪問者が別のサイトに向けて出発したことを記録します。

他のすべての場合では、5分ほど後に、最後にアクセスしたページが「出発ページ」であると想定する必要があります。

于 2012-06-09T12:48:37.273 に答える
0

ユーザーがいつ離れたかを確認するには、これを行うことができます。

クライアント側

10秒ごとにhttp://www.yousite.com/update_user.php?userID=*user_id*にajaxリクエストを実行します。

このスクリプトは、mysqlデータベースの行を更新します。次のようになります。

UPDATE online_user SET last_check=NOW() WHERE user_id=$_GET['userID']

サーバー側

毎分cronを起動します。魔女のユーザーが行を更新しなかったことを確認します(安全のために20秒かかります)

SELECT user_id FROM online_user WHERE last_check <= *NOW() - 20 seconds*

次に、行を編集できます。「last_check」と+10秒の間に残っているuser_idに対応するユーザーを言いたい場合はいつでも、正確にする必要がある場合は、1秒または2秒ごとにリクエストを実行できます。

于 2012-06-09T13:12:36.453 に答える
0

訪問カウンターのみを作成する場合は、このチュートリアルを参照してください http://talkerscode.com/webtricks/create-a-simple-pageviews-counter-using-php-and-mysql.php

最初にデータベースを作成する必要があります

CREATE TABLE `pageview` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`page` text NOT NULL,
`userip` text NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1

// トータルビュー

CREATE TABLE `totalview` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`page` text NOT NULL,
`totalvisit` text NOT NULL,
 PRIMARY KEY (`id`)
 ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1

新しい訪問者が Web ページにアクセスするたびにテーブルを更新する

$user_ip=$_SERVER['REMOTE_ADDR'];

$check_ip = mysql_query("select userip from pageview where page='yourpage' and userip='$user_ip'");
if(mysql_num_rows($check_ip)>=1)
{

}
else
{
  $insertview = mysql_query("insert into pageview values('','yourpage','$user_ip')");

  $updateview = mysql_query("update totalview set totalvisit = totalvisit+1 where page='yourpage' ");
}

それだけです

于 2016-03-08T15:28:23.967 に答える