奇怪的问题。至少对于我来说。当点击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