使用 cookie、PHP 等编写页面视图计数器代码



我从YouTube教程中找到了有关同一主题的代码。似乎根本无法让它工作。我现在得到的错误是这样的

注意:尝试在第 13 行的 C:\xampp\htdocs\test.php 中获取非对象的属性

有人知道这段代码有什么问题吗?我对PHP很陌生。我刚刚用一些JS来了解HTML和CSS,所以如果它非常简单的话,请饶了我吧。

<?php
$conn = mysqli_connect("localhost","root","",`unique_visitors`);
$date = date("Y-m-d");
$userIP = $_SERVER['REMOTE_ADDR'];
$query = "SELECT * FROM `unique_visitors` WHERE `date`='$date'";
$result = mysqli_query($conn,$query);
if(!isset($_COOKIE['visitor'])){
$time = strtotime('next day 00:00');
setcookie('visitor','hey',$time);
}
if($result->num_rows==0){
$insertQuery = "INSERT INTO `unique_visitors` (`date`,`ip`)
VALUES ('$date','$userIP')";
mysqli_query($conn,$insertQuery);
}else{
$row=$result->fetch_assoc();
  if(!isset($_COOKIE['visitor'])){
  $newIP = "$row[ip]";
        if(!preg_match('/'.$userIP.'/',$newIP)){
            $newIP.= " $userIP";
        }
        $updateQuery = "UPDATE `unique_visitors` SET `ip` = '$newIP', 
`views`=`views`+1 WHERE `date`='$date'";
        mysqli_query($conn,$updateQuery);
  }
}

第 6 行的 SQL 可能是错误的。所以$result变量不是mysqli_query对象。

尝试在第 7 行之后添加此代码段以找出此处的问题。

if($result === false)
{
   die("Error description: " . mysqli_error($conn));
}

阅读有关mysqli_error函数的一些文档

更新

这将解决您的问题。设置正确的变量。您在 $db_name 位置上使用表名。

$conn = mysqli_connect("$db_hostname", "$db_username", "$db_password", "$db_name") or die("db connect error: ".mysqli_connect_error());

最新更新