问题:不是每次点击都在数据库中写“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);
目前看不到任何不利因素。
答案 0 :(得分:0)
另外,是mir dasofortauffällt:Du hast eine falsche Syntax! Wenn du auf ein assoziatives Array zugreifst(在deinem Fall $ row)dann musst du den Key auch als String deklarieren。 Sprich statt $ row [id] musst du $ row ['id'] verwenden。 Dieser Fehler ist z.B. bei deiner ersten if-Abfrage vorhanden。 Desweiteren bei else $ row [count] durch $ row ['count'] ersetzen。