2016-05-25 5 views
1

誰か(誰でないか)がPHPスクリプトで送信したメールを開いて、メールに埋め込まれたリンクをクリックしたかどうかを確認しようとしています。PHPはメールとリンクのクリックを追跡します

は、メール内の変数を準備します。

メールクリックrecord.phpにロードされるイメージで追跡:

<img src="http://localhost:8090/post_ch/admin/record.php?read=1" alt="Tracker"> 

をリンククリック追跡:

<a href="http://localhost:8090/post_ch/portal/indexbab9.php?click=1">Link</a> 

DBにレコードを挿入

記録郵便クリック用record.php:毎回テーブルに

<?php 
if(isset($_GET['click'])) 
{ 
    $pdo = new PDO('SECURE (should work)'); 
    $statement = $pdo->prepare("INSERT INTO employee_clickedlink (clickedlink) VALUES (1)"); 
} 
?> 

あなたが見ることができるように、私は単純に値を挿入する「1」:

<?php 
// (inside "record.php") 
header('Content-Type: image/gif'); 

if(isset($_GET['read'])) 
{ 
    $pdo = new PDO('SECURE (should work)'); 

    $statement = $pdo->prepare("INSERT INTO employee_clickedmail (clickedmail) VALUES (1)"); 
} 

//push out image 
if(ini_get('zlib.output_compression')) { ini_set('zlib.output_compression', 'Off'); } 
header('Pragma: public'); // required 
header('Expires: 0');  // no cache 
header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
header('Cache-Control: private',false); 
header('Content-Disposition: attachment; filename="blank.gif"'); 
header('Content-Transfer-Encoding: binary'); 
header('Content-Length: '.filesize('blank.gif')); // provide file size 
readfile('blank.gif');  // push it out 
exit(); 
?> 

およびリンククリックのを誰かが画像を読み込んでメール内のリンクをクリックします。誰もが問題を知っていますか?

+2

あなたは決して 'execute()'しません。 –

+0

なぜメールごとに挿入するのですか?それはレコードの無駄です。カウンターを増やさないのはなぜですか? 1つのレコードは、その中に「1」を含む大量のレコードの代わりに、数字が大きくなるレコードです。 –

答えて

1

prepare()ステートメントでは、実際にデータベースに対してクエリを実行するには、​​を呼び出す必要があります。

+0

不注意な間違い......ありがとう! – sdav

関連する問題