既然都可以從資料庫取得測試資料了
那位什麼不把測試結果丟回去呢?
所以就有了這一支
php header("Content-Type:text/html; charset=utf-8"); $link = mysql_pconnect("資料庫", "帳號", "密碼") or die("無法與MySQL建立連線"); mysql_select_db("資料庫") or die("無法選擇std資料庫"); $fp=fopen( '/radtest/temp1.log',"w"); #把相關資訊都有各log紀錄 function radtest($un, $pw, $hn, $po, $sr){ #進行radtest測試 return exec('radtest '.trim($un).' ''.trim($pw).'' '.trim($hn).':'.trim($po).' 0 '.trim($sr).'|grep Accept|grep -c Accept'); } function insertintodb($name, $status, $note){ #將log記錄新增至資料庫中 checkdb(strtolower($name)); $myquery1 = "insert into `wordpress`.`".strtolower($name)."`(status, time, note) values ('".$status."','".date('Y-m-d G:i:s')."','".$note."')"; $result1 = mysql_query($myquery1) or die("Insert 錯誤"); return $result1; } function checkdb($name){ #檢查要新增資料的資料表是否存在,若不存在則新增 $sql ='SHOW TABLES in wordpress WHERE Tables_in_wordpress = '' . $name . '''; $rs = mysql_query($sql); if(!mysql_fetch_array($rs)){ //echo "createdb ".$name."n"; createdb($name); return FALSE;} else return TRUE; } function createdb($name){ #新增資料表 $myquery2 = "CREATE TABLE `wordpress`.`".$name."` ( `id` int(10) NOT NULL AUTO_INCREMENT, `status` int(5) NOT NULL, `time` datetime NOT NULL, `note` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci"; $result2 = mysql_query($myquery2) or die("Create ".$name." 錯誤"); } mysql_query('SET NAMES utf8',$link); mysql_query('SET CHARACTER_SET_CLIENT=utf8',$link); mysql_query('SET CHARACTER_SET_RESULTS=utf8',$link); $myquery = "select nasname, port, secret, schoolname, testaccounting, testpasswd, shortname from 資料表"; $result = mysql_query($myquery) or die("查詢 Query 錯誤"); fwrite($fp, "下列單位進行radtest時發生錯誤!!n"); $count=0; while($row = mysql_fetch_array($result)) { //checkdb('LOG_'.$row["shortname"]); if(($row["testaccounting"]<>"測試帳號") and ($row["testaccounting"]<>"測試帳號")) # Have Testing username password { if( radtest($row["testaccounting"], $row["testpasswd"], '10.1.0.7', '1812', $row["secret"]) =='1') { ########### Test Ok ########## insertintodb('LOG_'.$row["shortname"].'_'.$row["nasname"],'1','使用連線單位提供測試帳號密碼測試成功'); } else { ########## Test Fault ######### if( radtest( '預設帳號', '預設密碼', $row["nasname"], $row["port"], $row["secret"]) =='1') { insertintodb('LOG_'.$row["shortname"].'_'.$row["nasname"],'2','連線單位提供測試帳號密碼測試失敗,使用預設帳密測試成功'); } else { insertintodb('LOG_'.$row["shortname"].'_'.$row["nasname"],'3','連線單位提供及預設測帳號密碼測試皆失敗'); fwrite($fp, date('Y-m-d G:i:s').' : '.$row["schoolname"].' '.$row["nasname"]."失敗n"); $count++; } } } else { if( radtest($row["testaccounting"], $row["testpasswd"], $row["nasname"], $row["port"], $row["secret"]) =='1') { ########### Test Ok ########## insertintodb('LOG_'.$row["shortname"].'_'.$row["nasname"],'4','連線單位未提供測試帳號密碼,使用預設帳密測試成功'); } else { ########## Test Fault ######### insertintodb('LOG_'.$row["shortname"].'_'.$row["nasname"],'5','連線單位未提供測試帳號密碼,使用預設帳密測試失敗'); fwrite($fp, date('Y-m-d G:i:s').' : '.$row["schoolname"].' '.$row["nasname"]."失敗n"); $count++; } } } fwrite($fp, "共有".$count."間單位發生錯誤!!n"); fclose($fp);