PHP-MySql 中的计数器错误

发布于 2024-12-09 14:01:19 字数 1171 浏览 1 评论 0原文

我为我的网页制作了一个 php-mysql 计数器。

当我将其他站点的图像添加到我的站点时,计数器无法正常工作。

为了检查文件是否存在于另一个站点上,我使用此代码

<?php
function load_image($external_path,$internal_path)
{   
    if(@fopen($external_path,"r")==true)
    {
        return $external_path;
    }
    else
    {
        return $internal_path;
    }
}
?>

如果找不到,则它会从我的站点中显示。

但这会带来一个问题。

如果我有 4 个外部图像,它会增加为 +4。

增量代码如下---

<?php
class visitor
{
    function increment()
    {       
        $sql="select count_no from tbl_count"; 
        $result=DBAccess::execute_my_query($sql);
        if ($result!="") 
        {
            $rows=mysql_fetch_assoc($result);
            $visit_no=$rows['count_no'];    
        }   
        else
        {
            $first_visit_no=1;
            $sql1="insert into tbl_count (count_no) values ($first_visit_no)";
            $ins=DBAccess::execute_my_query($sql1);
        }
        $update_visit_no= $visit_no+1;
        $sql2="update tbl_count set count_no=$update_visit_no";
        $ins2=DBAccess::execute_my_query($sql2);                
        return $update_visit_no;
    }
}
?>

I made a php-mysql counter for my webpage.

When I add an image from another site to my site, the counter is not working correctly.

For checking the file exist or not on another site I use this code

<?php
function load_image($external_path,$internal_path)
{   
    if(@fopen($external_path,"r")==true)
    {
        return $external_path;
    }
    else
    {
        return $internal_path;
    }
}
?>

If it not found, then it shows from my site.

But it create a problem in counter.

If I have 4 external image it increase as +4.

The increment code is as follows---

<?php
class visitor
{
    function increment()
    {       
        $sql="select count_no from tbl_count"; 
        $result=DBAccess::execute_my_query($sql);
        if ($result!="") 
        {
            $rows=mysql_fetch_assoc($result);
            $visit_no=$rows['count_no'];    
        }   
        else
        {
            $first_visit_no=1;
            $sql1="insert into tbl_count (count_no) values ($first_visit_no)";
            $ins=DBAccess::execute_my_query($sql1);
        }
        $update_visit_no= $visit_no+1;
        $sql2="update tbl_count set count_no=$update_visit_no";
        $ins2=DBAccess::execute_my_query($sql2);                
        return $update_visit_no;
    }
}
?>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

北城半夏 2024-12-16 14:01:19

当您使用 fopen 时,浏览器正在向服务器发出 http 请求。所以每次使用该功能就像再次打开页面一样。

尝试 file_get_contents()

它应该避免您遇到的计数问题。

When you are using fopen the browser is doing a http request to the server. So each time you use the function its like opening the page again.

Try file_get_contents()

It should avoid the count issue you are having.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文