【发布时间】:2025-12-22 11:10:11
【问题描述】:
我正在创建一个网站,让用户登录并选择他们想要下载的 pdf 文档。当他们打开文档进行查看并可能下载时,我希望同时将数据记录到数据库中。
将数据发送到数据库的代码有效(不包括:未定义索引:learningMaterial)。但是,当我想打开 pdf 文档并同时记录用户和其他数据时,所发生的只是文档打开。
任何建议都将不胜感激,即使是对于我在这里尝试实现的整体更好的方法。对 PHP 还很陌生。
参见下面的代码。
HTML
<form name="myform" method='post' action="../includes/writeStats.php">
<input type='hidden' name='learningMaterial' id='learningMaterial' value='learningMaterial'>
<a href='../documents/test.pdf' id='mylink' class='courses' name='Driver Training'> Driver Training </a>
</form>
JS - 在标题中
<script type="text/javascript">
function submitform(){
document.myform.submit(); }
var form = document.getElementById("myform");
document.getElementById("mylink").addEventListener("click", function () {
submitform();
});
</script>
PHP
<?php
$con=mysqli_connect("localhost","root","password","qmptest");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
//Get latest log nr
$result = mysqli_query($con,"SELECT * FROM logbook ORDER BY log DESC LIMIT 1");
while($row = mysqli_fetch_array($result)) {
$log = $row['log'] + 1;
//If statement to check if log is 0(first entry) to go here
}
$date = date("Y/m/d");
session_start(); // Start a new session
$person = $_SESSION['currentUser'];
//Not sure if this is correct along with my HTML input
$material = mysqli_real_escape_string($con, $_POST['learningMaterial']);
//Insert into database
$sql="INSERT INTO logbook (log, date, person, learningMaterial)
VALUES ('$log', '$date', '$person', '$material')";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
mysqli_close($con);
?>
【问题讨论】:
-
您是否希望他们能够下载文件的最大次数?还是您只是在记录活动?
-
你可以尝试在 PHP 中处理表单数据后重定向:*.com/a/768472/806975
-
我只是想在每次有人打开文件时记录下来。
标签: javascript php mysql