Есть скрипт: Код | function getip() { if(isset($HTTP_SERVER_VARS)) { if(isset($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])) { $realip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]; }elseif(isset($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])) { $realip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"]; }else{ $realip = $HTTP_SERVER_VARS["REMOTE_ADDR"]; } }else{ if(getenv( 'HTTP_X_FORWARDED_FOR' ) ) { $realip = getenv( 'HTTP_X_FORWARDED_FOR' ); }elseif ( getenv( 'HTTP_CLIENT_IP' ) ) { $realip = getenv( 'HTTP_CLIENT_IP' ); }else { $realip = getenv( 'REMOTE_ADDR' ); } } if((getenv('REMOTE_PORT'))) { $realip.=":".getenv('REMOTE_PORT'); } return $realip; }
$brow = getenv("HTTP_USER_AGENT"); $ref = getenv('HTTP_REFERER'); $my_urls = getenv('QUERY_STRING'); $ip=getip();
$result = db_query("SELECT * FROM mg_counter"); $num_rows = mysql_num_rows($result);
function searchID($id) { $result = db_query("SELECT * FROM mg_counter WHERE user_id LIKE '".$id."'") or die ("Query failed"); $num_rows = mysql_num_rows($result); mysql_free_result($result); if ($num_rows>0) return True; else return False; }
function Update($id,$pages) { $c=count(explode("\r\n",$pages)); if ($c<150){ $result = db_query("UPDATE mg_counter SET `pages` = '".$pages."' WHERE `user_id` = '".$id."'") or die ("Query failed"); return $result; } }
function IncCounter() { $brow = getenv("HTTP_USER_AGENT"); $ref = getenv('HTTP_REFERER'); $my_urls = getenv('QUERY_STRING'); $ip=getip(); if (eregi("module=users",$my_urls)==false) { if (searchID($_SESSION['user'])==false) { $result = db_query("INSERT INTO `mg_counter` ( `user_id` , `url` , `my_url` , `pages` , `date` , `IP_PORT` , `brouser` ) VALUES ('".$_SESSION['user']."' , '".$ref."' , '".$my_urls."', '".trim($my_urls)."' , NOW( ) , '".$ip."' , '".$brow."');"); } else { $result = db_query("SELECT * FROM mg_counter WHERE `user_id` LIKE '".$_SESSION['user']."'") or die ("Query failed"); list ($user_id, $url, $my_url, $pages , $date, $IP_PORT, $brouser) = mysql_fetch_row ($result); Update($user_id,trim($pages."\r\n".$my_urls)); } @mysql_free_result($result); } } IncCounter();
|
Есть проблемы с данном скрипте! 1) Не могу разобраться - скрипт должен проверят значение user_id например 12345, и если такое значение есть то просто обновлять данные, а если нет значения 12345, то добовлять новое. А получается, так что он не проверяет и просто добовляет новое значение! Пример: Код | 775085449 | 2009-02-05 17:59:09 | 127.0.0.1:3203 | Opera/9.61 (Windows NT 5.1; U; ru) 775085449 | pose | pose | 2009-02-05 17:59:31 | 127.0.0.1:3225 | Opera/9.61 (Windows NT 5.1; U; ru) 775085449 | prog_list | price_list 2009-02-05 | 19:05:29 | 127.0.0.1:3525 Opera/9.61 (Windows NT 5.1; U; ru)
|
А должно быть что-то типа этого Код | 775085449 | pose prog_list | pose price_list | 2009-02-05 17:59:09 2009-02-05 17:59:31 | 127.0.0.1:3203 127.0.0.1:3225 | Opera/9.61 (Windows NT 5.1; U; ru)
|
В чем проблема не пойму? 2) Проблема в том, что почти каждый раз записывается разные порты Пример: Код | 127.0.0.1:3203 127.0.0.1:3525 127.0.0.1:3643 и т.д
|
Прошу помощи!
|