簡體   English   中英

如何使用php將請求的URL保存到數據庫中的apache?

[英]How to save the url of requests to an apache in to database with php?

我想將網站的請求網址保存到數據庫的表中。

例如,如果user1請求url myserver.com/images/header.png ,則以下記錄應保存到數據庫中。

id    user    requested_url
1     user1   /images/header.png

編輯:我的主要問題是如何知道請求的Urls並將它們傳遞給php文件!

看看mod_log_mysqlmod_log_sql 它們將允許您將apache日志轉發到SQL服務器。

電文讀出:

http://onlamp.com/pub/a/apache/2005/02/10/database_logs.html?page=2

您將必須通過可訪問用戶會話的PHP文件傳遞所有內容。

您需要做的第一件事是設置一個.htaccess文件,以將所有內容重定向到特定的PHP文件。

然后編程以將請求的文件傳遞給用戶並記錄請求。

確保在執行此操作時,您排除了常規站點頁面訪問的文件,因此腳本仍然照常運行,只是非頁面元素(如圖像css js)通過此文件。

將與請求記錄到頁面相同的代碼添加到您的主腳本文件之一。

您應該使用DBMS並對其進行查詢,以便將數據保存在所需的表中。 在MySQL中,它將是:

INSERT INTO tablename VALUES ( NULL , 'user1', '/images/header.png');

編輯,因為有人給了我-1。 您應該在index.php或用於處理所有頁面的任何FrontPage Controller-page中添加此查詢調用。 使用htaccess,您還可以記錄“熱鏈接”文件。

您應該先連接到數據庫,然后再插入,這是使用PDO的示例:

$dsn = 'mysql:host=localhost;dbname=testdb'; // mysql
//$dsn = 'mssql:host=localhost;dbname=testdb'; // mssql
$db = new PDO($dsn, 'username', 'password', array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));

$stmt = $db->prepare("INSERT INTO `table` VALUES ( 0 , :user, :page)");
$stmt->execute(array(':user' => $username, ':page' => $_SERVER['REQUEST_URI']));

我猜第一個字段應該是ID和自動遞增。

連接和插入必須在每個頁面中,也許是一個全局文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM