0

要求された Web サイトの URL をデータベースのテーブルに保存したいと考えていました。

たとえば、user1 が url を要求した場合myserver.com/images/header.png、以下のレコードをデータベースに保存する必要があります。

id    user    requested_url
1     user1   /images/header.png

編集:私の主な問題は、要求された URL を知り、それらを php ファイルに渡す方法です!

4

4 に答える 4

4

Apaches'mod_log_mysqlまたはをご覧くださいmod_log_sql。これにより、Apache ログを SQL サーバーに転送できます。

読み上げ:

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

于 2012-10-09T11:30:00.493 に答える
1

ユーザー セッションにアクセスできる PHP ファイルを介してすべてを渡す必要があります。

最初に行う必要があるのは、.htaccess ファイルをセットアップして、すべてを特定の PHP ファイルにリダイレクトすることです。

次に、要求されたファイルをユーザーに渡し、要求をログに記録するようにプログラムします。

これを行うときは、通常のサイト ページによってアクセスされるファイルを除外して、画像 css js などの非ページ要素だけがこのファイルを通過するだけで、スクリプトが通常どおりに機能することを確認してください。

メイン スクリプト ファイルの 1 つに、リクエストをページに記録する同じコードを追加します。

于 2012-10-09T11:32:02.683 に答える
0

目的のテーブルにデータを保存するには、DBMS とクエリを使用する必要があります。MySQL では次のようになります。

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

誰かが私に-1をくれたので、編集してください。このクエリ呼び出しを index.php またはすべてのページを処理するために使用している FrontPage コントローラー ページに追加する必要があります。htaccess を使用すると、「ホットリンク」ファイルをログに記録することもできます。

于 2012-10-09T11:28:49.933 に答える
0

最初にデータベースに接続してから挿入する必要があります。これは 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と自動インクリメントでなければならないと思います。

接続と挿入はすべてのページ、おそらくグローバル ファイルにある必要があります。

于 2012-10-09T11:33:53.123 に答える