PDA

View Full Version : نحوه log گرفتن از تمام فعالیت ها و action های کاربر و ثبت آن در دیتابیس



aliabdzad
شنبه 18 خرداد 1392, 16:22 عصر
فکر می کنم مطلب مفیدی باشه که تو فروم ندیدم و گفتم براتون بذارم . یه راه ساده برای این کار وجود داره اونم اینه که چون اکثرا کنترلر هامون از کلاس Controler که تو پوشه protected\components ارث بری می کنن پس فقط کافیه چند خط کد به این کلاس اضافه کنیم و تمام :چشمک:

// /protected/components/Controller.php
public $logMessage = NULL;

public $writeLog = false;

protected function afterAction($action)
{
if($this->writeLog)
{
$sql = 'INSERT INTO tbl_logs VALUES (\''.Yii::app()->user->name.'\',\''.$_SERVER['REMOTE_ADDR'].'\',\''.date("Y-m-d H:i:s").'\',\''.$this->getId().'\',\''.$this->getAction()->getId().'\',\''.$this->logMessage.'\')';
$command = Yii::app()->db->createCommand($sql);
$command->execute();
}
}

البته جدول رو هم تو دیتابیس درست کرده باشین . اینم کوئری جدولمون :
CREATE TABLE `tbl_logs` (
`username` varchar(50) NOT NULL,
`ipaddress` varchar(50) NOT NULL,
`logtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`controller` varchar(255) NOT NULL DEFAULT '',
`action` varchar(255) NOT NULL DEFAULT '',
`details` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8

koorosh4
شنبه 14 تیر 1393, 13:18 عصر
فکر می کنم مطلب مفیدی باشه که تو فروم ندیدم و گفتم براتون بذارم .
CHARSET=utf8[/SQL]

سلام دوست عزیز . ببخشید الان من با این کد تو فایل _login پوشه ی C:\wamp\www\site\protected\views\site
اینم کد :

<script> TIME = new Date(); DIFF = new Date() - TIME ;
INTV = window.setInterval("Show_Clock()",1000) ;
function Show_Clock(){ TIME = new Date(new Date() - DIFF) ;
HH = TIME.getHours() ; MM = TIME.getMinutes() ; SS = TIME.getSeconds() ;
document.getElementById('CLOCK').innerHTML=((HH<10 )? "0"+HH:HH) + ":" + ((MM<10)? "0"+MM:MM) + ":" + ((SS<10)? "0"+SS:SS); } </script>
<span id="CLOCK"></span> <br> <?php echo jdate('j / F / Y');?> <!-- پایان کد تاریخ و ساعت --> <br>
<?php echo $this->currentUser->username; ?> <?php echo('خوش آمدید '); ?> <br> <?php echo ('آی پی شما :');?> <?php
function getRealIpAddr()
{
if (!empty($_SERVER['HTTP_CLIENT_IP']))
//check ip from share internet
$ip=$_SERVER['HTTP_CLIENT_IP'];
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR']))
//to check ip is pass from proxy
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
else
$ip=$_SERVER['REMOTE_ADDR'];

return $ip;
}
$ip = getRealIpAddr();
echo ($ip);
?>
با اینا نام کاربر و شماره آی پی و تاریخ و ساعت را نشون میدم اما نمیتونم توی بانک اطلاعاتی ذخیره کنمش . اسم بانک اطلاعاتی من ole و جدولی که برای ذخیره اطلاعات در نظر گرفتم report (http://localhost/phpmyadmin/sql.php?server=1&db=ole&table=report&pos=0&token=80333393ea49ade4345edec3a4774ff7)
حالا نظر شما چیه ؟ با کد شما آیا نیاز به این جدول نیست ؟ آیا اطلاعات کاربر (ورود و خروج و غیره) همه ذخیره میشن ؟ ممنون میشم توضیح بدید
این جدول من شامل 5 بخش آی پی و نام و ساعت و تاریخ و آی دی هست .
با تشکر

koorosh4
شنبه 14 تیر 1393, 14:01 عصر
اینم کوئری جدولمون :
CREATE TABLE `tbl_logs` (
`username` varchar(50) NOT NULL,
`ipaddress` varchar(50) NOT NULL,
`logtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`controller` varchar(255) NOT NULL DEFAULT '',
`action` varchar(255) NOT NULL DEFAULT '',
`details` text
) ENGINE=InnoDB DEFAULT CHARSET=utf8

ببخشید این کد را کجا بنویسیم ؟ توی لاگ این بنویسیم که لاگ این شد ذخیره کنه یا نه ؟ ممنون میشم راهنمایی کنید

Veteran
شنبه 14 تیر 1393, 14:12 عصر
این کد ساخت جدول هست.
پیشنهاد من به شما
تهیه پکیج اموزشی پی اچ پی اقای شهرکی
هست.بنظر شما در مباحث پایه ایی مشکل دارید که باید ابتدا با اصول کار اشنا بشید

under22
شنبه 14 تیر 1393, 14:22 عصر
این کد ساخت جدول هست.
پیشنهاد من به شما
تهیه پکیج اموزشی پی اچ پی اقای شهرکی
هست.بنظر شما در مباحث پایه ایی مشکل دارید که باید ابتدا با اصول کار اشنا بشید

به نظره بنده هم بهتر این پکیج رو تهیه کنید چون خود Yii یه Log خیلی حرفه ایی داره که اصلا به این کارا نیاز نیست

koorosh4
شنبه 14 تیر 1393, 15:08 عصر
این کد ساخت جدول هست.
پیشنهاد من به شما
تهیه پکیج اموزشی پی اچ پی اقای شهرکی
هست.بنظر شما در مباحث پایه ایی مشکل دارید که باید ابتدا با اصول کار اشنا بشید

آقای شهرکی که استادن . بله درسته برای یادگیری باید php و yii را بگیرم و ببینم . اما من از صبح سر کارم تا 6 عصر . بعدشم که حال خودمو ندارم چه برسه به دیدن فیلم اونم از نوع آموزشی . چیزی متوجه نمیشم . 2تا کتاب گرفتم مال جعفر نژاد قمی و محمد مصدری . اینا را سر کار میخونم گهگاه . که شکر خدا تو اینا هم در این مورد چیزی نگفته .

MMSHFE
شنبه 14 تیر 1393, 17:00 عصر
پس با این اوصاف قید برنامه نویسی رو بزنید. برای برنامه نویسی باید وقت بگذارین. ضمناً فیلمها رو میتونید روی موبایل یا تبلت بریزین و سر کار هم استفاده کنید.

koorosh4
شنبه 21 تیر 1393, 11:23 صبح
ممنون از راهنمایی شما . این مشکل هم حل شد . الان کامل ذخیره مشین . فقط تو گزارش گیری و ارسال گزارش بصورت ماهیانه به کاربر ها دارم کار میکنم .