Delphi Post Values ​​в php файл, но не может получить доступ к значениям из файлов PHP

Я использую Delphi для публикации значений в файл php для обработки. я использую TWebPost от TMS и ранее модуль работал отлично, за исключением замены всех пробелов + Однако теперь я попытался изменить PostContentType от ctFormURLEncoded в ctMultiPartForm как они и рекомендовали.

После изменения я больше не могу получить доступ к переменным, которые я публикую, используя $_POST функция в PHP.

У кого-нибудь есть идея о том, как PHP-файл может получить доступ к переменным?

0

Решение

Есть такой же небольшой пример использования TWebPost и php-скрипта в Delphi.

Этот пример UwpdemoVersionProgram, который я сделал, основан на демонстрационном примере GitHub для ссылки TWebPost. демо для Uwpdemo.pas
Но лучше будет, если вы зарегистрируетесь на странице GitHub страница для регистрации на сервере GitHub
GitHub — это репозиторий для многих проектов, где разработчик может разместить собственный проект и получить доступ ко многим проектам от других разработчиков. После регистрации вы можете скачать множество примеров в одном zip-файле.

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)
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]