NATS3 Member Logging
You can tell NATS to keep a log of member logins. Send a HTTP GET request from your server to the PHP script, /special/loginlog.php with the site's ID number and the member's username. For example, you can add the following code to a PHP script and then run the script:
$url="http://www.example.com/special/loginlog.php?username=$_SERVER[REMOTE_USER]&siteid=123&ip=$_SERVER[REMOTE_ADDR]"; @file($url);
To access this secure feature, the IP address of the server making the request must be in the following $config['SECURE_IPS'] configuration file setting. For example,
$config['SECURE_IPS'] = Array('123.123.123.123');
Replace 123.123.123.123 with your server's IP address.
After activating this feature, the member's logins show up in the Members Admin's members details.
Extra Features
To add more than one site, use the siteids parameter:
$url="http://www.server.com/special/loginlog.php?username=$_SERVER[REMOTE_USER]&siteids=5,64,2&ip=$_SERVER[REMOTE_ADDR]";
To ignore the siteid and add the log to the first matching member , use the nosite parameter:
$url="http://www.server.com/special/loginlog.php?username=$_SERVER[REMOTE_USER]&nosite=1&ip=$_SERVER[REMOTE_ADDR]";
CARMA
If you are using CARMA and NATS and you don't have access to an authentication system that lets you set up posts to remote systems, you can use a smarty plugin like this to post the login to CARMA.
<? function smarty_function_loginlog($params, &$smarty) { if($_SESSION['login_post_ok']) //already posted login return; //build url for post $url="http://www.server.com/special/loginlog.php?username={$_SERVER['REMOTE_USER']}&siteid=1&ip={$_SERVER['REMOTE_ADDR']}"; //post to the nats loginlog script if(@file($url) !== FALSE) $_SESSION['login_post_ok'] = true; //save post to session return; } ?>
To use this plugin you need to do the following:
- Replace www.server.com with the URL to your NATS installation
- Save this file in the 'carma/includes/smarty/plugins directory as function.loginlog.php
- Add a call to the plugin in your members header like this {loginlog}