我正在使用 delphi 将值发布到 php 文件进行处理。我正在使用TMS 的 TWebPost,以前该模块运行良好,除了用+
now 替换所有空格,但是我尝试按照他们的建议将PostContentType
fromctFormURLEncoded
更改为。ctMultiPartForm
由于更改,我无法再使用$_POST
PHP 中的函数访问我发布的变量。
有人知道 PHP 文件如何访问变量吗?
我正在使用 delphi 将值发布到 php 文件进行处理。我正在使用TMS 的 TWebPost,以前该模块运行良好,除了用+
now 替换所有空格,但是我尝试按照他们的建议将PostContentType
fromctFormURLEncoded
更改为。ctMultiPartForm
由于更改,我无法再使用$_POST
PHP 中的函数访问我发布的变量。
有人知道 PHP 文件如何访问变量吗?
在 Delphi 中使用 TWebPost 和 php 脚本也有相同的小示例。
这个例子 UwpdemoVersionProgram 我是基于 GitHub 演示示例的 TWebPost 链接演示 Uwpdemo.pas 但是如果您在 GitHub 页面 页面注册以在 GitHub 服务器中注册 GitHub 是许多项目的存储库,开发人员可以将自己的存储库项目并从其他开发人员的 . 注册后,您可以在一个压缩文件中下载许多示例。
unit UwpdemoVersionProgram;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
WebPost, StdCtrls, ShellApi;
type
TForm1 = class(TForm)
WebPost1: TWebPost;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure GetVersionProgramFromRemote(var StringReceivedFromRemote: AnsiString);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.GetVersionProgramFromRemote(var StringReceivedFromRemote: AnsiString);
var
wpi:twebpostitem;
Response: TMemoryStream;
StrResponse: AnsiString ;
begin
Response := TMemoryStream.Create;
webpost1.Server:='your_sever.com';; //cannot be with http://
webpost1.Action:='/subdirectory/GetVersionProgram_Post.php'; // script php with it will be cooperating program from Delphi
webpost1.items.Clear;
with webpost1.items do
begin
wpi:=add;
wpi.name:='Name_program';
wpi.value:= 'AWARD_SECRETARY.exe';
//if you want obtain more data , repeat this there above lines with another's parameters
end;
if webpost1.execute then
begin
webpost1.savetofile('results.txt');
Response:= TMemoryStream(webpost1.PostResult);
StrResponse:=AnsiString( Response);
StringReceivedFromRemote:=StrResponse;
end;
procedure TForm1.Button1Click(Sender: TObject);
var StringReceivedFromRemote: AnsiString;
begin
GetVersionProgramFromRemote(StringReceivedFromRemote);
end;
----------------------------------------------------------------
Php script GetVersionProgram_Post.php is as follow
<?PHP
include ('info.php');
$link = mysql_connect($db_server, $db_username, $db_password);
if (!$link) {
die('Cannot conect : ' . mysql_error());
}
echo 'Connect was do '.chr(13) ;
mysql_select_db($db_database);
$Name_program=$_POST['Name_program']; //this work work with TWebPost - but value must be present not in a URL
// but only in a webpost1.items as this wpi.value:= 'AWARD_SECRETARY.exe';
$result = mysql_query("SELECT * FROM ACTUAL_PROGRAM_VERSION WHERE NAME_PROGRAM = '$Name_program' ");
if (!$result) {
echo 'Cannot run query : ' . mysql_error();
exit;
}
$row = mysql_fetch_row($result);
echo $row[0].chr(13) ; // NAME_PROGRAM
echo $row[1].chr(13) ; // ACTUAL_VERSION
echo $row[2].chr(13) ; // CREATION_DATE
echo $row[3].chr(13) ; // ID_PROGRAM
mysql_close($link);
?>
MYSQL 中的结构是:
NAME_PROGRAM varchar(32)
ACTUAL_VERSION varchar(32)
CREATION_DATE varchar(12)
ID_PROGRAM int(11)