PHP实现登陆代理
####代理模式* 组成* 抽象角色:通过接口或抽象类生命真实角色实现的业务方法* 代理角色:实现抽象角色,是真是角色的代理* 真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑#####实现Mysql连接类```/** * Created by PhpStorm. * User: gewenrui * Date: 16/3/13 * Time: 上午8:16 */namespace db;//php允许借口存储常量interface IConnectInfo{ //服务器名称 const HOST = "localhost"; //用户名 const USERNAME = "root"; //密码 const PASSWORD = ""; //数据库名称444444444444444444444 const DBNAME ="proxylog"; public function doConnect();}class UniversalConnect implements IConnectInfo{ //实现了作用域解析操作符来访问连接值 //静态变量处理速度优势,提供私有可见性提供的封装性 private static $server = IConnectInfo::HOST; private static $currentDB = IConnectInfo::DBNAME; private static $username = IConnectInfo::USERNAME; private static $password = IConnectInfo::PASSWORD; private static $hookup; public function doConnect() { //连接数据库 self::$hookup = mysqli_connect(self::$server,self::$username,self::$password,self::$currentDB); if(self::$hookup){ echo "Successfucl connection to MYSQL"."</br>"; }else if(mysqli_connect_error(self::$hookup)){ echo "".mysqli_connect_error(); } return self::$hookup; }}```######进行新建表操作```class CreateTable{ //设置表名 private $tableMaster = "proxyLog"; private $hookup; public function __construct() { $this->tableMaster = "proxyLog"; $this->hookup = UniversalConnect::doConnect(); $drop = "DROP TABLE IF EXITS $this->tableMaster"."</br>"; //echo $drop; if($this->hookup->query($drop) == true){ printf("Old table %s has been dropped"."</br>",$this->tableMaster); } $sql = "CREATE TABLE $this->tableMaster (uname VARCHAR(15),pw VARCHAR(120))"; //echo $sql; if($this->hookup->query($sql) == true){ echo "Table{$this->tableMaster} has been created successful"; } $this->hookup->close(); }}```######向表中添加数据```class HashRegister{ public function __construct() { $this->tableMaster = "proxyLog"; $this->hookup = UniversalConnect::doConnect(); $username = $this->hookup->real_escape_string(trim($_POST['uname'])); $password = $this->hookup->real_escape_string(trim($_POST['pw'])); $sql = "INSERT INTO $this->tableMaster(uname,pw) VALUES('$username',md5('$password'))"; echo $sql; if($this->hookup->query($sql)){ echo "registeration conpleted"; }else if($result = $this->hookup->query($sql) == false){ printf("Invalid query : %s while query %s"); exit(); $this->hookup->close(); } }}```#####代理模式实现用户登陆```<?php/** * Created by PhpStorm. * User: gewenrui * Date: 16/3/13 * Time: 上午10:35 */include "demo26.php";interface ISubject{ function request();}//生成一个客户端接受用户post的数据//实现登陆代理class Client{ private $proxy; private $un; private $pw; public function __construct() { $this->tableMaster = "proxyLog"; $this->hookup = \db\UniversalConnect::doConnect(); $this->un = $this->hookup->real_escape_string(trim($_POST['uname'])); $this->pw = $this->hookup->real_escape_string(trim($_POST['pw'])); //代理模式 $this->getIface($this->proxy = new Proxy()); } public function getIface(ISubject $proxy){ $proxy->login($this->un,$this->pw); }}//代理类class Proxy implements ISubject{ private $tableMaster; private $hookup; private $logGood; private $realSubject; public function login($uNow,$pwNow){ $uname = $uNow; $pw = md5($pwNow); $this->logGood = false; $this->tableMaster = "proxyLog"; $this->hookup = \db\UniversalConnect::doConnect(); $sql = "SELECT pw from $this->tableMaster WHERE uname = '$uname'"; if($result = $this->hookup->query($sql)){ $row = $result->fetch_array(MYSQLI_ASSOC); echo $pw; if($row['pw'] == $pw){ $this->logGood = true; } $result->close(); }else if(($result = $this->hookup->query($sql)===false)){ printf("failed %s",$this->hookup->error); exit(); } $this->hookup->close(); if($this->logGood){ //执行request方法 $this->request(); }else{ echo "username and/or password not on record"; } } public function request() { $this->realSubject = new RealSubject(); $this->realSubject ->request(); }}class RealSubject implements ISubject{ public function request() { $practice = <<<REQUEST <html> <head><body><head> data </head> <body> <ol> <li>fuck u silly b</li> </ol> </body> </html>REQUEST;echo $practice; }}$data = new Client();```

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸

使用PHP的cURL库发送JSON数据在PHP开发中,经常需要与外部API进行交互,其中一种常见的方式是使用cURL库发送POST�...

SOLID原则在PHP开发中的应用包括:1.单一职责原则(SRP):每个类只负责一个功能。2.开闭原则(OCP):通过扩展而非修改实现变化。3.里氏替换原则(LSP):子类可替换基类而不影响程序正确性。4.接口隔离原则(ISP):使用细粒度接口避免依赖不使用的方法。5.依赖倒置原则(DIP):高低层次模块都依赖于抽象,通过依赖注入实现。

会话劫持可以通过以下步骤实现:1.获取会话ID,2.使用会话ID,3.保持会话活跃。在PHP中防范会话劫持的方法包括:1.使用session_regenerate_id()函数重新生成会话ID,2.通过数据库存储会话数据,3.确保所有会话数据通过HTTPS传输。
