奇怪的問題。至少對於我來說。當點擊pdf.php的鏈接時,查詢會向mysql db寫入某個文檔被點擊的次數。php文件在瀏覽器中使用標題顯示pdf時運行兩次
的問題:除了在DB寫「1」的每一次點擊的,它寫道:「2」。看來,PHP文件運行兩次。但爲什麼?
$file = './'.mysqli_real_escape_string ($con,$_GET[name]).'';
$filename = mysqli_real_escape_string ($con,$_GET[name]); /* Note: Always use .pdf at the end. */
$id = intval($_GET[id]);
$date = time();
$what = mysqli_real_escape_string ($con,$_GET[name]);
header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="' . $filename . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file));
header('Accept-Ranges: bytes');
@readfile($file);
$sql = "SELECT id,what,person_id,count FROM pdftrack WHERE id = '".$id."' AND what='".$what."'";
$ergebnis = mysqli_query($con,$sql);
$row = mysqli_fetch_assoc($ergebnis);
if ($row[id] == '')
{
$sql = "INSERT INTO pdftrack (id,what,date,count) VALUES ('".$id."', '".$what."','".$date."','1')";
mysqli_query($con,$sql);//echo $sql;
}
else
{
$count = $row[count]+1;
$sql="UPDATE pdftrack
SET count='".$count."',
date2='".$date."'
WHERE id='".$row['id']."'
";
mysqli_query($con,$sql);
}
更新:感謝您的幫助,但它仍然錯誤。如果標題部分消失了,它應該像它應該那樣工作。所以我認爲它與標題部分有關。有任何想法嗎?
解決方案:只使用
header('Content-type: application/pdf');
@readfile($file);
不容看到此刻的任何缺點。
你實際上做了什麼以嘗試自己解決問題?這個信息可以幫助我們更好,更快地幫助你。 – SidOfc
你在pdftrack表中有什麼主要的索引?大概你可以把它全部放到單個SQL語句中,使用ON DUPLICATE運算符。 –
根據使用的PDF查看器,PDF可能實際上會被查詢兩次。你檢查過做一個TCP DUMP或簡單地檢查一些Web訪問日誌文件? – mkl