Location: PHPKode > projects > OpenDataCenter Network Management System > function/radius_authentication.php
<?php
// ----------------------------------------------------------------------
// Copyright (C) 2007 by GREGORY LE BRAS
// ----------------------------------------------------------------------
// LICENSE
//
// This file is part of ODCNMS - Open DataCenter Network Management System
// 
// ODCNMS is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
// 
// Foobar is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public License
// along with Foobar; if not, write to the Free Software
// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
// ----------------------------------------------------------------------
// Original Author of file: GREGORY LE BRAS - http://www.odcnms.org/
// ----------------------------------------------------------------------

// Radius Authentication Function based on the PECL/PEAR Radius extension
// More information on : http://uk3.php.net/radius

function radius_authentication ($hostname,$port,$secret,$timeout,$max_tries,$lang)
{
	$login = $_POST['login'];
	$password = $_POST['password'];

	$radius = radius_auth_open();

	if (! radius_add_server($radius,$hostname,$port,$secret,$timeout,$max_tries))
	{
	   die('<h3>Radius Error:</h3> ' . radius_strerror($radius));
	}

	if (! radius_create_request($radius,RADIUS_ACCESS_REQUEST))
	{
	   die('<h3>Radius Error:</h3> ' . radius_strerror($radius));
	}

	radius_put_attr($radius,RADIUS_USER_NAME,$login);
	radius_put_attr($radius,RADIUS_USER_PASSWORD,$password);

	switch (radius_send_request($radius))
	{
	   case RADIUS_ACCESS_ACCEPT:
			session_start(); 	   
			$_SESSION['lang'] = $lang;	   
			$_SESSION['login'] = $login;
			$_SESSION['password'] = $password;
			header("Location:index.php");
			break;
	   case RADIUS_ACCESS_REJECT:
			header("Location:index.php?status=failed");
			break;
	   case RADIUS_ACCESS_CHALLENGE:
		   echo 'CHALLENGE REQUESTED';
		   break;
	   default:
		   die('<h3>Radius Error:</h3> ' . radius_strerror($radius));
	}
}

?>
Return current item: OpenDataCenter Network Management System