Delphi通过POST传递参数给PHP
Delphi代码
************************************************************************************************************************************
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdHTTP, StdCtrls, ShellAPI;
type
TForm1 = class(TForm)
Button1: TButton;
IdHTTP1: TIdHTTP;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
strlist_ParamPost : TStringList ;
class_IdHttp : TIdHTTP ;
begin
strlist_ParamPost := TStringList.Create() ;
class_IdHttp := TIdHTTP.Create(nil);
try
// 向目标PHP网址POST参数
// strlist_ParamPost.Add('1=测试1') ;
strlist_ParamPost.Add('1=aaaaa');
// TidHTTP属性设置
class_IdHttp.ReadTimeout := 30*1000 ; // 超时设置
class_IdHttp.Post('http://localhost/DelphiRequest/index.php', strlist_ParamPost) ;
//打开网页,ShellExecute需要引入uses ShellAPI
// ShellExecute(Application.Handle, nil, 'http://localhost/DelphiRequest/index.php', nil, nil, SW_SHOWNORMAL);
finally
FreeAndNil(class_IdHttp);
strlist_ParamPost.Free() ;
end;
end;
end.
****************************************************************************************************************************************************************************************
php文件代码
新建一个文件夹DelphiRequest,然后在这个文件夹里建一个index.php写入代码
然后在输入本地地址http://localhost/DelphiRequest/index.php/就可以看到该PHP网页
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
if(count($_POST)!= 0)
{
$var_PostAllParma = "" ;
foreach($_POST as $var_Key => $var_Value)
{
$var_PostAllParma .= $var_Value."\r\n" ;
} $host = 'localhost';
$database = 'test';
$username = 'root';
$password = '****';
$selectName = '1';//要查找的用户名,一般是用户输入的信息
$pdo = new PDO("mysql:host=$host;dbname=$database", $username, $password);//创建一个pdo对象
$pdo->exec("set names 'utf8'");
$sql ="UPDATE delphi_test_content SET content= '$var_PostAllParma' WHERE ID='2'";
$stmt = $pdo->prepare($sql);
$rs = $stmt->execute(array($selectName));
// if ($rs) {
// // PDO::FETCH_ASSOC 关联数组形式
// // PDO::FETCH_NUM 数字索引数组形式
// while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
// $name = $row['id'];
// $age = $row['content'];
// echo "Name: $name ";
// echo "Age: $age ";
// echo "\n";
// }
// }
$pdo = null;//关闭连接 } ?></body>
</html>
**********************************************************************************************************************************************************
数据库信息(PDO方式连接数据库)
表名:delphi_test_content
字段:id(主键),content
**********************************************************************************************************************************************************
DEMO效果:
F9运行delphi 按下按钮
按下后,把‘aaaa’这个信息放在POST里传递给http://localhost/DelphiRequest/index.php,该网页获取POST值并且把值保存在表delphi_test_content的ID为2的content里
最终结果
但是如果是中文的话貌似不显示,我也不知道为啥....
后来解决了这个中文显示问题(2016.12.16)
需要添加一行代码
$a=mb_convert_encoding($var_PostAllParma, "UTF-8", "GBK");//delphi7用post传递值给php中文需要字符转码
然后把查询语句的$var_PostAllParma参数更换为$a
$sql ="UPDATE delphi_test_content SET content= '$a' WHERE ID='2'";
最后就解决中文存储到数据库的问题~
谢谢观看~
http://blog.csdn.net/s371795639/article/details/53640483
Delphi通过POST传递参数给PHP的更多相关文章
- Delphi过程函数传递参数的几种方式
Delphi过程函数传递参数的几种方式 在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out. 另一种不加修饰符的为默认按值传递参数. 一.默认方式以值方式传递参数 proced ...
- 关于Delphi中多线程传递参数的简单问题
http://bbs.csdn.net/topics/390513469/ unit uThread; interface uses Classes; type Th = class(TThread) ...
- Delphi过程函数传递参数的八种方式
今天一同事问我为什么有些过程函数里面有Var而有些没有,不解,遂到网上百度,得解.快哉,快哉. 在Delphi过程.函数中传递参数几个修饰符为Const.Var.Out.另一种不加修饰符的为默认按值传 ...
- 【delphi】Delphi过程、函数传递参数的八种方式
Delphi过程函数传递参数的八种方式
- delphi的一些语法知识 以及参数传递问题,按引用方式传递参数,按值方式传递参数
//delphi中exit,abort,break,continue 的区别 exit: 退出函数体abort: 遇到异常,安静处理,就是不显示不提示break: 退出当前循环体,包括for ,whi ...
- Vue 给子组件传递参数
Vue 给子组件传递参数 首先看个例子吧 原文 html <div class="container" id="app"> <div clas ...
- [转] C++的引用传递、指针传递参数在java中的相应处理方法
原文出处:[http://blog.csdn.net/conowen/article/details/7420533] 首先要明白一点,java是没有指针这个概念的. 但是要实现C++的引用传递.指针 ...
- 记一次WinForm程序中主进程打开子进程并传递参数的操作过程(进程间传递参数)
目标:想在WinForm程序之间传递参数.以便子进程作出相应的处理. 一种错误的方法 父进程的主程序: ProcessStartInfo psi = new ProcessStartInfo(); p ...
- 在 Angularjs 中 ui-sref 和 $state.go 如何传递参数
1 ui-sref.$state.go 的区别 ui-sref 一般使用在 <a>...</a>: <a ui-sref="message-list" ...
随机推荐
- [HNOI2002]彩票 (搜索+剪枝)
题目描述 某地发行一套彩票.彩票上写有1到M这M个自然数.彩民可以在这M个数中任意选取N个不同的数打圈.每个彩民只能买一张彩票,不同的彩民的彩票上的选择不同. 每次抽奖将抽出两个自然数X和Y.如果某人 ...
- 将一个list均分成n个list
/** * 将一个list均分成n个list,主要通过偏移量来实现的 * @param source * @return */ public <T> List<List<T&g ...
- Codeforces Round #267 (Div. 2) C. George and Job (dp)
wa哭了,,t哭了,,还是看了题解... 8170436 2014-10-11 06:41:51 njczy2010 C - George and Jo ...
- php——离线执行任务
<?php//设置忽略是否关闭终端窗口ignore_user_abort(true);ini_set('max_execution_time', '0');//采集页面函数,看不懂执行百度cur ...
- SGU101 求有重边的无向图欧拉迹
题意:好多木棒,俩端有数字(0--6)标记,按数字相同的端首尾相连成一条直线(木棒可以相同).即求有重边的无向图欧拉迹. 先判定是否为欧拉图,俩个条件,不说了.如果是欧拉图,输出路经. 方法:dfs遍 ...
- Head first python前六章小结
看这本Head first python已经有十几天了,到第七章开始讲Web开发.移动应用开发,后半年我主要是想往后端的方向发展,所以这本书暂时告一段落.这篇博客没有太多的注释,主要是内容比较简单,只 ...
- PERL 源码 大神网站
http://blog.csdn.net/haoyujie/article/category/1187883 http://deepfuture.iteye.com/blog/816428
- Java8期间及持续时间
原文:http://www.yiibai.com/java8/java8_periodduration.html 使用Java8,两个专门类引入来处理时间差. Period - 处理有关基于时间的日期 ...
- iOS开发 清除电话号码中的其他符号
最近从通讯录读取电话号码,读出得号码如:134-1814-****. 而我需要的为11位纯数字,一直找方法解决此问题,今天终于找到了.. 分享一下…… 代码如下: NSString *original ...
- OllyDBG找到按钮的处理函数
最近系统有点慢,就想优化一下,于是下了个XX大师.结果要注册才行,看来可以用来练练手了.OD一下,靠还加了壳,偶就是用一下,就不脱你了.开始在弹出窗口MessageBoxA下断,伊,结果不是用的这个函 ...