Api 国内PHP开源接口框架 api管理系统php源码( 二 )


我们要尽可能的不使用教科书上的通用的写法,尽可能搞一套自己的写法 。
下面是DaYeLaiWanA.php的代码:
<?php//接口文件,单独调用这个文件没任何作用,参数必须得对,差一个字母这个文件都运行不出个毛线来 。//而参数是你自己定的,可随意加密修改 。//当然你还可以把这个路径也放到变量里,然后藏起来 。include "./iLaoZhao_funs/postget.php"; //没有依赖,但也不实现任何具体功能include "./iLaoZhao_funs/login.php"; //依赖pdo,dbfuns,postget和接口文件include "./iLaoZhao_funs/curl.php"; //没有依赖,但也不实现任何具体功能include "./iLaoZhao_funs/dbfuns.php"; //依赖pdo和接口文件//上面这些文件里涉及到安全的功能都有依赖,并且他们不知道要用的函数在哪//全靠这个接口文件把它们组合到一起//并且上面的函数里也会用到接口文件的函数(就是下面那个)//这些因素缺一不可,只能由接口文件来整合他们//上面这些文件和其它的API文件,都无法单独运行 。不是缺这就是缺那 。//下面这俩函数是故意没单独放文件里的,为的就是其它文件缺少这个接口文件时在调用这个函数时会出错 。function output2Die($msg, $code = -1, $datahttps://www.520longzhigu.com/diannao/= ''){$dieMsg['code'] = $code;$dieMsg['msg'] = $msg;$dieMsg['data'] = $data;echo json_encode($dieMsg);die();}function isPhone($phonenumber){return preg_match("/^1[3-9]d{9}$/", $phonenumber);}$area = POST("area");//要使用的API种类$class = POST("class");//要使用的API小分类$fun = POST("fun");//要使用的API功能//清理POSTunset($_POST['area']);unset($_POST['class']);unset($_POST['fun']);if ($class !== FALSE && $fun !== FALSE){if ($area == false){$area = "public";}//生成API文件全名,这里没加密,你可以自己变动这里 。$incFile = dirname(__FILE__)."/{$area}/{$class}/{$fun}.php";if (file_exists($incFile)){ //检查API文件是否存在,其实不检查也行 。include "./config/pdodb.php"; //创建数据库连接,依赖接口文件include $incFile;//将单独的API文件导入进来}else{//我因为调试的原因,显示了错误信息,要求高的可以去掉 。output2Die("无效的请求", -1);}}else{output2Die("无效的请求", -2);}文件我写了注释,方便大家看,实际在使用时不能有这些注释,这些注释只能方便别人破解我们的系统,并且这个接口文件尽可能进行代码混淆加密 。
然后是一个获得当前用户信息的小例子API,这个API文件存在了/iLaoZhao_api/public/login/usrMsg.php里面 。在调用时大概URL是这样:
https://你的域名/iLaoZhao_api/DaYeLaiWanA.phpPOST数据为:{key:"用户名密码时间加密字符串运算后的结果",class:"login",fun:"usrMsg",userName:"该用户的用户名"}API代码内容usrMsg.php为:
<?php//示例文件,得到当前用户的所有信息//文件依赖:接口文件、数据库连接文件、dbfuns文件、login文件//单独访问这个文件根本不能运行//依赖关系完全靠接口文件处理//这个API读取post参数中的userNamecheckUserNamePassWord(); //检查用户名密码,不对真接就终止运行了,对了的话就可以运行下面的代码$dbArr['userName'] = POST("userName");if($dbArr['userName'] !== false){ //这一步没必要,能验证过上面那个函数,这个参数肯定存在,但我就是写了,就是玩儿//一定要用PDO的绑定功能访问数据库,这种方式能避免SQL注入 。$sql = "select * from tb_users where users_userName = :userName";$rec = db_query($sql,$dbArr);if($rec['count'] > 0){output2Die("成功 。",1,$rec);}else{output2Die("找不到该用户 。",-1); //要求高的,不要输出错误信息 。}}output2Die("失败",-2); //要求高的,不要输出错误信息 。这里面的checkUserNamePassWord()函数(在iLaoZhao_funs文件夹内的login.php文件里)也比较关键:


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: