- 浏览: 350974 次
- 性别:
- 来自: 南宁
文章分类
最新评论
-
萌蜗牛:
我也用华为smproxy包发送短信,运行一会儿后总是间隔一段时 ...
半桶水开发 CMPP2.0 with Spring + JPA 2 -
萌蜗牛:
我也用华为smproxy包发送短信,运行一会儿后总是间隔一段时 ...
半桶水开发 CMPP2.0 with Spring + JPA 1 -
萌蜗牛:
我也用华为smproxy包发送短信,运行一会儿后总是间隔一段时 ...
半桶水开发 CMPP2.0 with Spring + JPA 3 -
sw970345363:
[b][/b]
jqGrid 表格demo -
二年级chuck:
哪里有Java的验证。
reCAPTCHA 学习
最近有用到在PHP telnet到远程的服务器上校验用户密码的状态,在网上扒了一个telnet的类
然后改在cakephp上使用,多加了一些功能,比如登录的时候要输入域,还有判断登录成功的字符串.还可以自定义端口号
更新:
11.25
while (!$s['time_out'] && $s['unread_bytes']); //多加一个超时判断,这样就比较快了
测试环境:
OSX 10.5.5
Xampp(apache2.2 php5.2.6 mysql5.0.1)
telnetServer 华为,爱立信的某些告警交换机, Solaris5.9
Bug:
不支持Telnet到Windows
telnet到windows自带的Telnet Server有问题,总是不能登录.大概问题是返回的结果需要进行一定的协议处理.
app/controllers/components/php_telnet.php
在controller中调用
然后改在cakephp上使用,多加了一些功能,比如登录的时候要输入域,还有判断登录成功的字符串.还可以自定义端口号
更新:
11.25
while (!$s['time_out'] && $s['unread_bytes']); //多加一个超时判断,这样就比较快了
测试环境:
OSX 10.5.5
Xampp(apache2.2 php5.2.6 mysql5.0.1)
telnetServer 华为,爱立信的某些告警交换机, Solaris5.9
Bug:
不支持Telnet到Windows
telnet到windows自带的Telnet Server有问题,总是不能登录.大概问题是返回的结果需要进行一定的协议处理.
app/controllers/components/php_telnet.php
/* PHPTelnet 1.1 by Antone Roundy adapted from code found on the PHP website public domain */ /* * PHPTelnet for cakephp components * by Rikugun * v5[dot]rikugun[at]gmail[dot]com * */ class PhpTelnetComponent extends Object { //显示连接错误 var $show_connect_error=1; //使用usleep来暂停程序 var $use_usleep=0; // change to 1 for faster execution // don't change to 1 on Windows servers unless you have PHP 5 //暂停时间 var $sleeptime=125000; //登录后等待时间 var $loginsleeptime=1000000; var $fp=NULL; //登录提示字符串 var $loginprompt; //最后抓到的字符串 var $last_string; var $conn1; var $conn2; /* * 连接返回结果 0 = success 1 = couldn't open network connection 2 = unknown host 3 = login failed 4 = PHP version too low * $domain为-1时直接输入回车 */ function Connect($server,$user,$pass,$port=23,$domain='') { $rv=0; //校验PHP版本 >=4.3.0 $vers=explode('.',PHP_VERSION); $needvers=array(4,3,0); $j=count($vers); $k=count($needvers); if ($k<$j) $j=$k; for ($i=0;$i<$j;$i++) { if (($vers[$i]+0)>$needvers[$i]) break; if (($vers[$i]+0)<$needvers[$i]) { $this->ConnectError(4); return 4; } } $this->Disconnect(); //处理hostname 域名转IP if (strlen($server)) { if (preg_match('/[^0-9.]/',$server)) { $ip=gethostbyname($server); if ($ip==$server) { $ip=''; $rv=2; } } else $ip=$server; } else $ip='127.0.0.1'; if (strlen($ip)) { $this->fp=fsockopen($ip,$port); if ($this->fp) { fputs($this->fp,$this->conn1); $this->Sleep(); fputs($this->fp,$this->conn2); $this->Sleep(); $this->GetResponse($r); $r=explode("\n",$r); $this->loginprompt=$r[count($r)-1]; fputs($this->fp,"$user\r"); $this->Sleep(); fputs($this->fp,"$pass\r"); if ($domain) { if ($domain==-1) { $domain=''; } $this->Sleep(); fputs($this->fp,"$domain\r"); } if ($this->use_usleep) usleep($this->loginsleeptime); else sleep(1); $this->GetResponse($r); $this->last_string = $r; $r=explode("\n",$r); if (($r[count($r)-1]=='')||($this->loginprompt==$r[count($r)-1])) { $rv=3; $this->Disconnect(); } } else $rv=1; } if ($rv) $this->ConnectError($rv); return $rv; } function Disconnect($exit=1) { if ($this->fp) { if ($exit) $this->DoCommand('exit',$junk); fclose($this->fp); $this->fp=NULL; } } //执行命令 function DoCommand($c,&$r) { if ($this->fp) { fputs($this->fp,"$c\r"); $this->Sleep(); $this->GetResponse($r); $this->last_string = $r; $r=preg_replace("/^.*?\n(.*)\n[^\n]*$/","$1",$r); } return $this->fp?1:0; } //获取响应 function GetResponse(&$r) { $r=''; do { $r.=fread($this->fp,1000); $s=socket_get_status($this->fp); } while (!$s['time_out'] && $s['unread_bytes']); //多加一个超时判断,这样就比较快了 } function Sleep() { if ($this->use_usleep) usleep($this->sleeptime); else sleep(1); } /** * cakephp components初始化函数 * * @return return * @author rikugun * @param param **/ function initialize(&$controller) { ; } function startup(&$controller) { $this->conn1=chr(0xFF).chr(0xFB).chr(0x1F).chr(0xFF).chr(0xFB). chr(0x20).chr(0xFF).chr(0xFB).chr(0x18).chr(0xFF).chr(0xFB). chr(0x27).chr(0xFF).chr(0xFD).chr(0x01).chr(0xFF).chr(0xFB). chr(0x03).chr(0xFF).chr(0xFD).chr(0x03).chr(0xFF).chr(0xFC). chr(0x23).chr(0xFF).chr(0xFC).chr(0x24).chr(0xFF).chr(0xFA). chr(0x1F).chr(0x00).chr(0x50).chr(0x00).chr(0x18).chr(0xFF). chr(0xF0).chr(0xFF).chr(0xFA).chr(0x20).chr(0x00).chr(0x33). chr(0x38).chr(0x34).chr(0x30).chr(0x30).chr(0x2C).chr(0x33). chr(0x38).chr(0x34).chr(0x30).chr(0x30).chr(0xFF).chr(0xF0). chr(0xFF).chr(0xFA).chr(0x27).chr(0x00).chr(0xFF).chr(0xF0). chr(0xFF).chr(0xFA).chr(0x18).chr(0x00).chr(0x58).chr(0x54). chr(0x45).chr(0x52).chr(0x4D).chr(0xFF).chr(0xF0); $this->conn2=chr(0xFF).chr(0xFC).chr(0x01).chr(0xFF).chr(0xFC). chr(0x22).chr(0xFF).chr(0xFE).chr(0x05).chr(0xFF).chr(0xFC).chr(0x21); } function ConnectError($num) { if ($this->show_connect_error) switch ($num) { case 1: echo '<br />[PHP Telnet] <a href="http://www.geckotribe.com/php-telnet/errors/fsockopen.php">Connect failed: Unable to open network connection</a><br />'; break; case 2: echo '<br />[PHP Telnet] <a href="http://www.geckotribe.com/php-telnet/errors/unknown-host.php">Connect failed: Unknown host</a><br />'; break; case 3: echo '<br />[PHP Telnet] <a href="http://www.geckotribe.com/php-telnet/errors/login.php">Connect failed: Login failed</a><br />'; break; case 4: echo '<br />[PHP Telnet] <a href="http://www.geckotribe.com/php-telnet/errors/php-version.php">Connect failed: Your server\'s PHP version is too low for PHP Telnet</a><br />'; break; } } }
在controller中调用
class somecontroller extends AppContronller{ var $components =array('PhpTelnet'); function someAction($id){ //获取实例 $swer = $this->Sw->findById($id); //不显示默认错误信息 $this->PhpTelnet->show_connect_error=0; $ret = $this->PhpTelnet->Connect(long2ip($swer['ip']), $swer['username'], $swer['password'], $swer['port'], $swer['domain']); switch ($ret) { case 0: //连接成功 if (strstr($this->PhpTelnet->last_string,$swer['success_code'])) { $swer['status']=1; $retVal['success']=true; $retVal['msg']='登录成功'; break; } $ret=3; case 1: // $swer['status']=0; $retVal = '无法连接到网络'; break; case 2: $swer['status']=0; $retVal['msg'] = '无法连接到BSC'; break; case 3: $swer['status']=2; $retVal['msg'] = '登录失败'; break; case 4: $retVal['msg']='PHP版本太低'; break; } //其它操作可以用 $this->PhpTelnet->DoCommand($comm.$result) } }
发表评论
-
reCAPTCHA 学习
2009-08-03 21:29 6001最近在帮朋友写一下小的申请页面,里头有用到验证码来防止恶意注册 ... -
silex 汉化文件
2009-06-03 22:03 1255今天看了一下新闻介绍的silex 这个项目 看起来样子不错, ... -
CakePhp phpThumb Compenet
2009-05-07 10:40 2196参照了一下官网的国际友人的一篇帖子修改的 请先将phpthu ... -
cacti安装笔记
2009-04-07 10:45 2384今天同事装cacti有些问题,让我帮忙装,顺便记一下笔记 我 ... -
在OSX下安装php oracle instanclient
2009-03-12 13:54 1444项目需要用php + oracle 在本机调试需要装orac ... -
关注PHP的ORM框架 -- propel
2009-02-13 10:47 5444最近在看PHP的 rails式的框架 symfony,这是个整 ... -
补充一个jqgrid的demo php后台
2009-02-11 09:28 10356之前写了一个,感觉后台代码不是很好理解,再发一个吧 09-03 ... -
Mac apache2 mod_fcgid 权限问题
2009-02-03 11:20 1928呃,原来一直被这个组合的 403问题折磨,文件夹权限都正确.反 ... -
刷公司日志 php 脚本
2009-01-21 16:41 1307#!/usr/bin/env php /** * 自动 ... -
mac下用macport 安装lighttpd + php +fastcgi + freetds笔记
2009-01-06 19:45 25081.安装Macports 2.更新port sudo port ... -
MySQL数据库版本控制 ---ruckusing
2008-12-01 08:27 1954最近在做一个项目的时候偶然遇到这个这个 ruckusing 按 ... -
搞定osx下的freetds
2008-10-18 13:51 1495在OSX下开发PHP+Mssql是需要有freetds的 先 ... -
Xdebug的远程调试搞明白了
2008-10-17 22:39 12920琢磨了1天终于给搞明白了 懒得自己编译的话下面有编译好的包 ... -
PHP 5.3的新特点
2008-08-08 02:08 1095原文 :http://www.iteye.com/news/3 ... -
一个PHP动态数据库基础类
2008-08-14 02:52 1095参考:http://www.ibm.com/developer ... -
Php.ini 配置(中文)
2008-08-20 01:47 1446原文:http://lamp.linux.gov.cn/Web ... -
PHP-ExcelReader 安装&使用
2008-09-16 08:29 10520原文:http://sourceforge.net/docma ... -
兼容PHP4的json_Encode
2008-09-16 08:23 2500忘了从哪里弄来的了 if (!function_exis ... -
超强php的firebug插件
2008-09-16 08:22 1851这个的主要作用是输出php的调试信息哦.先看看截图 Fire ... -
一个PHP动态数据库基础类
2008-09-16 08:18 1557参考:http://www.ibm.com/developer ...
相关推荐
Github houses both CakePHP itself as well as many other plugins for CakePHP. The CakePHP releases are available at Github downloads. Alternatively you can get fresh off the press code, with all the ...
打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...
**PHP MVC框架:CakePHP详解** 在Web开发领域,PHP是一种广泛应用的服务器端脚本语言,而MVC(Model-View-Controller)架构模式则是一种常见的设计模式,它将应用程序的逻辑分离开来,使代码更易于管理和维护。 ...
**CakePHP:PHP MVC框架详解** CakePHP是一个广泛使用的开源PHP框架,它基于Model-View-Controller(MVC)架构模式,旨在简化Web应用程序的开发流程,提高开发效率,并且支持快速原型制作。这个框架以其易用性、可...
打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...
CakePHP php框架简介 CakePHP是一个用PHP编写的开源Web应用框架,不过其模型是用Ruby on Rails设计的。作为PHP世界的Rails,CakePHP采纳了RoR的许多优秀特性,成熟度较高。在cakephp.org站点的Sites in the wild...
CakePHP php框架简介 CakePHP是一个用PHP编写的开源Web应用框架,不过其模型是用Ruby on Rails设计的。作为PHP世界的Rails,CakePHP采纳了RoR的许多优秀特性,成熟度较高。在cakephp.org站点的Sites in the wild...
CakePHP是一个用PHP编写的开源Web应用框架,不过其模型是用Ruby on Rails设计的。作为PHP世界的Rails,CakePHP采纳了RoR的许多优秀特性,成熟度较高。在cakephp.org站点的Sites in the wild页面可以看到当前使用...
- **要求**:详细列出了运行CakePHP框架所需的最低系统配置要求,包括PHP版本等。 - **许可协议**:解释了CakePHP的开源许可协议,帮助开发者理解其使用限制。 - **下载CakePHP**:提供了获取CakePHP框架的官方渠道...
CakePHP 是一款基于 PHP 的快速开发框架,它强调采用约定优于配置(Convention Over Configuration, CoC)的原则来简化开发过程,使得开发者能够快速构建稳定且安全的应用程序。在 CakePHP 3.4 中,这种原则体现得尤...
CakePHP 是一个基于Model-View-Controller(MVC)架构模式的开源PHP框架,它简化了Web应用程序的开发流程,提高了代码的可读性和可维护性。 在手册中,你会了解到以下核心知识点: 1. **安装与配置**:首先,你...
CakePHP 是一个基于MVC(Model-View-Controller)架构的开源PHP框架,它旨在简化Web应用程序的开发,并提高开发效率。 CakePHP 1.2 API 中文文档是针对这个版本的详细技术参考,为开发者提供了丰富的接口信息和使用...
《深入理解CakePHP 1.2.3.8166:PHP的高效框架实践》 CakePHP,作为PHP世界中的一款知名MVC(Model-View-Controller)框架,以其简洁、高效的特性深受开发者喜爱。在本文中,我们将深度探讨最新的稳定版CakePHP 1.2...
《CakePHP 2.4.1:PHP与MySQL的MVC框架详解》 CakePHP,一个基于Model-View-Controller(MVC)架构模式的开源PHP框架,以其简洁、高效和可扩展性在Web开发领域备受青睐。在本文中,我们将深入探讨CakePHP 2.4.1...
CakePHP是一个基于MVC(Model-View-Controller)设计模式的开源PHP框架,它旨在简化Web应用程序的开发过程,提高开发效率。这个压缩包文件包含了有关CakePHP 1.3.11版本的信息,该版本发布于较早的时期,但仍然对...
Cakephp是一款专用于php开发的编程工具,能够为强悍的程序员们提供更加方便的编程服务,让他们能够对php框架快发拥有更多的想法 CakePHP软件简介: CakePHP是一个用来开发php的框架,目前已经更新到了3.6.8版本,这...
CakePHP是一款基于Model-View-Controller(MVC)设计模式的开源PHP框架,它简化了Web应用开发过程,提高了开发效率。这份手册包含了从基础概念到高级特性的全方位教程和指南。 手册描述中提到,原始的单页手册可能...
CakePHP框架中实现Ajax传值是通过AJAX (Asynchronous JavaScript and XML) 技术与后端的CakePHP控制器进行数据交换的一种方式。通常在Web开发中,Ajax用于创建更为动态和响应快速的用户界面。当用户与页面上的元素...