2012-06-04 16:58:40 +02:00
< ? php
/*
FusionPBX
Version : MPL 1.1
The contents of this file are subject to the Mozilla Public License Version
1.1 ( the " License " ); you may not use this file except in compliance with
the License . You may obtain a copy of the License at
http :// www . mozilla . org / MPL /
Software distributed under the License is distributed on an " AS IS " basis ,
WITHOUT WARRANTY OF ANY KIND , either express or implied . See the License
for the specific language governing rights and limitations under the
License .
The Original Code is FusionPBX
The Initial Developer of the Original Code is
Mark J Crane < markjcrane @ fusionpbx . com >
Copyright ( C ) 2008 - 2012 All Rights Reserved .
Contributor ( s ) :
Mark J Crane < markjcrane @ fusionpbx . com >
*/
include " root.php " ;
require_once " includes/require.php " ;
//set default variables
$dir_count = 0 ;
$file_count = 0 ;
$row_count = 0 ;
$tmp_array = '' ;
2013-04-10 00:27:02 +02:00
$device_template = '' ;
2012-06-04 16:58:40 +02:00
2013-05-24 12:49:18 +02:00
//get the domain_uuid
//get the domain
$domain_array = explode ( " : " , $_SERVER [ " HTTP_HOST " ]);
//get the domain_uuid
$sql = " select * from v_domains " ;
$sql .= " where domain_name = ' " . $_SESSION [ 'domain_name' ] . " ' " ;
$prep_statement = $db -> prepare ( $sql );
$prep_statement -> execute ();
$result = $prep_statement -> fetchAll ( PDO :: FETCH_NAMED );
foreach ( $result as $row ) {
$_SESSION [ " domain_uuid " ] = $row [ " domain_uuid " ];
}
unset ( $result , $prep_statement );
2012-06-04 16:58:40 +02:00
//if password was defined in the system -> variables page then require the password.
2012-08-12 00:52:50 +02:00
if ( strlen ( $_SESSION [ 'provision' ][ 'password' ][ 'var' ]) > 0 ) {
2012-06-04 16:58:40 +02:00
//deny access if the password doesn't match
2012-10-03 16:10:37 +02:00
if ( $_SESSION [ 'provision' ][ 'password' ][ 'var' ] != check_str ( $_REQUEST [ 'password' ])) {
2012-07-05 20:22:02 +02:00
//log the failed auth attempt to the system, to be available for fail2ban.
2012-06-04 16:58:40 +02:00
openlog ( 'FusionPBX' , LOG_NDELAY , LOG_AUTH );
2012-10-03 16:10:37 +02:00
syslog ( LOG_WARNING , '[' . $_SERVER [ 'REMOTE_ADDR' ] . " ] provision attempt bad password for " . check_str ( $_REQUEST [ 'mac' ]));
2012-06-04 16:58:40 +02:00
closelog ();
usleep ( rand ( 1000000 , 3500000 )); //1-3.5 seconds.
echo " access denied " ;
return ;
}
}
//send a request to a remote server to validate the MAC address and secret
if ( strlen ( $_SERVER [ 'auth_server' ]) > 0 ) {
2012-10-03 16:10:37 +02:00
$result = send_http_request ( $_SERVER [ 'auth_server' ], 'mac=' . check_str ( $_REQUEST [ 'mac' ]) . '&secret=' . check_str ( $_REQUEST [ 'secret' ]));
2012-06-04 16:58:40 +02:00
if ( $result == " false " ) {
echo " access denied " ;
exit ;
}
}
2012-07-05 20:22:02 +02:00
//define PHP variables from the HTTP values
2012-10-03 16:10:37 +02:00
$mac = check_str ( $_REQUEST [ 'mac' ]);
$file = check_str ( $_REQUEST [ 'file' ]);
if ( strlen ( check_str ( $_REQUEST [ 'template' ])) > 0 ) {
2013-04-10 00:27:02 +02:00
$device_template = check_str ( $_REQUEST [ 'template' ]);
2012-06-04 16:58:40 +02:00
}
2012-07-05 20:22:02 +02:00
//check alternate MAC source
if ( empty ( $mac )){
if ( $_SERVER [ 'HTTP_USER_AGENT' ][ strlen ( $_SERVER [ 'HTTP_USER_AGENT' ]) - 17 - 1 ] == " " ) {
$mac = substr ( $_SERVER [ 'HTTP_USER_AGENT' ], - 17 );
} //Yealink: 17 digit mac appended to the user agent, so check for a space exactly 17 digits before the end.
} //check alternates
2012-06-04 16:58:40 +02:00
2012-07-05 20:22:02 +02:00
//prepare the mac address
2012-10-03 16:10:37 +02:00
//normalize the mac address to lower case
$mac = strtolower ( $mac );
//replace all non hexadecimal values and validate the mac address
$mac = preg_replace ( " #[^a-fA-F0-9./]# " , " " , $mac );
if ( strlen ( $mac ) != 12 ) {
echo " invalid mac address " ;
exit ;
}
2012-07-05 20:22:02 +02:00
//use the mac address to find the vendor
switch ( substr ( $mac , 0 , 6 )) {
case " 00085d " :
2013-04-10 00:27:02 +02:00
$device_vendor = " aastra " ;
2012-07-05 20:22:02 +02:00
break ;
case " 000e08 " :
2013-04-10 00:27:02 +02:00
$device_vendor = " linksys " ;
2012-07-05 20:22:02 +02:00
break ;
case " 0004f2 " :
2013-04-10 00:27:02 +02:00
$device_vendor = " polycom " ;
2012-07-05 20:22:02 +02:00
break ;
case " 00907a " :
2013-04-10 00:27:02 +02:00
$device_vendor = " polycom " ;
2012-07-05 20:22:02 +02:00
break ;
case " 001873 " :
2013-04-10 00:27:02 +02:00
$device_vendor = " cisco " ;
2012-07-05 20:22:02 +02:00
break ;
2013-05-10 18:41:36 +02:00
case " a44c11 " :
$phone_vendor = " cisco " ;
break ;
case " 30e4db " :
$phone_vendor = " cisco " ;
break ;
case " 68efbd " :
$phone_vendor = " cisco " ;
break ;
2012-07-05 20:22:02 +02:00
case " 00045a " :
2013-04-10 00:27:02 +02:00
$device_vendor = " linksys " ;
2012-07-05 20:22:02 +02:00
break ;
case " 000625 " :
2013-04-10 00:27:02 +02:00
$device_vendor = " linksys " ;
2012-07-05 20:22:02 +02:00
break ;
case " 001565 " :
2013-04-10 00:27:02 +02:00
$device_vendor = " yealink " ;
2012-07-05 20:22:02 +02:00
break ;
case " 000413 " :
2013-04-10 00:27:02 +02:00
$device_vendor = " snom " ;
2012-07-05 20:22:02 +02:00
default :
2013-04-10 00:27:02 +02:00
$device_vendor = " " ;
2012-06-04 16:58:40 +02:00
}
2013-04-10 00:27:02 +02:00
//check to see if the mac_address exists in v_devices
if ( mac_exists_in_devices ( $db , $mac )) {
//get the device_template
if ( strlen ( $device_template ) == 0 ) {
$sql = " SELECT * FROM v_devices " ;
2012-06-04 16:58:40 +02:00
$sql .= " where domain_uuid=:domain_uuid " ;
2013-04-10 00:27:02 +02:00
$sql .= " and device_mac_address=:mac " ;
2012-06-04 16:58:40 +02:00
$prep_statement_2 = $db -> prepare ( check_sql ( $sql ));
if ( $prep_statement_2 ) {
2013-04-29 16:45:25 +02:00
$prep_statement_2 -> bindParam ( ':domain_uuid' , $_SESSION [ 'domain_uuid' ]);
2012-06-04 16:58:40 +02:00
$prep_statement_2 -> bindParam ( ':mac' , $mac );
$prep_statement_2 -> execute ();
$row = $prep_statement_2 -> fetch ();
2013-04-28 09:24:41 +02:00
$device_uuid = $row [ " device_uuid " ];
2013-04-10 00:27:02 +02:00
$device_label = $row [ " device_label " ];
if ( strlen ( $row [ " device_vendor " ]) > 0 ) {
$device_vendor = $row [ " device_vendor " ];
2012-07-05 20:22:02 +02:00
}
2013-04-10 00:27:02 +02:00
$device_model = $row [ " device_model " ];
$device_firmware_version = $row [ " device_firmware_version " ];
$device_provision_enable = $row [ " device_provision_enable " ];
$device_template = $row [ " device_template " ];
$device_username = $row [ " device_username " ];
$device_password = $row [ " device_password " ];
$device_time_zone = $row [ " device_time_zone " ];
$device_description = $row [ " device_description " ];
2012-06-04 16:58:40 +02:00
}
}
//find a template that was defined on another phone and use that as the default.
2013-04-10 00:27:02 +02:00
if ( strlen ( $device_template ) == 0 ) {
$sql = " SELECT * FROM v_devices " ;
2012-06-04 16:58:40 +02:00
$sql .= " where domain_uuid=:domain_uuid " ;
2013-04-10 00:27:02 +02:00
$sql .= " and device_template like '%/%' " ;
2012-06-04 16:58:40 +02:00
$prep_statement3 = $db -> prepare ( check_sql ( $sql ));
if ( $prep_statement3 ) {
2013-04-29 16:45:25 +02:00
$prep_statement3 -> bindParam ( ':domain_uuid' , $_SESSION [ 'domain_uuid' ]);
2012-06-04 16:58:40 +02:00
$prep_statement3 -> bindParam ( ':mac' , $mac );
$prep_statement3 -> execute ();
$row = $prep_statement3 -> fetch ();
2013-04-10 00:27:02 +02:00
$device_label = $row [ " device_label " ];
$device_vendor = $row [ " device_vendor " ];
$device_model = $row [ " device_model " ];
$device_firmware_version = $row [ " device_firmware_version " ];
$device_provision_enable = $row [ " device_provision_enable " ];
$device_template = $row [ " device_template " ];
$device_username = $row [ " device_username " ];
$device_password = $row [ " device_password " ];
$device_time_zone = $row [ " device_time_zone " ];
$device_description = $row [ " device_description " ];
2012-06-04 16:58:40 +02:00
}
}
}
else {
//use the user_agent to pre-assign a template for 1-hit provisioning. Enter the a unique string to match in the user agent, and the template it should match.
$template_list = array (
" Linksys/SPA-2102 " => " linksys/spa2102 " ,
2013-04-29 16:45:25 +02:00
" Linksys/SPA-3102 " => " linksys/spa3102 " ,
2013-05-10 18:41:36 +02:00
" Cisco/SPA301 " => " cisco/spa301 " ,
" Cisco/SPA301D " => " cisco/spa302d " ,
" Cisco/SPA303 " => " cisco/spa303 " ,
" Cisco/SPA501G " => " cisco/spa501g " ,
" Cisco/SPA502G " => " cisco/spa502g " ,
" Cisco/SPA504G " => " cisco/spa504g " ,
" Cisco/SPA508G " => " cisco/spa508g " ,
" Cisco/SPA509G " => " cisco/spa509g " ,
" Cisco/SPA512G " => " cisco/spa512g " ,
" Cisco/SPA514G " => " cisco/spa514g " ,
" Cisco/SPA525G2 " => " cisco/spa525g2 " ,
" snom370 " => " snom/370 " ,
" snom370 " => " snom/320 "
2012-06-04 16:58:40 +02:00
);
foreach ( $template_list as $key => $val ){
if ( stripos ( $_SERVER [ 'HTTP_USER_AGENT' ], $key ) !== false ) {
2013-04-10 00:27:02 +02:00
$device_template = $val ;
2012-06-04 16:58:40 +02:00
break ;
}
}
unset ( $template_list );
2012-07-05 20:22:02 +02:00
//mac address does not exist in the table so add it
2013-04-10 00:27:02 +02:00
$device_uuid = uuid ();
$sql = " insert into v_devices " ;
2012-06-04 16:58:40 +02:00
$sql .= " ( " ;
$sql .= " domain_uuid, " ;
2013-04-10 00:27:02 +02:00
$sql .= " device_uuid, " ;
$sql .= " device_mac_address, " ;
$sql .= " device_vendor, " ;
$sql .= " device_model, " ;
$sql .= " device_provision_enable, " ;
$sql .= " device_template, " ;
$sql .= " device_username, " ;
$sql .= " device_password, " ;
$sql .= " device_description " ;
2012-06-04 16:58:40 +02:00
$sql .= " ) " ;
$sql .= " values " ;
$sql .= " ( " ;
2013-04-29 16:45:25 +02:00
$sql .= " ' " . $_SESSION [ 'domain_uuid' ] . " ', " ;
2013-04-10 00:27:02 +02:00
$sql .= " ' $device_uuid ', " ;
2012-06-04 16:58:40 +02:00
$sql .= " ' $mac ', " ;
2013-04-10 00:27:02 +02:00
$sql .= " ' $device_vendor ', " ;
2012-06-04 16:58:40 +02:00
$sql .= " '', " ;
$sql .= " 'true', " ;
2013-04-10 00:27:02 +02:00
$sql .= " ' $device_template ', " ;
2012-06-04 16:58:40 +02:00
$sql .= " '', " ;
$sql .= " '', " ;
$sql .= " 'auto { $_SERVER [ 'HTTP_USER_AGENT' ] } ' " ;
$sql .= " ) " ;
$db -> exec ( check_sql ( $sql ));
unset ( $sql );
}
2013-04-29 16:45:25 +02:00
//if the domain name directory exists then only use templates from it
2013-06-09 07:05:17 +02:00
if ( is_dir ( $_SERVER [ " DOCUMENT_ROOT " ] . PROJECT_PATH . '/resources/templates/provision/' . $_SESSION [ 'domain_name' ])) {
2013-04-29 16:45:25 +02:00
$device_template = $_SESSION [ 'domain_name' ] . '/' . $device_template ;
}
2012-06-04 16:58:40 +02:00
//if $file is not provided then look for a default file that exists
if ( strlen ( $file ) == 0 ) {
2013-06-09 07:05:17 +02:00
if ( file_exists ( $_SERVER [ " DOCUMENT_ROOT " ] . PROJECT_PATH . " /resources/templates/provision/ " . $device_template . " / { v_mac} " )) {
2012-06-04 16:58:40 +02:00
$file = " { v_mac} " ;
}
2013-06-09 07:05:17 +02:00
elseif ( file_exists ( $_SERVER [ " DOCUMENT_ROOT " ] . PROJECT_PATH . " /resources/templates/provision/ " . $device_template . " / { v_mac}.xml " )) {
2012-06-04 16:58:40 +02:00
$file = " { v_mac}.xml " ;
}
2013-06-09 07:05:17 +02:00
elseif ( file_exists ( $_SERVER [ " DOCUMENT_ROOT " ] . PROJECT_PATH . " /resources/templates/provision/ " . $device_template . " / { v_mac}.cfg " )) {
2012-06-04 16:58:40 +02:00
$file = " { v_mac}.cfg " ;
}
else {
echo " file not found " ;
exit ;
}
}
else {
//make sure the file exists
2013-06-09 07:05:17 +02:00
if ( ! file_exists ( $_SERVER [ " DOCUMENT_ROOT " ] . PROJECT_PATH . " /resources/templates/provision/ " . $device_template . " / " . $file )) {
2012-06-04 16:58:40 +02:00
echo " file not found " ;
exit ;
}
}
//log file for testing
//$tmp_file = "/tmp/provisioning_log.txt";
//$fh = fopen($tmp_file, 'w') or die("can't open file");
//$tmp_string = $mac."\n";
//fwrite($fh, $tmp_string);
//fclose($fh);
//set variables for testing
//$line1_displayname= "1001";
//$line1_shortname= "1001";
//$line1_user_id= "1001";
//$line1_user_password= "1234.";
//$line1_server_address= "10.2.0.2";
//$line2_server_address= "";
//$line2_displayname= "";
//$line2_shortname= "";
//$line2_user_uuid= "";
//$line2_user_password= "";
//$line2_server_address= "";
//$server1_address= "10.2.0.2";
//$server2_address= "";
//$server3_address= "";
//$proxy1_address= "10.2.0.2";
//$proxy2_address= "";
//$proxy3_address= "";
//get the contents of the template
2013-06-09 07:05:17 +02:00
$file_contents = file_get_contents ( $_SERVER [ " DOCUMENT_ROOT " ] . PROJECT_PATH . " /resources/templates/provision/ " . $device_template . " / " . $file );
2012-06-04 16:58:40 +02:00
//replace the variables in the template in the future loop through all the line numbers to do a replace for each possible line number
//get the time zone
$time_zone_name = $_SESSION [ 'domain' ][ 'time_zone' ][ 'name' ];
if ( strlen ( $time_zone_name ) > 0 ) {
$time_zone_offset_raw = get_time_zone_offset ( $time_zone_name ) / 3600 ;
$time_zone_offset_hours = floor ( $time_zone_offset_raw );
$time_zone_offset_minutes = ( $time_zone_offset_raw - $time_zone_offset_hours ) * 60 ;
$time_zone_offset_minutes = number_pad ( $time_zone_offset_minutes , 2 );
if ( $time_zone_offset_raw > 0 ) {
$time_zone_offset_hours = number_pad ( $time_zone_offset_hours , 2 );
$time_zone_offset_hours = " + " . $time_zone_offset_hours ;
}
else {
$time_zone_offset_hours = str_replace ( " - " , " " , $time_zone_offset_hours );
$time_zone_offset_hours = " - " . number_pad ( $time_zone_offset_hours , 2 );
}
$time_zone_offset = $time_zone_offset_hours . " : " . $time_zone_offset_minutes ;
$file_contents = str_replace ( " { v_time_zone_offset} " , $time_zone_offset , $file_contents );
}
2012-07-05 20:56:26 +02:00
//create a mac address with back slashes for backwards compatability
$mac_dash = substr ( $mac , 0 , 2 ) . '-' . substr ( $mac , 2 , 2 ) . '-' . substr ( $mac , 4 , 2 ) . '-' . substr ( $mac , 6 , 2 ) . '-' . substr ( $mac , 8 , 2 ) . '-' . substr ( $mac , 10 , 2 );
2012-06-04 16:58:40 +02:00
//lookup the provisioning information for this MAC address.
2013-04-28 09:24:41 +02:00
$sql = " SELECT e.extension, e.password, e.effective_caller_id_name, d.device_extension_uuid, d.extension_uuid, d.device_line " ;
$sql .= " FROM v_device_extensions as d, v_extensions as e " ;
$sql .= " WHERE e.extension_uuid = d.extension_uuid " ;
$sql .= " AND d.device_uuid = ' " . $device_uuid . " ' " ;
$sql .= " AND d.domain_uuid = ' " . $_SESSION [ 'domain_uuid' ] . " ' " ;
$sql .= " and e.enabled = 'true' " ;
2012-06-04 16:58:40 +02:00
$prep_statement = $db -> prepare ( check_sql ( $sql ));
$prep_statement -> execute ();
$result = $prep_statement -> fetchAll ( PDO :: FETCH_NAMED );
2013-04-28 09:24:41 +02:00
$result_count = count ( $result );
foreach ( $result as $row ) {
$line_number = $row [ 'device_line' ];
$file_contents = str_replace ( " { v_line " . $line_number . " _server_address} " , $_SESSION [ 'domain_name' ], $file_contents );
$file_contents = str_replace ( " { v_line " . $line_number . " _displayname} " , $row [ " effective_caller_id_name " ], $file_contents );
$file_contents = str_replace ( " { v_line " . $line_number . " _shortname} " , $row [ " extension " ], $file_contents );
$file_contents = str_replace ( " { v_line " . $line_number . " _user_id} " , $row [ " extension " ], $file_contents );
$file_contents = str_replace ( " { v_line " . $line_number . " _user_password} " , $row [ " password " ], $file_contents );
2012-06-04 16:58:40 +02:00
//$vm_password = $row["vm_password"];
//$vm_password = str_replace("#", "", $vm_password); //preserves leading zeros
//$accountcode = $row["accountcode"];
//$effective_caller_id_name = $row["effective_caller_id_name"];
//$effective_caller_id_number = $row["effective_caller_id_number"];
//$outbound_caller_id_name = $row["outbound_caller_id_name"];
//$outbound_caller_id_number = $row["outbound_caller_id_number"];
//$vm_mailto = $row["vm_mailto"];
//$vm_attach_file = $row["vm_attach_file"];
//$vm_keep_local_after_email = $row["vm_keep_local_after_email"];
//$user_context = $row["user_context"];
//$call_group = $row["call_group"];
//$auth_acl = $row["auth_acl"];
//$cidr = $row["cidr"];
//$sip_force_contact = $row["sip_force_contact"];
//$enabled = $row["enabled"];
//$description = $row["description"];
}
unset ( $prep_statement );
2012-07-05 20:22:02 +02:00
//set the mac address in the correct format
2013-04-10 00:27:02 +02:00
switch ( $device_vendor ) {
2012-07-05 20:22:02 +02:00
case " aastra " :
$mac = strtoupper ( $mac );
break ;
case " snom " :
$mac = strtoupper ( $mac );
$mac = str_replace ( " - " , " " , $mac );
default :
$mac = strtolower ( $mac );
$mac = substr ( $mac , 0 , 2 ) . '-' . substr ( $mac , 2 , 2 ) . '-' . substr ( $mac , 4 , 2 ) . '-' . substr ( $mac , 6 , 2 ) . '-' . substr ( $mac , 8 , 2 ) . '-' . substr ( $mac , 10 , 2 );
}
2012-06-04 16:58:40 +02:00
//replace the variables in the template in the future loop through all the line numbers to do a replace for each possible line number
$file_contents = str_replace ( " { v_mac} " , $mac , $file_contents );
2013-04-10 00:27:02 +02:00
$file_contents = str_replace ( " { v_label} " , $device_label , $file_contents );
$file_contents = str_replace ( " { v_firmware_version} " , $device_firmware_version , $file_contents );
$file_contents = str_replace ( " { domain_time_zone} " , $device_time_zone , $file_contents );
2012-06-04 16:58:40 +02:00
$file_contents = str_replace ( " { domain_name} " , $_SESSION [ 'domain_name' ], $file_contents );
$file_contents = str_replace ( " { v_project_path} " , PROJECT_PATH , $file_contents );
$file_contents = str_replace ( " { v_server1_address} " , $server1_address , $file_contents );
$file_contents = str_replace ( " { v_proxy1_address} " , $proxy1_address , $file_contents );
$file_contents = str_replace ( " { v_password} " , $password , $file_contents );
//cleanup any remaining variables
for ( $i = 1 ; $i <= 100 ; $i ++ ) {
$file_contents = str_replace ( " { v_line " . $i . " _server_address} " , " " , $file_contents );
$file_contents = str_replace ( " { v_line " . $i . " _displayname} " , " " , $file_contents );
$file_contents = str_replace ( " { v_line " . $i . " _shortname} " , " " , $file_contents );
$file_contents = str_replace ( " { v_line " . $i . " _user_id} " , " " , $file_contents );
$file_contents = str_replace ( " { v_line " . $i . " _user_password} " , " " , $file_contents );
}
2012-08-12 00:52:50 +02:00
//replace the dynamic provision variables that are defined in 'default settings' and 'domain settings'
//example: category=provision, subcategory=sip_transport, name=var, value=tls - used in the template as {v_sip_transport}
foreach ( $_SESSION [ 'provision' ] as $key => $value ) {
$file_contents = str_replace ( '{v_' . $key . '}' , $value [ 'var' ], $file_contents );
2012-06-04 16:58:40 +02:00
}
//deliver the customized config over HTTP/HTTPS
//need to make sure content-type is correct
$cfg_ext = " .cfg " ;
2013-04-10 00:27:02 +02:00
if ( $device_vendor === " aastra " && strrpos ( $file , $cfg_ext , 0 ) === strlen ( $file ) - strlen ( $cfg_ext )) {
2012-06-04 16:58:40 +02:00
header ( " content-type: text/plain " );
} else {
header ( " content-type: text/xml " );
}
2012-11-21 08:17:24 +01:00
header ( " Content-Length: " . strlen ( $file_contents ));
2012-06-04 16:58:40 +02:00
echo $file_contents ;
2013-04-29 16:45:25 +02:00
//define the function which checks to see if the mac address exists in devices
2013-04-10 00:27:02 +02:00
function mac_exists_in_devices ( $db , $mac ) {
$sql = " SELECT count(*) as count FROM v_devices " ;
2013-04-28 09:24:41 +02:00
$sql .= " WHERE domain_uuid=:domain_uuid " ;
$sql .= " AND device_mac_address=:mac " ;
2012-10-03 16:10:37 +02:00
$prep_statement = $db -> prepare ( check_sql ( $sql ));
if ( $prep_statement ) {
2013-04-29 16:45:25 +02:00
$prep_statement -> bindParam ( ':domain_uuid' , $_SESSION [ 'domain_uuid' ]);
2012-10-03 16:10:37 +02:00
$prep_statement -> bindParam ( ':mac' , $mac );
$prep_statement -> execute ();
$row = $prep_statement -> fetch ();
$count = $row [ 'count' ];
if ( $row [ 'count' ] > 0 ) {
return true ;
}
else {
return false ;
}
2012-06-04 16:58:40 +02:00
}
else {
return false ;
}
}
?>