2013-10-17 27 views
0

我正在尝试做一个网络计数器,计数谁访问我的网站。PHP网络计数器

我使用txtfile作为计数器,但是当我开始加载我的网页时遇到了错误。

消息:file_put_contents()[function.file-把-内容]:文件名不能为空

<?php if(! defined('BASEPATH')) exit('No direct script access allowed'); 

class Login extends CI_Controller{ 


    function _construct(){ 
     parent::__construct(); 
    } 
    function index(){ 

//Function Web Counter (count visitor) 
$filename = 'counterePOD.txt'; 
function inc_count() { 
    global $filename; 

    if (file_exists($filename)){ 
     $current_value = file_get_contents($filename); 
    }else{ 
     $current_value = 0; 
    } 

    file_put_contents($filename, ++$current_value); 
} 

inc_count(); 
    } 
    $this->load->view('login_view');  
    } 
} 
?> 

有人能告诉什么是错误味精的确切含义:“文件名不能为空”? ?

回答

0

你应该用一个更面向对象的方法和文件名传递给inc_count的功能:

<?php if(! defined('BASEPATH')) exit('No direct script access allowed'); 

class Login extends CI_Controller{ 


    function _construct(){ 
     parent::__construct(); 
    } 

    function inc_count($filename) { 

     if (file_exists($filename)){ 
      $current_value = file_get_contents($filename); 
     }else{ 
      $current_value = 0; 
     } 

     file_put_contents($filename, ++$current_value); 
    } 

    function index(){ 
     //Function Web Counter (count visitor) 
     $this->inc_count('counterePOD.txt'); 
     $this->load->view('login_view');  
    } 
} 
?> 
+0

我的txtcounter(counterePOD.txt)没有统计。 –

+0

检查该文件的写入权限 – tCode

+0

对不起,但如何检查该权限? –

0

将文件名作为函数的参数传递,如下所示。使用全局变量是不是一个好的做法..

//Function definition 
function inc_count($filename) { 
    if (file_exists($filename)){ 
     $current_value = file_get_contents($filename); 
    }else{ 
     $current_value = 0; 
    } 

    file_put_contents($filename, ++$current_value); 
} 

//Function call 
$filename = 'counterePOD.txt'; 
inc_count($filename); 
+0

消息:缺少参数1 inc_count的(), –

+0

这是因为你没有通过函数调用期间的参数。检查我更新的anser –

+0

好吧,没有错误,但我的txtcounter没有计算。 –