delphi 提交表单给php,PHPRPC for delphi 在Form中使用例子

这篇博客展示了如何使用PHPRPC库在客户端通过IDHTTP组件与远程服务器进行RPC通信。客户端创建了一个TPHPRPCIdHttpClient对象,并调用了服务器端的operaterLogin和HelloWorld方法。服务器端通过PHPRPC_Server处理请求,定义了operaterLogin和HelloWorld函数。整个过程涉及到PHP的session管理和加密通信设置。
摘要由CSDN通过智能技术生成

插件安装官网上的安装方法安装 只有在Internet中会出现

PHPRPCSynaHttpClient、PHPRPCIdHttpClient、 PHPRPCWebDispatcher1、    PHPRPCIOCPHttpServer

我使用的是PHPRPCIdHttpClient,

首先直接将插件方到拖到form中,会自动use相关的东西

现在 直接看例子 (很多都是按照原来的例子改的)

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, PHPRPC, PHPRPCClient, PHPRPCIdHttpClient;

type

TForm1 = class(TForm)

Panel1: TPanel;

Edit1: TEdit;

Edit2: TEdit;

PHPRPCIdHttpClient1: TPHPRPCIdHttpClient;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

clientProxy: Variant;

intArray: array of Integer;

arraylist: TArrayList;

vhashmap: Variant;

ohashmap: THashMap;

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

bb,aa, uName, uPwd:string;

i: Integer;

begin

uName := trim(Edit1.Text);

uPwd := trim(Edit2.Text);

PHPRPCIdHttpClient1 := TPHPRPCIdHttpClient.Create;

clientProxy := PHPRPCIdHttpClient1.useService('http://192.168.0.101:8004/BMServer.php');

// 设置交换密钥的长度(可选,默认 128)

PHPRPCIdHttpClient1.KeyLength := 256;

// 设置加密模式(0 - 不加密、1 - 单向加密、2 - 双向加密、3 - 双向且输出加密),默认为 0

PHPRPCIdHttpClient1.EncryptMode := 1;

aa := clientProxy.HelloWorld();

Application.MessageBox( PChar(aa), '提示',MB_OK + MB_ICONEXCLAMATION);

// 中文的服务器输出的也是UTF8编码,本地打印要转换为本地编码

aa := PHPRPCIdHttpClient1.Output;

//bb := 'cc';

bb := clientProxy.operaterLogin('admin','123456');

Application.MessageBox( PChar(bb), '提示',MB_OK + MB_ICONEXCLAMATION);

clientProxy.HelloWorld();

PHPRPCIdHttpClient1.Free;

end;

end.

其中clientProxy调用的方法均为服务器端自己写的方法,在BMServer.php中定义, 其源码如下

session_start();

include('phprpc/phprpc_server.php');

$server = new PHPRPC_Server();

$server->add('operaterLogin');

$server->add('HelloWorld');

if(isset($_SESSION["client_authorized"]) && $_SESSION["client_authorized"] == true){

$server->add('HelloWorld2');

}

$server->start();

function operaterLogin($name,$pwd) {

if($name=='admin' && $pwd=='123456'){

$_SESSION["client_authorized"] = true;

return 1;

}else{

return 0;

}

}

function HelloWorld() {

return 'Hello World!';

}

function HelloWorld2() {

return 'Hello World 2!';

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值