php简单日志记录脚本

自己的站点经常被搜索引擎爬到,想知道搜索引擎和来访者都对哪些内容比较感兴趣,于是写了一个简单的日志记录"系统",来记录来访者的信息。

分为三个文件,record.php,log.php,conn.php

conn.php是数据库连接文件,调用该文件返回一个mysql的数据库读写接口;

log.php是后台,可以从这里看到记录在数据库中的内容;

record.php是记录访客用的脚本,在任意页面包含该脚本,即可实现对于来访者的记录。

代码如下:

conn.php:


<?php
#conn.php
#include this file to connect the database which you choose
#while database was connected,it will return a connect hundle "$con"
#then you could use this hundle to excute sql.
$dbhost = "localhost";#the database host(default localhost)
$dbuser = "xxx";#name of database user
$dbpswd = "xxx";#password of database user
$dbname = "xxx";#the tablename you want to save log
$con=mysql_connect($dbhost,$dbuser,$dbpswd);
if (!$con)
{
die(‘Could not connect: ‘.mysql_error());
}
mysql_select_db($dbname, $con);
?>

log.php


<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<meta http-equiv="Cache-Control" content="max-age=0" forua="true"/>
<meta http-equiv="Cache-Control" content="no-cache"/>
<meta http-equiv="Expires" content="0"/>
<title>#</title>
</head>
<body>
<hr />
</body>
</html>

<?php
showlog();
function showlog()
{
include "conn.php";
#mysql_query(‘set names gb2312;‘);
$query="select * from record";
$result=mysql_query($query);
while($rows=mysql_fetch_array($result))
{
echo "<b>".$rows[‘id‘]."</b> ";
echo "<b>".$rows[‘ip‘]." ".$rows[‘area‘]."</b><br /> ";
echo $rows[‘request‘]."<br />";
if($rows[‘source‘]!="")
{
echo "From:".$rows[‘source‘]."<br />";
}
echo $rows[‘useragent‘]."<br />";
echo $rows[‘userlang‘]."<br />";
echo "<b>".$rows[‘time‘]."</b>";
echo "<hr />";
}
mysql_free_result($result);
}

?>

record.php


<?php
error_reporting(0);
date_default_timezone_set(‘PRC‘);
$ip = $_SERVER[‘REMOTE_ADDR‘];
$time = date(‘Y-m-d H:i:s‘);
$source = $_SERVER [‘HTTP_REFERER‘];
$user_agent = $_SERVER [‘HTTP_USER_AGENT‘];
$user_lang = $_SERVER [‘HTTP_ACCEPT_LANGUAGE‘];
$request = $_SERVER[‘SERVER_NAME‘].$_SERVER["REQUEST_URI"];
$area = ip_lookup();

include "conn.php";
$sql="INSERT INTO `record`
(`ip` ,`source`,`request`,`useragent`,`userlang`,`area`,`time`)
VALUES (‘$ip‘,‘$source‘,‘$request‘,‘$user_agent‘,‘$user_lang‘,‘$area‘,‘$time‘);";
mysql_query($sql,$con);
mysql_close($con);

#ip_lookup函数通过sina的ip查询接口用来获取ip地址对应的地区
function ip_lookup()
{
$ip = $_SERVER[‘REMOTE_ADDR‘];
$url = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=".$ip;
$json = file_get_contents($url);
$json = json_decode($json);
return $json->{‘country‘}.$json->{‘province‘}.$json->{‘city‘}." ".$json->{‘isp‘};
}
?>

为了方便使用,还写了一个install.php来配置数据库。

install.php:


<?php
include "conn.php";

$sql ="CREATE TABLE `record` (
`id` INT(5) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`ip` TEXT NOT NULL ,
`source` TEXT NOT NULL ,
`request` TEXT NOT NULL,
`useragent` TEXT NOT NULL,
`userlang` TEXT NOT NULL,
`area` TEXT NOT NULL,
`time` DATETIME NOT NULL
) ENGINE = MYISAM ";
if(mysql_query($sql,$con))
{
echo "Install Success!";
}
else
{
die(‘Could not connect: ‘.mysql_error());
}
mysql_close($con);

?>

初学php,技术毕竟有限,很多想要的功能还没能加上去。

php简单日志记录脚本,布布扣,bubuko.com

时间: 2024-10-14 20:46:25

php简单日志记录脚本的相关文章

简单日志记录

public static void WriteTextLog(string action, string strMessage, DateTime time) { string path = AppDomain.CurrentDomain.BaseDirectory + @"System\Log\"; if (!Directory.Exists(path)) Directory.CreateDirectory(path); string fileFullPath = path + t

Net Core平台灵活简单的日志记录框架NLog初体验

Net Core平台灵活简单的日志记录框架NLog初体验 前几天分享的"[Net Core集成Exceptionless分布式日志功能以及全局异常过滤][https://www.cnblogs.com/yilezhu/p/9339017.html]" 有人说比较重量,生产环境部署也比较麻烦.因此就有了今天的这篇文章.如果你的项目(网站或者中小型项目)不是很大,日志量也不多的话可以考虑NLog+Mysql的组合.因为NLog具有高性能,易于使用,易于扩展和灵活配置的特点能够让你快速集成日

Log4Net日志记录简单使用讲解

一. Log4Net 简介 Log4net 是 Apache 下一个开放源码的项目,我们可以控制日志信息的输出目的地(数据库.控制台.文本文档.文件).Log4net中定义了多种日志信息输出模式. 在做项目的时候令我最头疼的是在程序发布到正式环境之后出现了问题,我们不能调试而且问题很难重新,于是我们需要大量的日志数据来精确的跟踪程序的运行状况. Log4net就可以帮我来解决这一个难题,对于日志的输出我们不需要人为的去干涉,它可以根据需要将日志输出到控制台,文本文件,windows 日志事件查看

(转)解释一下SQLSERVER事务日志记录

本文转载自桦仔的博客http://www.cnblogs.com/lyhabc/archive/2013/07/16/3194220.html 解释一下SQLSERVER事务日志记录 大家知道在完整恢复模式下,SQLSERVER会记录每个事务所做的操作,这些记录会存储在事务日志里,有些软件会利用事务日志来读取 操作记录恢复数据,例如:log explorer 那么事务日志记录怎麽查看,里面都记录了些什么? 打开可以利用下面SQL语句来查看所在数据库的事务日志记录 1 USE [GPOSDB] -

rsyslog日志记录服务器

一.syslog系统 1.syslog:系统日志服务,统一日志管理 支持C/S架构:可通过UDP或TCP协议提供日志记录服务:实现集中收集日志功能 (1)日志.事件 历史事件日志,保存系统上过去一段时间的发生的事件 事件:系统引导启动.应用程序启动.应用程序尤其是服务类应用程序运行过程中的一些事件: (2)syslog种类 syslogd:system系统日志 klogd:kernel内核日志 2.syslog格式 事件产生的日期时间               主机        进程[pid

第十一篇 Integration Services:日志记录

本篇文章是Integration Services系列的第十一篇,详细内容请参考原文. 简介在前一篇,我们讨论了事件行为.我们分享了操纵事件冒泡默认行为的方法,介绍了父子模式.在这一篇,我们会配置SSIS内置日志记录.我们会演示简单和高级日志配置,保存和查看日志配置,生成自定义日志消息.SSIS任务事件打开Precedence.dtsx包.你的控制流面板应该如图11.1所示:图11.1在第九篇和第十篇,我们关注在序列容器1.我们在Script Task 4和序列容器1上创建了OnError事件处

【阿里云产品公测】简单日志服务SLS使用评测 + 教程

[阿里云产品公测]简单日志服务SLS使用评测 + 教程 评测介绍 被测产品: 简单日志服务SLS 评测环境: 阿里云基础ECS x2(1核, 512M, 1M) 操作系统: CentOS 6.5 x64 日志环境: Nginx(v1.6.2) HTTP服务器访问日志.服务器系统日志 评测人: mr_wid 评测时间: 2014年9月28日-2014年10月8日 准备工作 一.知彼知己, 百战不殆.对产品的了解程度, 直接决定着评测质量, 在评测前, 笔者首先整理并详细阅读了有关SLS产品以及关联

MVC使用 Elmah 日志记录组件

简介 ELMAH(Error Logging Modules and Handlers)错误日志记录模块和处理程序,是一种应用广泛的错误日志工具是完全可插拔.它可以动态添加到一个正在运行的ASP.NET Web应用程序,甚至是一台机器上的所有ASP.NET Web应用程序,而无需重新编译或重新部署. ELMAH既支持ASP.NET Web Forms 又支持 ASP.NET MVC.你可以对ELMAH进行配置来存储各种不同的错误(XML文件,事件日志,Access数据库,SQL数据库,Oracl

Elmah 日志记录组件

[http://www.cnblogs.com/chenkai/archive/2013/01/26/2877855.html] 常在服务器端处理用户请求时.特别是针对Web应用程序.当出现异常是可以根据日志操作记录还原异常出现时操作步骤.而记录异常堆栈信息判断问题出现问题位置. 为了跟踪和记录服务器行为.特别是针对出现异常时构建简单.统一的异常处理模式就显得尤为重要. 如果有一个基础的架构用来记录服务器端中日志和事件.那么对于调试和在问题的解决就变得更加简单直接.针对日志记录.可能针对大部分开