我刚刚构建了这个着陆页:defensalegal.us并添加了一些简单的跟踪功能,以便在统计信息页面上显示自定义数据。出于某种原因,当页面加载时,它会被执行两次并将其记录为2页面视图。我只在主页上进行跟踪,即使查看了其他页面,它也会以某种方式显示为单页视图。即使正在查看的文件位于另一个文件夹中。任何线索为什么?
$ip = $_SERVER['REMOTE_ADDR'];
$conn = new mysqli($host, $user, $pass, $db);
$insert = 'INSERT INTO '.$table.' (ID, ip, views, name, email, phone, message, timestamp) VALUES("", "'.$ip.'", "1", "", "", "", "", "'.date('Y-m-d').' @ '.date('H:i:s').'")';
$select = 'SELECT * FROM '.$table.' WHERE ip = "'.$ip.'"';
$result = $conn->query($select);
if($result->num_rows > 0){
//echo "Record found".'</br/>';
$row = $result->fetch_assoc();
$views = $row['views'] + 1;
$update = 'UPDATE '.$table.' SET views = "'.$views.'", timestamp = "'.date('Y-m-d').' @ '.date('H:i:s').'" WHERE ip = "'.$ip.'"';
if($conn->query($update) === TRUE){
//echo 'Record updated successfully'.'</br/>';
} else {
//echo "Error: ".$insert."<br>".$conn->error;
}
}elseif($result->num_rows == 0){
if($conn->query($insert) === TRUE){
//echo 'New record created successfully'.'</br/>';
} else {
//echo 'Record already exists';
}
}
在填写表格后,感谢页面上发生了同样的事情。发送了1封电子邮件,但电子邮件副本如下:姓名:电子邮件:电话:消息:姓名:电子邮件:电话:(由于某种原因,消息字段不会重复。)并且它被视为一个视图,应该仅在查看主页时发生。我在感谢页面上唯一的sql语句是:
$update = 'UPDATE '.$table.' SET name = "'.$name.'", email = "'.$email.'", phone = "'.$phone.'", message = "'.$message.'", timestamp = "'.date('Y-m-d').' @ '.date('H:i:s').' - filled out form" WHERE ip = "'.$ip.'"';
但view
列也会更新。
这是文件结构:
如果您想看到它的实际效果,请转到login.php
并使用以下凭据: defensa ndmr123
(它使用起来非常安全,与数据库登录无关。它只是一个静态的临时登录,可以直接写入页面上的php。)