自定义跟踪代码执行两次

时间:2015-10-13 19:04:24

标签: php mysql mysqli

我刚刚构建了这个着陆页: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列也会更新。

这是文件结构:

  • 的index.php
  • /login.php
  • /stats/index.php
  • /thankyou/index.php

如果您想看到它的实际效果,请转到login.php并使用以下凭据: defensa ndmr123 (它使用起来非常安全,与数据库登录无关。它只是一个静态的临时登录,可以直接写入页面上的php。)

0 个答案:

没有答案